Uyarın için teşekkür ederim aynı satır tüm modüllerde çalışmadığı için bilindik bir sebebi vardır diye düşündüm.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#ifdef _WIN32
#include "version.h"
#endif
#define MSG_BADNICK "BADNICK"
#define TOK_BADNICK "BN"
#define MSG_nickdegis "nickdegis"
#define TOK_nickdegis "ND"
static Hook *Connick;
static int m_badnick(aClient *, aChannel *);
static int m_nojoin(aClient *, aChannel *);
DLLFUNC int m_nickdegis(aClient *sptr, char *parv[]);
aChannel *chptr;
char *xparv[3], chbuf[CHANNELLEN + 16], buf[2048]="0\0";
//Log kanali
#define kontrol "#Log"
//Mesaj gonderen nick
#define Mesajci "irc.kahkaha.com.tr"
//Mesaj gonderim sekli.
#define gonderimsekli "NOTICE"
//Alinacak kanallar
char *kanal = "#Cinsellik";
char *i[3], channels[512];
//Global Kanallar
char *kanals = "#Radyo,#Yarisma,#OXM,#SoruCevap,#Sohbet";
char *tox[3], channels[512];
//bilgi
#define aciklama1 "3Kullanmış olduğunuz nick sakıncalıdır."
#define aciklama2 "3Bu nedenle #Cinsellik kanalına aktarılıyorsunuz."
#define aciklama3 "3Başka kanallara girmek için,4 \2/Nick Yeninick\2 3komutu ile değiştirebilirsiniz."
ModuleHeader MOD_HEADER(m_badnickname)
= {
"m_badnick",
"Badnick koruma (toXic)",
"badnickJoin Modulu v2 (toXic",
"3.2-b8-1",
NULL
};
DLLFUNC int MOD_INIT(m_badnickname)(ModuleInfo *modinfo)
{
Connick = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_badnick);
HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_JOIN, m_nojoin);
add_Command(MSG_nickdegis, TOK_nickdegis, m_nickdegis, 1);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_badnickname)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_badnickname)(int module_unload)
{
return MOD_SUCCESS;
}
static char *badlistesi[] = {
"sert","koyim","skic","sikic","sikc","*aaa","karina","karini","grup","ikie","iki-e","ikib","iki-b","tel_","_tel","altmisdokuz",
"evll",
"9fm",
"trbn",
"dul_",
"_dul",
"doll",
"eyici",
"kilolu",
"argoo",
"kfrl",
"aryrm",
"benicd",
NULL
};
static int bad_listesi(char *nick)
{
char **blist;
for (blist=badlistesi; *blist; *blist++)
{
if (strstr(nick, *blist))
return 1;
}
return 0;
}
static int m_badnick(aClient *sptr, aChannel *chptr) {
if (bad_listesi(sptr->name)) {
if ((chptr = find_channel(kontrol, NullChn)) != NullChn)
sendto_channel_butone(&me, &me, chptr, ":Badnick PRIVMSG %s :Badnick Girisi %s kanallara aktarıldı.", kontrol, sptr->name);
sendto_one(sptr, ":%s %s %s %s" , Mesajci, gonderimsekli, sptr->name, aciklama1);
sendto_one(sptr, ":%s %s %s %s" , Mesajci, gonderimsekli, sptr->name, aciklama2);
sendto_one(sptr, ":%s %s %s %s" , Mesajci, gonderimsekli, sptr->name, aciklama3);
strlcpy(channels, kanal, sizeof(channels));
i[0] = sptr->name;
i[1] = channels;
i[2] = NULL;
do_cmd(sptr, sptr, "JOIN", 2, i);
return 0;
}
}
static int m_nojoin(aClient *sptr, aChannel *chptr) {
aClient *acptr;
if (bad_listesi(sptr->name)) {
if (stricmp(chptr->chname,"#Cinsellik")) {
if (stricmp(chptr->chname,"#***")) {
sendto_one(sptr, ":%s %s %s 3Badnick uygulamasına takıldınız!", Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s 3Başka kanallara bu nick ile giremezsiniz.", Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s 3Eğer girmek istiyorsanız lütfen nickinizi değistiriniz.", Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s 3Yada, \2/NickDegis\2 komutunu kullanarak \2Misafir\2 nicki alabilirsiniz.",
Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s 3Bu komutu kullandiktan sonra otomatikmen \2kanallara aktarılacaksınız.", Mesajci, gonderimsekli, sptr->name);
return HOOK_DENY;
}
}
}
}
DLLFUNC int m_nickdegis(aClient *sptr, char *parv[]) {
if (bad_listesi(sptr->name)) {
//sendto_channel_butone(&me, &me, chptr, ":Badnick PRIVMSG %s :\2%s\2 Kullanicisi nickini degisip kanallara aktarildi.", kontrol);
sendto_one(sptr, ":%s %s %s 3Nickiniz degistiriliyor.", Mesajci, gonderimsekli, sptr->name);
char guestnick[NICKLEN];
char *ibo[3];
snprintf(guestnick, NICKLEN, "Kahkaha%d", getrandom32());
ibo[0] = sptr->name;
ibo[1] = guestnick;
ibo[2] = NULL;
do_cmd(sptr, sptr, "NICK", 2, ibo);
sendto_one(sptr, ":%s %s %s 3Nickiniz4 \2%s\2 3olarak değiştirilmiştir.", Mesajci, gonderimsekli, sptr->name, sptr->name);
aClient *cptr;
if( !MyConnect(sptr) )
{
sendto_serv_butone(cptr, ":%s ND %s", sptr->name, parv[1], parv[2]);
return 0;
}
xparv[0] = sptr->name;
xparv[1] = buf;
xparv[2] = NULL;
int toxic;
toxic = do_cmd(sptr, sptr, "JOIN", 2, xparv);
strlcpy(channels, kanals, sizeof(channels));
tox[0] = sptr->name;
tox[1] = channels;
tox[2] = NULL;
do_cmd(sptr, sptr, "JOIN", 2, tox);
} else {
sendto_one(sptr, ":%s %s %s 3Bu komutu yalnızca cinsel kullanıcılar kullanabilir.", Mesajci, gonderimsekli, sptr->name);
}
}