Tekil Mesaj gösterimi
Alt 22 Aralık 2011, 23:55   #9
Çevrimiçi
Tupac Doğrulanmış Üye
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: scanx tcl hatta




################################################## #############
## ScanX v.2 By SaW ##
## ScanX Komple Koruma Sistemi ##
## Daha önce ilk versionunu çýkardýðýn ScanX'in bu, birçok ##
## hatalarýnýn giderildiði ve yeni özelliklerin eklendiði ##
## ikinci versionudur. Deðiþtirmeniz gereken yerleri ##
## belirttim. Onun haricindeki yerleri ve özellikle botun ##
## adýný deðiþtirmemeniz önemle rica olunur. Unutmayýnýz ki##
## bunun için gerekli önlemler alýnabilirdi ancak bu ##
## saygýyý göstereceðinize inanýyorum. ##
## bu ücretsiz bir versiondur, gereken saygýyý göstermeniz ##
## dileðiyle.. ##
## Bu tcl'nin hazýrlanmasýnda özellikle kanal korumalarý ##
## için AllProtection.tcl (Sir_Fz), kanal loglama, seen, ##
## rss okuyucu, ve stat özellikleri için ##
## mevcut tcl'lerden faydanýlmýþtýr. ##
## onun haricindeki kodlar þahsýma aittir. Kaynak ##
## belirtmeden kullananlar, kullanýlmasý durumunda þahsým ##
## tarafýndan gerek görüldüðü takdirde gerek görüldüðü ##
## þekilde ifþa edileceklerdir. ##
## Tüm öneri, eleþtiri, görüþ ve istekleriniz için ##
## abdullah_tas@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].com adresine mail atarak ##
## iletebilirsiniz. Ayný zamanda msn adresimdir. ##
################################################## #############

################################################## #############
## Botun gireceði global kanallar. Bu kanallar Confta da ##
## Belirtilmiþ olmalýdýr. Ve Admin kanalýný belirliyoruz ##
## Kanal sayýsýný artýrýp azaltabilirsiniz. ##
################################################## #############
set globalkanallar {
"#kanal1"
"#kanal2"
"#kanal3"
"#kanal4"
"#kanal5" ;#Bu kanalý deðiþtiðiniz takdirde rss okuyucusunun ayarlarýndaki #haber'leri deðiþmeniz gerekmektedir.
"#kanal6"
"#help"
}

set admin_chan "#master"

set ScanXsifre "12345" ;#Nick þifresidir.

################################################## #############
## Bot sunucu üzerinde aþaðýda belirleyeceðiniz sayýdan daha ##
## daha fazla user olan kanala otomatik olarak girer ve ##
## kanalý korumaya alýr. Default olarak 5 ayarlanmýþtýr. ##
################################################## #############

set usersayisi 5

################################################## #############
## Bulunduðu kanallara oto limit ayarlamaktadýr. Default ##
## 15 olarak ayarlýdýr. isterseniz deðiþtirebilirsiniz. ##
################################################## #############

set scnxlmt "15"

################################################## #############
##Oper ekleme komutlarýný kullanabilecek kiþinin nicki ve ##
##komutu kullanýrken yazmasý gereken þifreyi seçiniz. ##
## !!!Mutlaka deðiþtiriniz!!! ##
################################################## #############

set sahip "SaW"
set ssifre "1234"

############################################
# Flaglar En doðru þekilde ayarlanmýþtýr. #
# Dilerseniz yine de deðiþtirebilirsiniz. #
############################################

set nflags "oOrHhwgckbBnGLKdqvtzZCAaNXW"
set ssflags "oOrHhwgckbBnGLKdqvtzZCAaW"
set sflags "oOrHhwgckbBnGLKdvtzZCAW"
set cflags "oOrHhwgckbBnGLKdvtzZC"
set iflags "orHhwgckbBnGLK"

################################################## #############
##Benzer identlerle yapýlan saldýrý korumalarýnda korumanýn ##
##devre dýþý kalacaðý ident'leri seçiniz. ##
################################################## #############

set muafidentler {
"ident1"
"ident2"
}

################################################## #############
## Özele reklam korumasý. Ekleme çýkarma yapabilirsiniz ##
## wildcard kullanýmý vardýr. ##
################################################## #############

set sbreklams {
"*w*w*w*n*e*t"
"*v*v*v*n*e*t*"
"*w*w*v*com*"
"*w*v*v*c*0*m*"
"*v*v*v*c*0*m*"
"*v*w*v*c*0*m*"
"*w*v*v*com*"
"*v*w*v*com*"
"*w*w*w*o*r*g*"
"*w*w*w*c*o*m*"
"*v*v*v*tc*gs*"
"*w*w*w*tc*gs*"
"*v?v*tc*gs*"
"*irc*net*"
"*irc*com*"
"*irc*org*"
"*irc*gen*"
"*i?r?c*c*o*m*"
"*@*c*o*m*"
"*@*hot*"
"*@*de*"
"*@*fr*"
"*Msnde*"
"*tl*tc"
"*tc*vg*"
"sikis"
"*o?r?o?s??u*"
"*oros??u*"
"*o?ros?u"
"*or?os?u"
}

################################################## ######
##Kötü identler. ##
################################################## ######

set bident(idents) {
"*yarra*"
"*siktig*"
"*siktið*"
"*doyumsuz*"
"*jigolo*"
"*cigolo*"
"*****"
"evli*"
"*seks*"
"*ibne*"
"*gay*"
"*lezb*"
"*yatak*"
"*lezo"
"*lez*"
"*sikic*"
"*siker*"
"*kayar*"
"*msn*"
"*amcý*"
"*1*cm*"
"*2*cm*"
"*yarak*"
"*yalar*"
"pic"
"---*"
"grub*"
"grup*"
"playboy*"
"gotcu*"
"göt*"
"amse?er*"
"*amyarar*"
"*skici*"
"*iskerim*"
"*sikse*"
"*darbel*"
"*sakso*"
"*skiyom*"
"*sanalsk*"
"*snlsx"
"*iri?sk*"
"verici*"
"aktif*"
"*pasif*"
"*atesli*"
"*azg?n*"
"*az?g?n*"
"*cinsel*"
"dul"
"paral?"
"*domanlt*"
"*erotik*"
"*erotic*"
"*dikmuz*"
"*dimdik*"
"*semsert*"
"*kalkm*"
"*kalkýk*"
"*kaldýr*"
"*doyuran*"
"*kocasik*"
"*saxo*"
"*yebeni*"
"orkid"
"sertvurur*"
"*acitmam*"
"*kocasik*"
"*uzunsik*"
"*buyuksik*"
"*tanga*"
"*sixe*"
"*azdira*"
"*azdiri*"
"*ziker*"
"*agzin*"
"*agzim*"
"*pipi*"
"*vi?gra*"
"*wi?gra*"
"*alabilir*"
"*seftali*"
"*tecavu*"
"*delik"
"*delig*"
"am?doktor*"
"amdoktor*"
"*bakire*"
"*bozarim*"
"*sutyen*"
"*kilot*"
"*bacak*"
"*hisset*"
"*jineko*"
"*pich*"
"*seviselim*"
"*sevisek*"
"*bozucu*"
"ambasar*"
"*orgaz*"
"*santim*"
"*kocaman*"
"*o?rosb*"
"*o?rosp*"
"*orosb*"
"*orosp*"
"*o?r?o?s?b*"
"*o?r?o?s?p*"
"*amcik*"
"*-----*"
"*subyan*"
"*supyan*"
"*horny*"
"*horney*"
"*fuck*"
"*asshole*"
"*dick*"
"*sperm*"
"dol"
"*deler*"
"alet"
"*donsuz*"
"*gotver*"
"*ereksiy*"
"*erexio*"
"*analsev*"
"*kurdist*"
"*bitch*"
"*fagget*"
"*shithead*"
"*shitter*"
"*penis*"
"*pussy*"
"*fukker*"
"*http*"
}

################################################## #######
##Kanal genelinde yasaklamak istediðiniz küfür ve ##
##Reklam kelimeleri. ##
################################################## #######

