Eklediğiniz badnickleri, sunucuya girişte (kullanici henüz kanala girmeden) işleme sokar ve badnickleri yalnizca belirlenen cinsel kanallara sokar. Bunun dişinda hiç bir kanala sokmaz.
Badnicklere bununla ilgili bir bilgi yazisi gönderilerek, /NickDegis komutu ile diğer kanallara girebileceği söylenir.
Badnick, /NickDegis komutunu kullaninca (otomatikmen) cinsellik kanallarindan cikartilip, (partall) nicki değiştirilerek (otomatikmen) belirlenen global kanallara sokulur..
/NickDegis komutu ile otomatik verilecek nickguess;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
snprintf(guestnick, NICKLEN, "misafirb%d", getrandom32());
misafirb 'yi istediğiniz şekilde değiştirebilirsiniz. Misafirb olarak belirlenmesinin amaci, badnickten dönme bir nick olduğunun anlaşilmasidir.
Kişinin alacaği nick misafirb32329329 gibi nickler olacaktir.
Badnick girişlerinin yansitilacaği kanal;
Mesajlari gönderecek NICK;
Mesajin gönderim şekli; (PRIVMSG/NOTICE)
Kullanicilarin gireceği cinsel kanallar;
Kullanicilarin /NickDegis komutu ile girebilecekleri kanallar;
Kullanicilarin Girmesine izin verilen kanallar;
Badnickleri aşşağidaki örnekte olduğu gibi ekleyebilirsiniz..
Eklemelerinizde size kolaylik sağlanmasi acisindan "badnick"; olarak eklediğiniz takdirde salaslbadnicksdas gibi icinde badnick geçen her nickte modul faaliyet gösterecektir.
Badnicklere bununla ilgili bir bilgi yazisi gönderilerek, /NickDegis komutu ile diğer kanallara girebileceği söylenir.
Badnick, /NickDegis komutunu kullaninca (otomatikmen) cinsellik kanallarindan cikartilip, (partall) nicki değiştirilerek (otomatikmen) belirlenen global kanallara sokulur..
/NickDegis komutu ile otomatik verilecek nickguess;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
snprintf(guestnick, NICKLEN, "misafirb%d", getrandom32());
misafirb 'yi istediğiniz şekilde değiştirebilirsiniz. Misafirb olarak belirlenmesinin amaci, badnickten dönme bir nick olduğunun anlaşilmasidir.
Kişinin alacaği nick misafirb32329329 gibi nickler olacaktir.
Badnick girişlerinin yansitilacaği kanal;
Alıntı: |
//Log kanali #define kontrol "#botkontrol" |
Mesajlari gönderecek NICK;
Alıntı: |
//Mesaj gonderen nick #define Mesajci "toXic.NET" |
Mesajin gönderim şekli; (PRIVMSG/NOTICE)
Alıntı: |
//Mesaj gonderim sekli. #define gonderimsekli "NOTICE" |
Kullanicilarin gireceği cinsel kanallar;
Alıntı: |
//Alinacak kanallar char *kanal = "#***,#cinsellik"; char *i[3], channels[512]; |
Kullanicilarin /NickDegis komutu ile girebilecekleri kanallar;
Alıntı: |
//Global Kanallar char *kanals = "#toXic,#Sohbet"; char *tox[3], channels[512]; |
Kullanicilarin Girmesine izin verilen kanallar;
Alıntı: |
if (stricmp(chptr->chname,"#Cinsellik")) { if (stricmp(chptr->chname,"#***")) { |
Badnickleri aşşağidaki örnekte olduğu gibi ekleyebilirsiniz..
Alıntı: |
static char *badlistesi[] = { "Badnick1", "Badnick2", "badnick3", "badnick4", NULL }; |
Eklemelerinizde size kolaylik sağlanmasi acisindan "badnick"; olarak eklediğiniz takdirde salaslbadnicksdas gibi icinde badnick geçen her nickte modul faaliyet gösterecektir.
Kod:
#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 "#botkontrol"
//Mesaj gonderen nick
#define Mesajci "toXic.NET"
//Mesaj gonderim sekli.
#define gonderimsekli "NOTICE"
//Alinacak kanallar
char *kanal = "#***,#cinsellik";
char *i[3], channels[512];
//Global Kanallar
char *kanals = "#toXic,#Sohbet";
char *tox[3], channels[512];
//bilgi
#define aciklama1 "Kullanmis oldugunuz nick sakincalidir."
#define aciklama2 "Bu Nedenle, Cinsellik Kanallarina aktariliyorsunuz."
#define aciklama3 "Baska kanallara girmek icin, \2/Nick Yeninick\2 Komutu ile degistirebilirsiniz."
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[] = {
"Badnick1",
"Badnick2",
"badnick3",
"badnick4",
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 aktarildi.", 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 Kontrol ediliyorsunuz..", Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s Baska kanallara giremezsiniz. ", Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s Eger girmek istiyorsaniz lutfen nickinizi degistiriniz.", Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s Aksi takdirde, \2/NickDegis\2 komutunu kullanarak \2otomatikmen\2 nickinizi degistirebilirsiniz.",
Mesajci, gonderimsekli, sptr->name);
sendto_one(sptr, ":%s %s %s Bu komutu kullandiktan sonra otomatikmen \2 kanallara aktarililacaksiniz.", 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 Nickiniz degistiriliyor.", Mesajci, gonderimsekli, sptr->name);
char guestnick[NICKLEN];
char *ibo[3];
snprintf(guestnick, NICKLEN, "misafirb%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 Nickiniz \2%s\2 olarak degistirilmistir.", 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 Bu komutu yalnizca cinsel kullanicilar kullanabilir.", Mesajci, gonderimsekli, sptr->name);
}
}