UnrealIRCd-4 için de güncellenmiştir. :p @
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include "unrealircd.h"
#define MSG_GEC "GEC"
#define CMD "NICK"
#define ACIKLAMA "Giriste komut engeli by Toprak"
CMD_FUNC(m_gec);
int m_nojoin(aClient *sptr, aChannel *chptr, char *parv[]);
char *m_notext(aClient *sptr, aChannel *chptr, char *text, int notice);
char *m_noptext(aClient *sptr, aClient *acptr, char *text, int notice);
int m_nonickchange(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]);
static ModuleInfo *notext = NULL;
Cmdoverride *ovrcmd;
ModuleHeader MOD_HEADER(m_notext)
= {
"m_igs",
ACIKLAMA,
ACIKLAMA,
"3.2-b8-1",
NULL
};
MOD_INIT(m_igs)
{
notext = modinfo;
CommandAdd(modinfo->handle, MSG_GEC, m_gec, MAXPARA, M_USER);
HookAdd(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, 0, m_nojoin);
HookAddPChar(modinfo->handle, HOOKTYPE_PRE_CHANMSG, 0, m_notext);
HookAddPChar(modinfo->handle, HOOKTYPE_PRE_USERMSG, 0, m_noptext);
return MOD_SUCCESS;
}
MOD_LOAD(m_igs)
{
ovrcmd = CmdoverrideAdd(notext->handle, CMD, m_nonickchange);
if(ModuleGetError(notext->handle) != MODERR_NOERROR || !ovrcmd) {
config_error("Modul yukleme hatasi %s: %s", MOD_HEADER(m_igs).name, ModuleGetErrorStr(notext->handle));
return MOD_FAILED;
}
return MOD_SUCCESS;
}
MOD_UNLOAD(m_igs)
{
return MOD_SUCCESS;
}
CMD_FUNC(m_gec) {
aClient *acptr;
if (!IsOper(sptr)) {
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, sptr->name);
return -1;
}
if (parc < 2) {
sendnotice(sptr,"Hatalı komut kullanımı. Komut Kullanımı: %s NICK", MSG_GEC);
return 0;
}
if(!(acptr = find_person(parv[1], NULL))) {
sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, sptr->name, parv[1]);
return 0;
}
if (!MyConnect(acptr)) {
sendnotice(sptr, "Şuan sunucuda %s nickli kimse yok.", acptr->name);
return 0;
}
if (!(acptr->umodes & UMODE_IGS)) {
sendnotice(sptr, "%s taramalardan geçiş yapmış.", acptr->name);
return 0;
}
sendto_one(acptr, ":%s MODE %s -Y", acptr->name, acptr->name);
acptr->umodes &= ~UMODE_IGS;
if (!BadPtr(AUTO_JOIN_CHANS) && strcmp(AUTO_JOIN_CHANS, "0")) {
char *chans[3] = {
acptr->name,
AUTO_JOIN_CHANS,
NULL
};
do_cmd(acptr, acptr, "JOIN", 3, chans);
}
return 0;
}
int m_nojoin(aClient *sptr, aChannel *chptr, char *parv[]) {
if (chptr && !IsMember(sptr, chptr)) {
if ((sptr->umodes & UMODE_IGS)) {
if (!IsServer(sptr) && !IsOper(sptr) && !IsULine(sptr)) {
if ((sptr->local->listener->port != 7005) && (sptr->local->listener->port != 1985) && (sptr->local->listener->port != 2018)) {
return HOOK_DENY;
}
}
}
}
return HOOK_CONTINUE;
}
char *m_notext(aClient *sptr, aChannel *chptr, char *text, int notice) {
if ((sptr->umodes & UMODE_IGS)) {
if (!IsServer(sptr) && !IsOper(sptr) && !IsULine(sptr)) {
if ((sptr->local->listener->port != 7005) && (sptr->local->listener->port != 1985) && (sptr->local->listener->port != 2018)) {
sendnotice(sptr, "*** Mesaj göndermeniz şuan için engellendi.");
return NULL;
}
}
}
return text;
}
char *m_noptext(aClient *sptr, aClient *acptr, char *text, int notice) {
if ((sptr->umodes & UMODE_IGS)) {
if (!IsServer(sptr) && !IsOper(sptr) && !IsULine(sptr)) {
if ((sptr->local->listener->port != 7005) && (sptr->local->listener->port != 1985) && (sptr->local->listener->port != 2018)) {
sendnotice(sptr, "*** Mesaj göndermeniz şuan için engellendi.");
return NULL;
}
}
}
return text;
}
int m_nonickchange(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]) {
if ((sptr->umodes & UMODE_IGS)) {
if (MyConnect(sptr) && !IsServer(sptr) && !IsUnknown(sptr) && !IsOper(sptr) && !IsULine(sptr)) {
if ((sptr->local->listener->port != 7005) && (sptr->local->listener->port != 1985) && (sptr->local->listener->port != 2018)) {
sendnotice(sptr, "*** /NICK komutunu kullanmanız şuan için engellendi.");
return 0;
}
}
}
return CallCmdoverride(ovr, cptr, sptr, parc, parv);
}