set swear(words) {
"*p?içç*"
"*a?mýna*"
"*o?rosp*"
"*o?rosb*"
"*kahpe*"
"*k?ahpenin*"
"*a?nayin*"
"*s?ikerim*"
"*ananla*"
"* anana *"
"anana *"
"* süe *"
"* amk co*"
"* amk ço*"
"*fuck*"
"*shit*"
"*bitch*"
"*dick*"
"*sikmeye*"
"* göt *"
"*yarak*"
"*------*"
"* siker*"
"* sikey*"
"* amina*"
"* amýna*"
"*------*"
"********"
"*ibne*"
"*ipne*"
"*pezev*"
"* kaltak*"
"* sikis *"
"* sikiþ*"
"* anani*"
"* ecdad*"
"* zikeyi*"
"* zokayi*"
"* sokayi*"
"* zokayý*"
"* sokayý*"
"* amcik*"
"* amcýk*"
"got"
"* ****"
"* seks*"
"* sekx*"
"* sikse*"
"* domal*"
"* dalyar*"
"* daltaþ*"
"* taþak*"
"* taþþak*"
"* tasak"
"* tassak*"
"* a.k *"
"*a.q*"
"a.k"
"* aq *"
"*þerefs*"
"*serefs*"
"#*"
"* ananý*"
"* amýný*"
"*travesti*"
"*götüne*"
"*****"
"* sikil*"
"*@*.com"
"*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
sikt*r *"
"aq"
"* abaza *"
"* ------- *"
"*gööt*"
"* siik*"
"*-----*"
"* o.ç*"
"* o.c*"
"* folloþ*"
"* foloþ*"
"* a.g *"
"* sikti*"
"*siker*"
"*hassiktir*"
"* ananizi*"
"* siikiþmiþ*"
"* siikismis*"
"* pezeweng*"
"* pezewenq *"
"* SÝKE*"
"* SÝKT*"
"* SÝKS*"
"* m.q *"
"* m.g *"
"* m.k *"
"*https://*"
"*http://*"
"* hastir *"
"esrar"
"* sikecem *"
"* orossp*"
"* q.a *"
"*w?w?w*"
"*s?i?k?e?r*"
"*s?i?k?e?y*"
"* amýna *"
"* amýný *"
"w??w??w*"
"* irc.*"
"* amk *"
"* dingil *"
"* lezbien*"
"* lezbiyen*"
"* #*"
"*ftp://*"
"*http://*"
"*s?e?r?v?e?r*"
"*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
w*w*w*"
"* -----*"
"* lolita*"
"*-----*"
"* tecav?z*"
"* liseli*"
"*free*"
"* gay *"
"lezb*"
"* sikiþ*"
"* sikis *"
"*@hot*"
"*.net"
"*com"
"*org"
"*c?o?m"
"*n?e?t"
"* bagirta*"
"* baðýrta*"
"* sikti*"
"*s?i?k?t?i*"
"*s?i?k?e?"
"* fuck*"
"* horny*"
"*decode*"
}

################################################## #######
## Kötü nickler. Ekleme çýkarma yapabilirsiniz. ##
################################################## #######

set bnick(nicks) {
"*yarra*"
"*siktig*"
"*siktið*"
"*doyumsuz*"
"*jigolo*"
"*cigolo*"
"*****"
"evli*"
"*seks*"
"*ibne*"
"*gay*"
"*lezb*"
"*yatak*"
"*lezo"
"*lez*"
"*sikic*"
"*siker*"
"*kayar*"
"*msn*"
"*amcý*"
"*1*cm*"
"*2*cm*"
"*yarak*"
"*yalar*"
"pic"
"---*"
"grub*"
"grup*"
"palyboy*"
"gotcu*"
"göt*"
"amse?er*"
"*amyarar*"
"*skici*"
"*iskerim*"
"*sikse*"
"*darbel*"
"*sakso*"
"*skiyom*"
"*sanalsk*"
"*snlsx"
"*iri?sk*"
"verici*"
"aktif*"
"*pasif*"
"*atesli*"
"*azg?n*"
"*az?g?n*"
"*cinsel*"
"dul"
"paral?"
"*domanlt*"
"*erotik*"
"*erotic*"
"*dikmuz*"
"*dimdik*"
"*semsert*"
"*kalkm*"
"*kalkýk*"
"*kaldýr*"
"*doyuran*"
"*kocasik*"
"*saxo*"
"*yebeni*"
"orkid"
"sertvurur*"
"*acitmam*"
"*kocasik*"
"*uzunsik*"
"*buyuksik*"
"*tanga*"
"*sixe*"
"*azdira*"
"*azdiri*"
"*ziker*"
"*agzin*"
"*agzim*"
"*pipi*"
"*vi?gra*"
"*wi?gra*"
"*alabilir*"
"*seftali*"
"*tecavu*"
"*delik"
"*delig*"
"am?doktor*"
"amdoktor*"
"*bakire*"
"*bozarim*"
"*sutyen*"
"*kilot*"
"*bacak*"
"*hisset*"
"*jineko*"
"*pich*"
"*seviselim*"
"*sevisek*"
"*bozucu*"
"ambasar*"
"*orgaz*"
"*santim*"
"*kocaman*"
"*o?rosb*"
"*o?rosp*"
"*orosb*"
"*orosp*"
"*o?r?o?s?b*"
"*o?r?o?s?p*"
"*amcik*"
"*-----*"
"*subyan*"
"*supyan*"
"*horny*"
"*horney*"
"*fuck*"
"*asshole*"
"*dick*"
"*sperm*"
"dol"
"*deler*"
"alet"
"*donsuz*"
"*gotver*"
"*ereksiy*"
"*erexio*"
"*analsev*"
"*kurdist*"
"*bitch*"
"*fagget*"
"*shithead*"
"*shitter*"
"*penis*"
"*pussy*"
"*fukker*"
"*http*"
}

################################################## ##########
## Buradan sonrasýný editlemeseniz de olur. Dilerseniz ##
## deðiþtirebilirsiniz yine de
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
##
################################################## ##########

# Set here any additional exempts, you can use one of the following:
# 0: Neither voices nor halfops are exempted from punishment
# 1: Voices are exempted from punishment
# 2: Halfops are exempted from punishment
# 3: Both halfops and voices are exempted from punishment
set exmptype 3

# Set here the handles of the users you want to notify when the bots locks a channel
# for mass (botnet) flood.
# example: set notifyusers "TheOwner LamerDude"
set notifyusers "SaW"

# Set here the notice to be sent to the channel when the bot locks the channel because of a
# Botnet flood. leave "" if you don't wish the notice to be sent.
set btclocked(lnotc) "Channel has been locked due to flood, sorry for any inconvenience this may have caused."

# What info do you wanna add to your kick message?
# After setting this variable, you can use $kckcount(form) to add a these info to the bot's
# kick msg.
### NOTE:
## %kcount = number of kicks.
## %btime = ban time
## %chan = channel name
## %date = kick date
## %rate = offenses in seconds, bad words/nicks/idents/ads or clone/clones (depends on type of offense)
### PS: You can use the above directly in the kick message (not only here)
set kckcount(form) "(%rate) - %btime dakika Banlandýnýz. ::Kick no: ·%kcount·"

# Set the file in which the number of kicks will be stored.
set kckcount(file) "scripts/kcount.txt"

# Do you want the bot to check for bad nicks/idents and clones when it first joins the channels
# and gains op ? (0: no , 1: yes)
# NOTE: This may be CPU intensive if your bot is on big channels or on alot of channels.
set cbcd(check) 1

# If cbcd(check) is set to 1, change this if you want the bot to only check for certain types
# of protection in the nicklist.
# nosense:kick: check for random drones
# clones:kick : check for excess clones and kick them
# bnick:kick : kick bad nicks
# bident:kick : Kick users with bad idents.
set cbcd(procs) {nosense:kick clones:kick bnick:kick bident:kick}

# If cbcd(check) is set to 1, on what channels do you want it to be applied ? (use "*" to make it work on all chans)
# example: set cbcd(chans) "#chan1 #chan2"
set cbcd(chans) "*"

# Your service's chanserv nick.
# example: set serv(nick) "ChanServ" or "PRIVMSG X@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]nnels.undernet.org"
set serv(nick) "ChanServ"

# Chanserv deop command.
# use %nick for the nick you want to deop and %chan for the channel name.
# example: set serv(deop) "deop %chan %nick"
set serv(command) "deop %chan %nick"

# Set the time in seconds to wait before reseting the punishment monitor:
# Note: this setting means the bot will apply the punishment steps on each nick
# within this period of time, otherwise it'll trigger steps from the beginning.
# Most recommended value is between: 60-90
set pwait 60

# Edit this only if your bot is an ircop and will use the kline command:
# Set here the kline command used on your server.
# for example some ircds user:
# kline %mask %time %reason
# others use:
# kline %time %mask %reason
## NOTE:
# %mask = the klined mask.
# %time = the kline time.
# %reason = the kline reason.
##
set kline(cmd) "kline %time %mask :%reason"

# set the default kline time. (seconds or minutes depends on your ircd)
set kline(time) 30

## Available punishment methods:
# 1: warn - kick - kickban
# 2: warn - kick
# 3: warn - kickban
# 4: kick - kickban
# 5: kickban
## the following methods should only be chosen if your bot is an ircop (opered up):
# 6: warn - kick - kline
# 7: warn - kline
# 8: kick - kill - kline
# 9: kill - kline
# 10: kline
#
## For example if you set this to 1 for text flood:
#
# ** nick triggers text flood
# ** bot warns nick
# ** nick triggers text flood again
# ** bot kicks nick
# ** nick triggers text flood yet again
# ** bot bankicks nick
## these steps will be triggered if the offences happend during <pwait> seconds.
# NOTE: These methods are not applicable on all flood types. I only applied this
# feature on the flood types I think they're needed.

## Available ban types:
# 0 : *!user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 1 : *!*user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 2 : *!*@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 3 : *!*user@*.host.tld
# 4 : *!*@*.host.tld
# 5 : nick!user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 6 : nick!*user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 7 : nick!*@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 8 : nick!*user@*.host.tld
# 9 : nick!*@*.host.tld
# 10: *!user@*
# 11: nick!*@*

## Available kline mask types:
# 0 : user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 1 : *user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 2 : *@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 3 : *user@*.host.tld
# 4 : *@*.host.tld
# 5 : user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 6 : *user@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 7 : *@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].host.tld
# 8 : *user@*.host.tld
# 9 : *@*.host.tld
# 10: user@*

##########################
# TEXT FLOOD #
##########################

#
## 1 ## Text flood (lines)
#

# use .chanset #channel ap:textl <lines>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:textl 7:2}

# Text flood (lines) punishment method:
set textl(pmeth) 4

# Text flood (lines) bantype.
set textl(btype) 2

# Text flood (lines) ban time in minutes. (0 for no ban time)
set textl(btime) 10

# Text flood (lines) kick msg.
set textl(kmsg) "*Uzun yazý* Kurallara aykýrýdýr. $kckcount(form)"

# Text flood (lines) warn msg.
set textl(wmsg) "Uyarý: Uzun Yazý kurallara aykýrýdýr, devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Text flood (lines) kline mask type.
set textl(ktype) 2

# Text flood (lines) kline/kill reason.
set textl(klmsg) "Bu sunucuda Uzun yazý yazmak uzaklaþtýrýlma nedenidir."

# Text flood (lines) kline time (seconds or minutes depends on your ircd).
set textl(ktime) 10

#
## 2 ## Text flood (chars)
#

# Use .chanset #channel ap:textc <chars>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:textc 350:2}

# Text flood (chars) punishment method:
set textc(pmeth) 4

# Text flood (chars) bantype.
set textc(btype) 2

# Text flood (chars) ban time in minutes. (0 for no ban time)
set textc(btime) 10

# Text flood (chars) kick msg.
set textc(kmsg) "*Çok uzun yazý*. $kckcount(form)"

# Text flood (chars) warning msg.
set textc(wmsg) "Uyarý: *Çok uzun yazý* kurallara aykýrýdýr! Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Text flood (chars) kline mask type.
set textc(ktype) 2

# Text flood (chars) kline/kill reason.
set textc(klmsg) "Bu sunucuda ÇOK UZUN YAZI kurallara aykýrýdýr."

# Text flood (chars) kline time (seconds or minutes depends on your ircd).
set textc(ktime) 0

#
## 3 ## Notice flood (lines)
#

# Use .chanset #channel ap:notcl <lines>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:notcl 2:3}

# Notice flood (lines) punishment method:
set noticel(pmeth) 5

# Notice flood (lines) ban tpye.
set noticel(btype) 2

# Notice flood (lines) ban time in minutes. (0 for no ban time)
set noticel(btime) 10

# Notice flood (lines) kick msg.
set noticel(kmsg) "Fazla notice kullanýmý yasaktýr. $kckcount(form)"

# Notice flood (lines) warn msg.
set noticel(wmsg) "Uyarý: Notice Flood yapmayýnýz! Devamýnýz halinde uazkalaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Notice flood (lines) kline mask type.
set noticel(ktype) 2

# Notice flood (lines) kline/kline reason.
set noticel(klmsg) "Notice flood."

# Notice flood (lines) kline time in reason.
set noticel(ktime) 0

#
## 4 ## Notice flood (chars)
#

# Use .chanset #channel ap:notcc <chars>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:notcc 200:3}

# Notice flood (chars) punishment method:
set noticec(pmeth) 5

# Notice flood (chars) ban type.
set noticec(btype) 2

# Notice flood (chars) ban time in minutes. (0 for no ban time)
set noticec(btime) 30

# Notice flood (chars) kick msg.
set noticec(kmsg) "Notice Flood. $kckcount(form)"

# Notice flood (chars) warn msg.
set noticec(wmsg) "Notice Flood."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Notice flood (chars) kline mask type.
set noticec(ktype) 2

# Notice flood (chars) kline/kill reason.
set noticec(klmsg) "Notice flood."

# Notice flood (chars) kline time (seconds or minutes depends on your ircd).
set noticec(ktime) 0

###################
# TEXT #
###################

#
## 5 ## Caps flood.
#

# Use .chanset #channel ap:caps <percent>:<line-length> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:caps 60:40}

# Caps flood punishment method:
set capsp(pmeth) 3

# Caps flood ban type.
set capsp(btype) 2

# Caps flood ban time in minutes. (0 for no ban time)
set capsp(btime) 15

# Caps flood kick msg.
set capsp(kmsg) "Çok fazla büyük harf kullandýnýz *büyük harfle yazmak baðýrmak anlamýna gelir!*. $kckcount(form)"

# Caps flood warn msg.
set capsp(wmsg) "Uyarý: Lütfen BÜYÜK harf kullanmayýnýz. Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Caps flood kline mask type.
set capsp(ktype) 2

# Caps flood kline/kill reason.
set capsp(klmsg) "Çok fazla büüyk harf kullanmak yasaktýr."

# Caps flood kline time (seconds or minutes depends on your ircd).
set capsp(ktime) 0

#
## 6 ## Text repeating.
#

# use .chanset #channel ap:repeatl <repeats>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:repeatl 3:10}

## Text repeating Kick on how many consecutive repeated letters?
## Example: if this is set to 5 then the bot will kick any user who types (example):
# Hellooooo (5 consecutive o's)
# Hello!!!!!!!!! (5 and more consecutive ! marks)
## Use .chanset #channel ap:repeatc <number-of-letters> (in DCC, 0 to disable)
# Set default value here:
lappend ap:udefs {ap:repeatc 25}

# Text repeating punishment method:
set repeatf(pmeth) 3

# Text repeating ban type.
set repeatf(btype) 2

# Text repeating ban time in minutes. (0 for no ban time)
set repeatf(btime) 15

# Text repeating kick msg.
set repeatf(kmsg) "Tekrar yapmak/harf uzatmak yasaktýr. $kckcount(form)"

# Text repeating letter repeats kick msg.
set repeatf(kslmsg) "Tekrar yapmayýnýz/Harfleri uzatmayýnýz. $kckcount(form)"

# Text repeating warn msg.
set repeatf(wmsg) "\002Uyarý:\002 Tekrar yapmayýnýz/Harfleri uzatmayýnýz. Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Text repeating kline mask type.
set repeatf(ktype) 2

# Text repeating kline/kill reason.
set repeatf(klmsg) "Tekrar Yapmak Kurallara Aykýrýdýr."

# Text repeating kline time (seconds or minutes depends on your ircd).
set repeatf(ktime) 0

#
## 7 ## Control codes.
#

# Use .chanset #channel ap:codes r:<n> b:<n> u:<n> c:<n> (in DCC)
# Example: If you set ap:codes to: r:35 b:35 u:35 c:35
# Then 35 (or more) characters affected by Reverse or Bold or Underline or Color
# will be considered an offence.
# Set default rate here:
lappend ap:udefs {ap:codes "r:350 b:350 u:350 c:350"}

# Control codes punishment method:
set codesf(pmeth) 4

# Control codes ban type.
set codesf(btype) 2

# control codes ban time in minutes. (0 for no ban time)
set codesf(btime) 30

# Control codes kick msg.
set codesf(kmsg) "Kontrol tuþlarý kullanýmýný azalt. $kckcount(form)"

# Control codes warn msg.
set codesf(wmsg) "\002Uyarý:\002 ctrl tuþunu çok fazla kullanmayýnýz, devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Control codes kline mask type.
set codesf(ktype) 2

# Control codes kline/kill reason.
set codesf(klmsg) "müsaade edilenden daha fazla ctrl tuþu kullanýmý."

# Control codes kline time (seconds or minutes depends on your ircd).
set codesf(ktime) 0

#
## 8 ## Advertising.
#

# NOTE: This protection also works for private advertising.

# Use .chanset #channel ap:adv + (in DCC to enable)
# set default value here: (+ enabled, - disabled)
lappend ap:udefs {ap:adv +}

# Advertising triggers.
set adv(words) {
"*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Advertising punishment method:
set adv(pmeth) 5

# Advertising ban type.
set adv(btype) 2

# Advertising ban time in minutes. (0 for no ban time)
set adv(btime) 15

# Advertising kick msg.
set adv(kmsg) "Yasak kelime *%rate* $kckcount(form)"

# Advertising warn msg.
set adv(wmsg) "Uyarý: Reklam yapmayýnýz. Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Advertising kline mask type.
set adv(ktype) 2

# Advertising kline/kill reason.
set adv(klmsg) "Trojan-Spamming. Bilgisayarýnýzda bulunan bir virüsten dolayý sunucuya girþiniz yasaklanmýþtýr."

# Advertising kline time (seconds or minutes depends on your ircd).
set adv(ktime) 0

#
## 9 ## Swearing.
#

# Use .chanset #channel ap:swear + (in DCC to enable)
# Set default value here: (+ enabled, - disabled)
lappend ap:udefs {ap:swear +}


# Swearing punishment method:
set swear(pmeth) 5

# Swearing ban type.
set swear(btype) 2

# Swearing ban time in minutes. (0 for no ban time)
set swear(btime) 15

# Swearing kick msg.
set swear(kmsg) "Yasak kelime *%rate*. $kckcount(form)"

# Swearing warn msg.
set swear(wmsg) "Uyarý: küfür ve reklam içeren kelimeler kullanmayýnýz. Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Swearing kline mask type.
set swear(ktype) 2

# Swearing kline/kill reason.
set swear(klmsg) "Yasak kelime! *$swear(words)*."

# Swearing kline time (seconds or minutes depends on your ircd).
set swear(ktime) 0

###################
# CTCP #
###################

#
## 10 ## CTCP/CTCR flood
#

# Use .chanset #channel ap:ctcps <ctcps>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:ctcps 3:30}

# CTCP/CTCR flood punishment method:
set ctcpf(pmeth) 4

# CTCP/CTCR flood ban type.
set ctcpf(btype) 2

# CTCP/CTCR ban time in minutes. (0 for no ban time)
set ctcpf(btime) 10

# CTCP/CTCR flood kick msg.
set ctcpf(kmsg) "CTCP flood. $kckcount(form)"

# CTCP/CTCR flood warn msg.
set ctcpf(wmsg) "Uyarý: CTCP/CTCR flood korumasý uyarýldý. Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# CTCP/CTCR flood kline mask type.
set ctcpf(ktype) 2

# CTCP/CTCR flood kline/kill reason.
set ctcpf(klmsg) "CTCP/CTCR flood."

# CTCP flood kline time (seconds or minutes depends on your ircd).
set ctcpf(ktime) 0

###################
# TAKEOVER #
###################

#
## 11 ## Mass deop.
#

# Use .chanset #channel ap:massd <deops>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:massd 5:1}

# Mass deop: deop abuser ? (0: no , 1: yes)
set massdeop(deop) 0

# Mass deop punishment method:
set massdeop(pmeth) 5

# Mass deop ban type.
set massdeop(btype) 2

# Mass deop ban time in minutes. (0 for no ban time)
set massdeop(btime) 10

# Mass deop kick msg.
set massdeop(kmsg) "Mass deop detected. $kckcount(form)"

# Mass deop warn msg.
set massdeop(wmsg) "Warning: You've triggered the mass deop protection, do not repeat this action."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Mass deop kline type (same as bantype).
set massdeop(ktype) 2

# Mass deop kline/kill reason.
set massdeop(klmsg) "Mass deops are not allowed on this network."

# Mass deop kline time (seconds or minutes depends on your ircd).
set massdeop(ktime) 0

#
## 12 ## Mass kick.
#

# Use .chanset #channel ap:massk <kicks>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:massk 0:0}

# Mass kick: deop abuser ? (0: no , 1: yes)
set masskick(deop) 0

# Mass kick punishment method:
set masskick(pmeth) 5

# Mass kick ban type.
set masskick(btype) 2

# Mass kick ban time in minutes. (0 for no ban time)
set masskick(btime) 10

# Mass kick kick msg.
set masskick(kmsg) "Mass kick detected. $kckcount(form)"

# Mass kick warn msg.
set masskick(wmsg) "Warning: You've triggered mass kick protection, do not repeat this action."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Mass kick kline mask type.
set masskick(ktype) 2

# Mass kick kline/kill reason.
set masskick(klmsg) "Mass kicks are prohibited on this network."

# Mass kick kline time (seconds or minutes depends on your ircd).
set masskick(ktime) 0

#
## 13 ## Mass ban (bans).
#

# Use .chanset #channel ap:massb <bans>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:massb 0:0}

# Mass ban (bans) deop abuser ? (1: yes , 0: no)
set massb(deop) 0

# Mass ban (bans) punishment method:
set massb(pmeth) 5

# Mass ban (bans) ban type.
set massb(btype) 2

# Mass ban (bans) ban time in minutes. (0 for no ban time)
set massb(btime) 30

# Mass ban (bans) kick msg.
set massb(kmsg) "Mass ban is not allowed. $kckcount(form)"

# Mass ban (bans) warning msg.
set massb(wmsg) "Warning: You've triggered mass ban protection, do not repeat this action."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Mass ban (bans) kline mask type.
set massb(ktype) 2

# Mass ban (bans) kline/kill reason.
set massb(klmsg) "Mass banning (bans) is prohibited on this network."

# Mass ban (bans) kline time (seconds or minutes depends on your ircd).
set massb(ktime) 0

#
## 14 ## Channel limit.
#

# Use .chanset #channel ap:limit <limit> (in DCC, 0 to disable)
# Note: this be the number that will be added to the channel's limit.
# Set default limit here:
lappend ap:udefs {ap:limit 0}

###################
# MISCELLANEOUS #
###################

#
## 15 ## Join flood.
#

# Use .chanset #channel ap:cjoin <joins>:<seconds> (in DCC, 0:0 to disable)
# NOTE: This triggers on clone join flood, not mass join.
# Set default rate here:
lappend ap:udefs {ap:cjoin 4:2}

# Join flood punishment method.
set joinflood(pmeth) 5

# Join flood ban type.
set joinflood(btype) 2

# Join flood ban time in minutes. (0 for no ban time)
set joinflood(btime) 30

# Join flood: Lock channel when triggered ? (1: yes , 0: no)
set joinflood(lockchan) 0

# Join flood: If lock channel is enable, what modes ?
set joinflood(lockmode) "mR-k clone.join.flood"

# Join flood: lock time in seconds.
set joinflood(locktime) 45

# Join flood kick msg.
set joinflood(kmsg) "Join flood. ( 2 saniye içerisinde 4 giriþ ) $kckcount(form)"

# Join flood warn msg.
set joinflood(wmsg) "Warning: you've triggered join flood protection, further offence will cause harsher actions."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Join flood kline mask type.
set joinflood(ktype) 2

# Join flood kline/kill reason.
set joinflood(klmsg) "Join flood."

# Join flood kline time (seconds or minutes depends on your ircd).
set joinflood(ktime) 0

#
## 16 ## Part msg flood.
#

# Use .chanset #channel ap:partmsgs <message-length> (in DCC, 0 to disable)
# Set default value here:
lappend ap:udefs {ap:partmsgs 0}

# Also, you can ban if excess codes are used in a part msg:
# Use .chanset #channel ap:partmsgc r:<n> b:<n> u:<n> c:<n> (in DCC)
# Note: check codes protection to understand how codes checking work.
# r = reverse, b = bold, u = underline and c = colors.
# Set default rate here:
lappend ap:udefs {ap:partmsgc "r:350 b:350 u:350 c:350"}

# Part msg flood punishment method:
set pmsgf(pmeth) 5

# Part msg flood ban type.
set pmsgf(btype) 2

# Part msg flood ban time in minutes. (0 for no bantime)
set pmsgf(btime) 30

# Part msg flood kick msg. (incase the offender managed to rejoin before being banned)
set pmsgf(kmsg) "Part msg flood detected. $kckcount(form)"

# Part msg flood warn msg.
set pmsgf(wmsg) "Warning: You've triggered part msg flood protection, decrease text in your part reason."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Part msg flood kline mask type.
set pmsgf(ktype) 2

# Part msg flood kline/kill reason.
set pmsgf(klmsg) "Part msg floods are not permissable on this network."

# Part msg flood kline time (seconds or minutes depends on your ircd).
set pmsgf(ktime) 0

#
## 17 ## Revolving door.
#

# Use .chanset #channel ap:revdoor <seconds> (in DCC)
# example: setting this to 3 will make the bot ban whoever joins and parts/quits in 3 or less seconds.
# Set default value here:
lappend ap:udefs {ap:revdoor 0}

# Revolving door ban type.
set revdoor(btype) 2

# Revolving door kick msg.
set revdoor(kmsg) "çok fazla join part yaptýnýz ( 4 defa ). $kckcount(form)"

# Revolving door ban time in minutes. (0 for no ban time)
set revdoor(btime) 30

#
## 18 ## Nick flood.
#

# Use .chanset #channel ap:nickf <nick-changes>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:nickf 3:10}

# Nick flood punishment method:
set nickflood(pmeth) 4

# Nick flood ban type.
set nickflood(btype) 2

# Nick flood ban time in minutes. (0 for no ban time)
set nickflood(btime) 30

# Nick flood kick msg.
set nickflood(kmsg) "Aþýrý nick deðiþimi. $kckcount(form)"

# Nick flood warn msg.
set nickflood(wmsg) "Uyarý: Çok fazla nick deðiþimi yaptýnýz. Devamýnýz halinde uzaklaþtýrýlacaksýnýz."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Nick flood kline mask type.
set nickflood(ktype) 2

# Nick flood kline/kill reason.
set nickflood(klmsg) "Çok fazla nick deðiþimi."

# Nick flood kline time (seconds or minutes depends on your ircd).
set nickflood(ktime) 0

#
## 19 ## Clones.
#

# Use .chanset #channel ap:clones <clones-number> (in DCC)
# Note: This will be the number of clones that triggers punishment.
# Set default value here:
lappend ap:udefs {ap:clones 5}

# Clones punishment method:
set eclones(pmeth) 5

# Clones ban type.
set eclones(btype) 2

# Clones ban time in minutes. (0 for no ban time)
set eclones(btime) 30

# Clones kick msg.
set eclones(kmsg) "Clone. $kckcount(form)"

# Clones warning msg.
set eclones(wmsg) "Warning: You've exceeded the maximum number of clones, remove your clones now."

# Do you want to check if the clones are still excess after warn?
# if yes then set this to the number of seconds to wait before checking again. (0 to disable)
# NOTE: This is preffered to be less than <pwait> (at the beginning of the configuration).
set eclones(cagain) 40

## Edit the following only if you choose a punish method above 5 (oper commands):

# Clones kline mask type.
set eclones(ktype) 2

# Clones kline/kill reason.
set eclones(klmsg) "Clone."

# Clones kline time (seconds or minutes depends on your ircd).
set eclones(ktime) 0

#
## 20 ## Bad nick.
#

# Use .chanset #channel ap:bnicks + (in DCC to enable)
# Set default value here: (+ enabled, - disabled)
lappend ap:udefs {ap:bnicks +}

# Bad nick ban type. (-1 to disable banning)
set bnick(btype) 11

# Bad nick kick msg
set bnick(kmsg) "kötü nick %rate. $kckcount(form)"

# Bad nick ban time in minutes. (0 for no ban time)
set bnick(btime) 15

#
## 21 ## Random drones.
#

# Use .chanset #channel ap:drones + (in DCC to enable)
# Set default value here: (+ enabled, - disabled)
lappend ap:udefs {ap:drones +}

# Random drones: Do you want the bot to check for drones on op ? (1: yes , 0: no)
set nosense(conop) 1

# Random drones: What masks to exempt?
set nosense(exempt) { "*example1*!*@*" "*!*example2*@*" "*!*@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]3.net" }

# Random drones ban type.
set nosense(btype) 2

# Random drones punishment method:
# If you set this to 0 then the bot will only kick the drone once.
# So if the drone rejoins it will not be kicked again.
set nosense(pmeth) 5

# If nosense(pmeth) is set to 0, how long do you want the bot to wait for the drone to rejoin
# before starting to kick it again? (in seconds)
set nosense(dwait) 45

# Random drones ban time in minutes. (0 for no bantime)
set nosense(btime) 20

# Random drones kick msg.
set nosense(kmsg) "Random nick kullanýmý yasaktýr. $kckcount(form)"

# Random drones warning msg.
set nosense(wmsg) "Warning: You've triggered random drones protection, change your nick now."

## Edit the following only if you choose a punish method above 5 (oper commands):

# Random drones kline mask type.
set nosense(ktype) 2

# Random drones kline/kill reason.
set nosense(klmsg) "Random drones."

# Random drones kline time (seconds or minutes depends on your ircd).
set nosense(ktime) 0

#
## 22 ## Bad ident.
#

# Use .chanset #channel ap:bidents + (in DCC to enable)
# Set default value here: (+ enabled, - disabled)
lappend ap:udefs {ap:bidents +}

# Bad ident triggers.

# Bad ident ban type. (-1 to disable ban)
set bident(btype) 10

# Bad ident kick msg.
set bident(kmsg) "Kötü ident! Lütfen identinizi deðiþip öyle giriniz. $kckcount(form)"

# Bad ident ban time. (0 for no ban time)
set bident(btime) 15

#########################################
# BOTNET FLOOD PROTECTION (MASS FLOODS) #
#########################################

#
## 1 ## Botnet Text flood (lines).
#

# Use .chanset #channel ap:btextl <lines>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:btextl 0:0}

# Botnet Text flood (lines) lock modes.
set btextl(lockmode) "mR-k lines.flood"

# Botnet Text flood (lines) lock time in seconds. (0 for no lock time)
set btextl(locktime) 60

#
## 2 ## Botnet Text flood (chars).
#

# Use .chanset #channel ap:btextc <chars>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:btextc 0:0}

# Botnet Text flood (chars) lock modes.
set btextc(lockmode) "mR-k chars.flood"

# Botnet Text flood (chars) lock time in seconds. (0 for no lock time)
set btextc(locktime) 60

#
## 3 ## Botnet Notice flood (lines).
#

# Use .chanset #channel ap:bnotcl <lines>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:bnotcl 0:0}

# Botnet Notice flood (lines) lock modes.
set bnotil(lockmode) "mR-k lines.flood"

# Botnet Notice flood (lines) lock time in seconds. (0 for no lock time)
set bnotil(locktime) 60

#
## 4 ## Botnet Notice flood (chars).
#

# Use .chanset #channel ap:bnotcc <chars>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:bnotcc 0:0}

# Botnet Notice flood (chars) lock modes.
set bnotic(lockmode) "mR-k chars.flood"

# Botnet Notice flood (chars) lock time in seconds. (0 for no lock time)
set bnotic(locktime) 60

#
## 5 ## Botnet CTCP/CTCR flood.
#

# Use .chanset #channel ap:bctcp <ctcps>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:bctcp 0:0}

# BOTNET CTCP/CTCR flood lock modes.
set bctcpf(lockmode) "mR-k ctcp.flood"

# BOTNET CTCP/CTCR flood lock time in seconds. (0 for no lock time)
set bctcpf(locktime) 60

#
## 6 ## Botnet join flood.
#

# Use .chanset #channel ap:massjoin <joins>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:massjoin 0:0}

# Botnet join flood lock modes.
set bjoinf(lockmode) "mR-k join.flood"

# Botnet join flood lock time in seconds. (0 for no lock time)
set bjoinf(locktime) 60

#
## 7 ## Botnet revolving door flood.
#

# Use .chanset #channel ap:brevdoor <revdoors>:<seconds> (in DCC, 0:0 to disable)
## Note: ap:revdoor must be set for this to work.
# Set default rate here:
lappend ap:udefs {ap:brevdoor 0:0}

# Botnet revolving door flood lock modes.
set brevdoor(lockmode) "mR-k revdoor.flood"

# Botnet revolving door flood lock time in seconds. (0 for no lock time)
set brevdoor(locktime) 60

#
## 8 ## Botnet part msg flood.
#

# Use .chanset #channel ap:bpartmsg <partmsgs>:<seconds> (in DCC, 0:0 to disable)
## Note: ap:partmsgs or ap:partmsgc (or both) must be enabled for this to work.
# Set default rate here:
lappend ap:udefs {ap:bpartmsg 0:0}

# Botnet Part msg flood lock modes.
set bpmsgf(lockmode) "mR-k partmsg.flood"

# Botnet Part msg flood lock time in seconds. (0 for no lock time)
set bpmsgf(locktime) 60

#
## 9 ## Botnet Nick flood.
#

# Use .chanset #channel ap:bnickf <nick-changes>:<seconds> (in DCC, 0:0 to disable)
# Set default rate here:
lappend ap:udefs {ap:bnickf 0:0}

# Botnet Nick flood lock modes.
set bnickf(lockmode) "mR-k nick.flood"

# Botnet Nick flood lock time in seconds. (0 for no lock time)
set bnickf(locktime) 60

###########################
# PRIVATE PROTECTIONS #
###########################

# Set here if you want the bot to set a restriction mode on itself when flooded.
# example: +R is used on DALnet so only registered users can send to the bot.
# set this to "" if you don't wish to change your bot's modes during a flood.
# NOTE: Maximum 1 mode, less or more means it's disabled.
set apfp(rmode) +M

# Set here the time you want to keep the restriction mode in seconds.
set apfp(rtime) 15

# How many seconds do you want to stop answering data from server?
set apfp(itime) 45

#
## 1 ## Private text floods.
#

# Private text (lines) flood <lines>:<seconds>. (0:0 to disable)
set ptextl(punish) 10:6

# Private text (chars) flood <chars>:<seconds>. (0:0 to disable)
set ptextc(punish) 750:6

#
## 2 ## Private notice floods.
#

# Private notice (lines) flood <lines>:<seconds>. (0:0 to disable)
set pnotil(punish) 6:3

# Private notice (chars) flood <chars>:<seconds>. (0:0 to disable)
set pnotic(punish) 600:4

#
## 3 ## Private CTCP/CTCR flood.
#

# Private CTCP/CTCR flood <ctcps>:<seconds>. (0:0 to disable)
set pctcpf(punish) 4:20

################################################## ##############
##Buraya kadardý. Buradan Sonrasýnda herhangi bi deðiþiklik ##
##yapmayýn!!! ##
################################################## ##############
bind evnt - init-server muaf:yenile
bind evnt - disconnect-server muaf:yenile
bind evnt - connect-server muaf:yenile
bind evnt - rehash muaf:yenile

proc muaf:yenile {type} {
global admin_chan
if {![file exists "scripts/ScanX/muaflar.txt"]} { return 0 }
set kfile [open "scripts/ScanX/muaflar.txt" r]
set lines [split [read $kfile] "\n"]
catch {close $kfile}
set ::muafg "";set count 1
putserv "privmsg $admin_chan :\00305Server muaf listesi gözden geçiriliyor\00301.\00302.\00312."
foreach lines $lines {
if {$lines != ""} {
append ::muafg " [lindex $lines 0]"
incr count
}

}
if {$count == "1"} {
putserv "privmsg $admin_chan :\00304Henüz bir muaf listesi oluþturmamýþsýnýz ya da bulunamýyor!"
putserv "privmsg $admin_chan :\00305Nasýl oluþturacaðýnýzý görmek için !muafbilgi yazýnýz."
}
if {$count != "1"} {
putserv "privmsg $admin_chan :\00303Muaf listesi baþarýyla güncellendi."
putserv "privmsg $admin_chan :\00305Ayrýntýlý bilgi için !muafbilgi yazýnýz."
}
}

proc ap:istimer {arg {t timers}} {
set a ""
foreach rt [$t] {
if {[string equal -nocase $arg [lindex $rt 1]]} {
set a [lindex $rt 2] ; break
}
}
set a
}

if {![info exists NumKicks]} {
if {![file exists $kckcount(file)]} {
set NumKicks 0
} {
set kcfopened [open $kckcount(file) r]
set NumKicks [read -nonewline $kcfopened]
close $kcfopened
if {![string is integer $NumKicks]} { set NumKicks 0 }
}
}

if {$cbcd(check)} {
if {[set cbcd(timer) [ap:istimer checkbcd:join]]!=""} { killtimer $cbcd(timer) }
timer 3 checkbcd:join
}

if {![string match -nocase "* Opposing *" ${ctcp-version}]} {
set ctcp-version "${ctcp-version} - ScanX v.2 Komple Koruma Sistemi By SaW - Socket Degil Roket Bot.."
}

set bred 0
set sfluds 0
setudef str ap:textl
setudef str ap:textc
setudef str ap:notcl
setudef str ap:notcc
setudef str ap:caps
setudef str ap:repeatl
setudef str ap:repeatc
setudef str ap:codes
setudef str ap:adv
setudef str ap:swear
setudef str ap:ctcps
setudef str ap:massd
setudef str ap:massk
setudef str ap:massb
setudef str ap:limit
setudef str ap:cjoin
setudef str ap:partmsgs
setudef str ap:partmsgc
setudef str ap:revdoor
setudef str ap:nickf
setudef str ap:clones
setudef str ap:bnicks
setudef str ap:drones
setudef str ap:bidents
setudef str ap:btextl
setudef str ap:btextc
setudef str ap:bnotcl
setudef str ap:bnotcc
setudef str ap:bctcp
setudef str ap:massjoin
setudef str ap:brevdoor
setudef str ap:bpartmsg
setudef str ap:bnickf

bind join - * cjoin:kick
bind pubm - * text:line
bind ctcp - ACTION text:action
bind pubm - * text:char
bind ctcp - ACTION char:action
bind notc - * notc:lines
bind notc - * notc:chars
bind pubm - * caps:kick
bind ctcp - ACTION caps:action
bind pubm - * repeat:kick
bind ctcp - ACTION repeat:action
bind pubm - * codes:kick
bind notc - * codes:notc
bind ctcp - ACTION codes:action
bind pubm - * adv:kick
bind ctcp - ACTION adv:action
bind msgm - * adv:private
bind pubm - * swear:kick
bind ctcp - ACTION swear:action
bind part - * rev:door
bind sign - * rev:door
bind join - * clones:kick
bind join - * bnick:kick
bind nick - * bnick:kick
bind join - * bident:kick
bind mode - "* +b" mass:ban
bind pubm - * btext:line
bind ctcp - ACTION btext:action
bind pubm - * btext:chars
bind ctcp - ACTION bchars:action
bind notc - * bnotc:line
bind notc - * bnotc:chars
bind ctcp - * ctcp:kick
bind ctcp - * bctcp:lock
bind ctcr - * ctcr:knl
bind join - * bjoinf:lock
bind nick - * bnickf:lock
bind join - * nosense:kick
bind part - * pmsgf:ban
bind mode - "* -o" massd:kick
bind kick - * massk:kick
bind nick - * nickf:kick
bind part - * config:lim
bind sign - * config:lim
bind msgm - * priv:texti
bind ctcp - ACTION priv:acti
bind notc - * priv:notci
bind ctcp - * priv:ctcpi
bind ctcr - * priv:ctcri
bind flud - * priv:flud
bind mode - "* +o" cdrone:onop
bind mode - "* -b" ap:remubt
bind time - * ap:control
bind dcc n|n ap:import ap:import
bind dcc n|n ap:reset ap:reset

proc ap:init c {
global ap:udefs
foreach u ${ap:udefs} {
if {[channel get $c [lindex $u 0]] == ""} { channel set $c [lindex $u 0] [lindex $u 1] }
}
}

proc cjoin:kick {nick uhost hand chan} {
global joinflood btclocked notifyusers apjoinf apjoinfn admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {![botisop $chan] || [onchan $nick $admin_chan] || [matchattr $hand f|f $chan] || [matchattr $hand mo|mo $chan]} {return 0}
if {![info exists btclocked([set chan [string tolower $chan]])]} { set btclocked($chan) 0 }
foreach {j s} [channel get $chan ap:cjoin] {break}
if {[invalid:apf $j $s]} {return 0}
Nfollow $s apjoinfn([set h [string tolower [lindex [split $uhost @] 1]:$chan]]) $nick
if {[set ts [follow $s apjoinf($h) $j]] != -1} {
if {$joinflood(lockchan)} {
if {!($btclocked($chan))} {
ap:lockc $chan $joinflood(lockmode)
if {$joinflood(locktime) > 0} {
utimer $joinflood(locktime) [list btcunlock $chan $joinflood(lockmode) btclocked($chan)]
} {
utimer 90 [list reset:btc b b b $chan b b]
}
set btclocked($chan) 1
if {[string length $btclocked(lnotc)] > 0} {
puthelp "NOTICE $chan :$btclocked(lnotc)"
}
putlog "\002AP\002: Locked $chan due to join flood from [set jfi [lindex [split $uhost @] 1]]."
if {[llength $notifyusers]} {
foreach notfuser $notifyusers {
sendnote AP $notfuser "Join flood detected on $chan from $jfi."
}
}
}
}
punish:method2 $joinflood(pmeth) $apjoinfn($h) $nick $uhost $chan [ap:mapr $joinflood(kmsg) "$ts saniyede $j join"] $joinflood(wmsg) $joinflood(btype) $joinflood(btime) $joinflood(klmsg) $joinflood(ktime) $joinflood(ktype) [string tolower [scan $uhost %*\[^@\]@%s]]:joinflood
}
}

proc text:line {nick uhost hand chan arg} {
global textl txtf admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
foreach {o s} [split [channel get $chan ap:textl] :] {break}
if {[invalid:apf $o $s] || [onchan $nick $admin_chan] || [invalid:apc $nick $hand $chan]} {return 0}
if {[set ts [follow $s txtf([string tolower $uhost:$chan]) $o]] != -1} {
punish:method $textl(pmeth) $nick $uhost $chan [ap:mapr $textl(kmsg) "$ts saniyede $o satýr"] $textl(wmsg) $textl(btype) $textl(btime) $textl(klmsg) $textl(ktime) $textl(ktype) [string tolower $uhost]:textl
}
}

proc text:action {nick uhost hand chan keyword arg} {
if {[isbotnick [lindex [split $chan "@"] 0]] || [lindex [split $chan "@"] 1] != ""} {return 0}
text:line $nick $uhost $hand $chan $arg
}

proc text:char {nick uhost hand chan arg} {
global textc txtc admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
foreach {o s} [split [channel get $chan ap:textc] :] {break}
if {[invalid:apf $o $s] || [onchan $nick $admin_chan] || [invalid:apc $nick $hand $chan]} {return 0}
if {[info exists txtc([set uhc [string tolower $uhost:$chan]])]} { set myo [lindex $txtc($uhc) 0] }
if {[set ts [follow $s txtc($uhc) $o [set sl [string length $arg]]]] != -1} {
if {![info exists myo]} { set myo $sl } { incr myo $sl }
punish:method $textc(pmeth) $nick $uhost $chan [ap:mapr $textc(kmsg) "$ts saniyede $myo karakter"] $textc(wmsg) $textc(btype) $textc(btime) $textc(klmsg) $textc(ktime) $textc(ktype) [string tolower $uhost]:textc
}
}

proc char:action {nick uhost hand chan keyword arg} {
if {[isbotnick [lindex [split $chan "@"] 0]] || [lindex [split $chan "@"] 1] != ""} {return 0}
text:char $nick $uhost $hand $chan $arg
}

proc notc:lines {nick uhost hand arg chan} {
global noticel notclf admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [string index $chan 0] == "@"} {return 0}
foreach {o s} [split [channel get $chan ap:notcl] :] {break}
if {[invalid:apf $o $s] || [invalid:apc $nick $hand $chan]} {return 0}
if {[set ts [follow $s notclf([string tolower $uhost:$chan]) $o]] != -1} {
punish:method $noticel(pmeth) $nick $uhost $chan [ap:mapr $noticel(kmsg) "$ts saniyede $o satýr"] $noticel(wmsg) $noticel(btype) $noticel(btime) $noticel(klmsg) $noticel(ktime) $noticel(ktype) [string tolower $uhost]:noticel
}
}

proc notc:chars {nick uhost hand arg chan} {
global noticec notccf admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [string index $chan 0] == "@"} {return 0}
foreach {o s} [split [channel get $chan ap:notcc] :] {break}
if {[invalid:apf $o $s] || [invalid:apc $nick $hand $chan]} {return 0}
if {[info exists notccf([set uhc [string tolower $uhost:$chan]])]} { set myo $notccf($uhc) }
if {[set ts [follow $s notccf($uhc) $o [set sl [string length $arg]]]] != -1} {
if {![info exists myo]} { set myo $sl } { incr myo $sl }
punish:method $noticec(pmeth) $nick $uhost $chan [ap:mapr $noticec(kmsg) "$ts saniyede $myo karakter"] $noticec(wmsg) $noticec(btype) $noticec(btime) $noticec(klmsg) $noticec(ktime) $noticec(ktype) [string tolower $uhost]:noticec
}
}

proc caps:kick {nick uhost hand chan arg} {
global capsp admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
set linelen [string length [set arg [ap:cf $arg]]]
foreach {p l} [split [channel get $chan ap:caps] :] {break}
if {[invalid:apf $p $l] || [onchan $nick $admin_chan] || [invalid:apc $nick $hand $chan] || $linelen < $l} {return 0}
if {[set caps [regexp -all -- {[A-Z]} $arg]] > 0} {
if {[set pl [expr {$caps * 100 / $linelen}]] >= $p} {
punish:method $capsp(pmeth) $nick $uhost $chan [ap:mapr $capsp(kmsg) "kullandýðýnýz $linelen karakterin ${pl}% ü büyüktü"] $capsp(wmsg) $capsp(btype) $capsp(btime) $capsp(klmsg) $capsp(ktime) $capsp(ktype) [string tolower $uhost]:capsp
}
}
}

proc caps:action {nick uhost hand chan keyword arg} {
global admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [lindex [split $chan "@"] 1] != ""} {return 0}
caps:kick $nick $uhost $hand $chan $arg
}

proc repeat:kick {nick uhost hand chan arg} {
global repeatf rptvar admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
foreach {o s} [split [channel get $chan ap:repeatl] :] {break}
set arg [ap:cf $arg]
if {[invalid:apc $nick $hand $chan] || [onchan $nick $admin_chan]} {return 0}
if {[string is integer [set i [channel get $chan ap:repeatc]]] && $i > 0} {
set cl "abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&"
for {set c 0} {$c < [string length $cl]} {incr c} {
if {[string match -nocase *[string repeat [string index $cl $c] $i]* $arg]} {
set kmsg [ap:mapr $repeatf(kslmsg) "${i}+ den daha fazla [string index $cl $c] harfini uzattýn "] ; break
}
}
}
if {![info exists kmsg] && ![invalid:apf $o $s]} {
if {[set ts [follow $s rptvar([md5 [string tolower $uhost:$arg:$chan]]) $o]] != -1} {
set kmsg [ap:mapr $repeatf(kmsg) "$o tekrar $ts saniyede"]
}
}
if {[info exists kmsg]} {
punish:method $repeatf(pmeth) $nick $uhost $chan $kmsg $repeatf(wmsg) $repeatf(btype) $repeatf(btime) $repeatf(klmsg) $repeatf(ktime) $repeatf(ktype) [string tolower $uhost]:repeatf
}
}

proc repeat:action {nick uhost hand chan keyword arg} {
global admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [lindex [split $chan "@"] 1] != ""} {return 0}
repeat:kick $nick $uhost $hand $chan $arg
}

proc codes:kick {nick uhost hand chan arg} {
global codesf
if {[invalid:apc $nick $hand $chan]} {return 0}
if {[string is integer [set cc [ap:ccodes $chan $arg ap:codes]]] && $cc > 0} {
punish:method $codesf(pmeth) $nick $uhost $chan [ap:mapr $codesf(kmsg) "$cc chars affected"] $codesf(wmsg) $codesf(btype) $codesf(btime) $codesf(klmsg) $codesf(ktime) $codesf(ktype) [string tolower $uhost]:codesf
}
}

proc codes:notc {nick uhost hand arg chan} {
global admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [string index $chan 0] == "@"} {return 0}
codes:kick $nick $uhost $hand $chan $arg
}

proc codes:action {nick uhost hand chan keyword arg} {
global admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [lindex [split $chan "@"] 1] != ""} {return 0}
codes:kick $nick $uhost $hand $chan $arg
}

proc adv:kick {nick uhost hand chan arg} {
global adv admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[channel get $chan ap:adv] != "+" || [onchan $nick $admin_chan] || [invalid:apc $nick $hand $chan]} {return 0}
set rest [ap:cf $arg]
foreach advword $adv(words) {
if {[string match -nocase $advword $rest]} {
punish:method $adv(pmeth) $nick $uhost $chan [ap:mapr $adv(kmsg) $advword] $adv(wmsg) $adv(btype) $adv(btime) $adv(klmsg) $adv(ktime) $adv(ktype) [string tolower $uhost]:adv
break
}
}
}

proc adv:action {nick uhost hand chan keyword arg} {
global admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [lindex [split $chan "@"] 1] != ""} {return 0}
adv:kick $nick $uhost $hand $chan $arg
}

proc adv:private {nick uhost hand arg} {
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isop $nick "#radyo"]} { return 0 }
foreach chan [channels] {
if {[onchan $nick $chan]} {
adv:kick $nick $uhost $hand $chan $arg
}
}
}

proc swear:kick {nick uhost hand chan arg} {
global swear admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}

if {[channel get $chan ap:swear] != "+" || [onchan $nick $admin_chan] || [invalid:apc $nick $hand $chan]} {return 0}
set rest [ap:cf $arg]
foreach badword $swear(words) {
if {[string match -nocase $badword $rest]} {
punish:method $swear(pmeth) $nick $uhost $chan [ap:mapr $swear(kmsg) $badword] $swear(wmsg) $swear(btype) $swear(btime) $swear(klmsg) $swear(ktime) $swear(ktype) [string tolower $uhost]:swear
break
}
}
}

proc swear:action {nick uhost hand chan keyword arg} {
global admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[isbotnick [lindex [split $chan "@"] 0]] || [onchan $nick $admin_chan] || [lindex [split $chan "@"] 1] != ""} {return 0}
swear:kick $nick $uhost $hand $chan $arg
}

proc rev:door {nick uhost hand chan rsn} {
global revdoor brevdoor brevdc btclocked notifyusers admin_chan
return 0
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}

if {[invalid:apc $nick $hand [set chan [string tolower $chan]]] || [onchan $nick $admin_chan]} {return 0}
if {![string is integer [set r [channel get $chan ap:revdoor]]] || $r <= 0} {return 0}
if {[set gcj [getchanjoin $nick $chan]] >= [set ut [unixtime]]-$r} {
foreach {o s} [split [channel get $chan ap:brevdoor] :] {break}
if {![info exists btclocked($chan)]} { set btclocked($chan) 0 }
if {![invalid:apf $o $s]} {
if {$o == "0" || $a == "0"} { return 0 }
if {[follow $s brevdc($chan) $o] != -1} {
if {!($btclocked($chan))} {
ap:lockc $chan $brevdoor(lockmode)
if {$brevdoor(locktime) > 0} {
utimer $brevdoor(locktime) [list btcunlock $chan $brevdoor(lockmode) btclocked($chan)]
} {
utimer 90 [list reset:btc bla bla bla $chan bla bla]
}
set btclocked($chan) 1
if {[string length $btclocked(lnotc)] > 0} {
puthelp "NOTICE $chan :$btclocked(lnotc)"
}
putlog "\002AP\002: Locked $chan due to botnet revolving door flood."
if {[llength $notifyusers]} {
foreach notfuser $notifyusers {
sendnote AP $notfuser "Mass revolving door flood detected on $chan."
}
}
}
}
}
if {$revdoor(btype) >= 0} {
putquick "MODE $chan +b [set bmask [masktype $nick!$uhost $revdoor(btype)]]"
if {($revdoor(btime) > 0) && ([ap:istimer "pushmode $chan -b $bmask"] == "")} {
timer $revdoor(btime) [list pushmode $chan -b $bmask]
}
}
if {[onchan $nick $chan]} {
putquick "KICK $chan $nick :[ap:mapr [mapall $revdoor(kmsg) $chan $revdoor(btime)] "[expr {$ut-$gcj}] sec(s) revolution"]"
}
}
}

proc clones:kick {nick uhost hand chan} {
global eclones admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}

config:lim $nick $uhost $hand $chan
if {[isbotnick $nick]} { ap:init $chan ; return 0 }
if {![botisop $chan] || [onchan $nick $admin_chan]} {return 0}
if {![string is integer [set cl [channel get $chan ap:clones]]] || $cl <= 0 || [matchattr $hand f|f $chan] || [matchattr $hand mo|mo $chan]} {return 0}
set c 0
foreach ccheck [chanlist $chan] {
if {[string equal -nocase [scan $uhost %*\[^@\]@%s] [scan [getchanhost $ccheck $chan] %*\[^@\]@%s]]} {
incr c ; lappend cn $ccheck
}
}
if {$c >= $cl} {
if {$eclones(cagain) > 0} {
set eclones([string tolower $chan]) 1
utimer 10 [list followrem eclones([string tolower $chan])]
}
punish:method2 $eclones(pmeth) $cn $nick $uhost $chan [ap:mapr $eclones(kmsg) %ic/$c] $eclones(wmsg) $eclones(btype) $eclones(btime) $eclones(klmsg) $eclones(ktime) $eclones(ktype) [string tolower [scan $uhost %*\[^@\]@%s]]:eclones
}
}

proc bnick:kick {nick uhost hand chan {nn ""}} {
global bnick admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {$nn == ""} { set nn $nick }
if {[string first # $chan] != 0} {return 0}
if {[channel get $chan ap:bnicks] != "+" || [onchan $nick $admin_chan] || [invalid:apc $nn $hand $chan]} {return 0}
foreach badnick $bnick(nicks) {
if {[string match -nocase $badnick $nn]} {
putquick "KICK $chan $nn :[ap:mapr [mapall $bnick(kmsg) $chan $bnick(btime)] $badnick]"
if {$bnick(btype) >= 0} {
putquick "MODE $chan +b [set bmask [masktype $nn!$uhost $bnick(btype)]]"
if {($bnick(btime) > 0) && ([ap:istimer "pushmode $chan -b $bmask"] == "")} {
timer $bnick(btime) [list pushmode $chan -b $bmask]
}
}
break
}
}
}

proc bident:kick {nick uhost hand chan} {
global bident admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[channel get $chan ap:bidents] != "+" || [onchan $nick $admin_chan] || [invalid:apc $nick $hand $chan]} {return 0}
scan $uhost %\[^@\] ident
foreach bid $bident(idents) {
if {[string match -nocase $bid $ident]} {
putquick "KICK $chan $nick :[ap:mapr [mapall $bident(kmsg) $chan $bident(btime)] $bid]"
if {$bident(btype) >= 0} {
putquick "MODE $chan +b [set bmask [masktype $nick!$uhost $bident(btype)]]"
if {($bident(btime) > 0) && ([ap:istimer "pushmode $chan -b $bmask"] == "")} {
timer $bident(btime) [list pushmode $chan -b $bmask]
}
}
break
}
}
}

proc mass:ban {nick uhost hand chan mc ban} {
global massb massbc serv admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
foreach {o s} [split [channel get $chan ap:massb] :] {break}
if {($nick == "") || [invalid:apf $o $s] || [matchattr $hand f|f $chan] || [onchan $nick $admin_chan] || [matchattr $hand mo|mo $chan]} {return 0}
if {[set ts [follow $s massbc([string tolower $uhost:$chan]) $o]] != -1} {
if {$massb(deop)} {
putquick "MODE $chan -o $nick"
putquick "$serv(nick) :[string map [list %nick $nick %chan $chan] $serv(command)]"
}
punish:method $massb(pmeth) $nick $uhost $chan [ap:mapr $massb(kmsg) "$o bans in $ts secs"] $massb(wmsg) $massb(btype) $massb(btime) $massb(klmsg) $massb(ktime) $massb(ktype) [string tolower $uhost]:massb
}
}

proc massd:kick {nick uhost hand chan mc targ} {
global massdeop mssdeop serv admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
foreach {o s} [split [channel get $chan ap:massd] :] {break}
if {($nick == "") || ($nick == $targ) || [invalid:apf $o $s] || [matchattr $hand f|f $chan] || [onchan $nick $admin_chan] || [matchattr $hand mo|mo $chan]} {return 0}
if {[set ts [follow $s mssdeop([string tolower $uhost:$chan]) $o]] != -1} {
if {$massdeop(deop)} {
putquick "$serv(nick) :[string map [list %chan $chan %nick $nick] $serv(command)]"
if {[botisop $chan]} {
putquick "MODE $chan -o $nick"
}
}
punish:method $massdeop(pmeth) $nick $uhost $chan [ap:mapr $massdeop(kmsg) "$o deops in $ts secs"] $massdeop(wmsg) $massdeop(btype) $massdeop(btime) $massdeop(klmsg) $massdeop(ktime) $massdeop(ktype) [string tolower $uhost]:massdeop
}
}

proc massk:kick {nick uhost hand chan targ rsn} {
global masskick msskick serv admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
config:lim $nick $uhost $hand $chan $targ $rsn
foreach {o s} [split [channel get $chan ap:massk] :] {break}
if {($nick == $targ) || [invalid:apf $o $s] || [matchattr $hand f|f $chan] || [onchan $nick $admin_chan] || [matchattr $hand mo|mo $chan]} {return 0}
if {[set ts [follow $s msskick([string tolower $uhost:$chan]) $o]] != -1} {
if {$masskick(deop)} {
putquick "$serv(nick) :[string map [list %chan $chan %nick $nick] $serv(command)]"
if {[botisop $chan]} {
putquick "MODE $chan -o $nick"
}
}
punish:method $masskick(pmeth) $nick $uhost $chan [ap:mapr $masskick(kmsg) "$o kicks in $ts secs"] $masskick(wmsg) $masskick(btype) $masskick(btime) $masskick(klmsg) $masskick(ktime) $masskick(ktype) [string tolower $uhost]:masskick
}
}

proc nickf:kick {nick uhost hand chan nn} {
global nickflood nckflood admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0
}
}
}
if {[string first # $chan] != 0 } {return 0}
foreach {o s} [split [channel get $chan ap:nickf] :] {break}
if {[invalid:apf $o $s] || [onchan $nick $admin_chan] || [invalid:apc $nn $hand $chan]} {return 0}
if {[set ts [follow $s nckflood([string tolower $uhost:$chan]) $o]] != -1} {
punish:method $nickflood(pmeth) $nn $uhost $chan [ap:mapr $nickflood(kmsg) "$ts saniye içerisinde $o defa"] $nickflood(wmsg) $nickflood(btype) $nickflood(btime) $nickflood(klmsg) $nickflood(ktime) $nickflood(ktype) [string tolower $uhost]:nickflood
}
}

proc config:lim {nick uhost hand chan args} {
global clim
if {[string is integer [set l [channel get $chan ap:limit]]] && $l > 0 && [botisop $chan]} {
if {[string match *l* [lindex [split [getchanmode $chan]] 0]]} {
if {abs($l - ([set cl [lindex [split [getchanmode $chan]] end]] - [set ccl [llength [chanlist $chan]]])) > ceil($l * 30 / 100.0)} {
pushmode $chan +l [expr {$ccl + $l}]
}
} {
pushmode $chan +l [expr {[llength [chanlist $chan]] + $l}]
}
}
}

proc nosense:kick {nick uhost hand chan} {
global nosense admin_chan
if {[info exists ::muafg]} {
foreach mf $::muafg {
if {[string match -nocase $mf $nick!$uhost]} {
return 0

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet bizimmekan sohbet odaları