this protection build by Or this protect from NOTICE CTCP JOINFLOOD NICK FLOOD and textFlood
alias bk {
ban -k %fChan $gettok($1,1,32) Join Flood!
dline %twinC $fline(%twinC,$1)
}
alias sk {
kline $gettok($1,1,32) - :Botnets Flood!
dline %twinS $fline(%twinS,$1)
}
alias nk {
ban -k %NChan $gettok($1,1,32) Notice Flood!
dline %twinCN $fline(%twinCN,$1)
}
alias tk {
ban -k %TChan $gettok($1,1,32) Text Flood!
dline %twinCT $fline(%twinCT,$1)
}
alias pk {
ban -k %PChan $gettok($1,1,32) Ctcp Flood!
dline %twinCP $fline(%twinCP,$1)
}
alias nck {
var %i = 1
while ($comchan($gettok($1,1,32),%i)) {
ban -k $ifmatch $gettok($1,1,32) Nick Flood!
inc %i
}
dline %twinCk $fline(%twinCk,$1)
}
on !*:join:#:{
if ($me !isop $chan) { return }
var %winC = @joinF
if (!$window(%winC)) { window -h %winC }
var %resjoin = $calc($ctime - $gettok($fline(%winC,* $chan,$fline(%winC,* $chan,0)).text,2,32))
if (%resjoin > 3) && ($fline(%winC,* $chan)) { dline %winC $fline(%winC,* $chan,$fline(%winC,* $chan,0)) }
if ($fline(%winC,$nick * $chan)) { rline %winC $fline(%winC,$nick * $chan) $nick $ctime $chan }
else { aline %winC $nick $ctime $chan }
if (($fline(%winC,* $chan,0) >= 4) || (%autoJ. [ $+ [ $chan ] ] && $fline(%winC,* $chan,0))) {
set %fChan $chan
set %twinC %winC
filter -wk %winC bk * $chan
set -u2 %autoJ. [ $+ [ $chan ] ] 1
halt
}
var %winJP = @joinFP
if (!$window(%winJP)) { window -h %winJP }
var %timeJP = $calc($ctime - $gettok($fline(%winJP,$nick * $chan,$fline(%winJP,$nick * $chan,0)).text,2,32))
if (%timeJP > 4) && ($fline(%winJP,$nick * $chan)) { dline %winJP $fline(%winJP,$nick * $chan,$fline(%winJP,$nick * $chan,0)) }
aline %winJP $nick $ctime $chan
if ($fline(%winJP,$nick * $chan,0) >= 3) {
ban -k # $nick Join Flood!
filter -cwx %winJP %winJP $nick * $chan
}
}
on *:snotice:*Client connecting*:{
var %winS = @connectF
if (!$window(%winS)) { window -h %winS }
var %sre = $calc($ctime - $gettok($fline(%winS,* $serverip,$fline(%winS,* $serverip,0)).text,2,32))
if (%sre > 3) && ($fline(%winS,* $serverip)) { dline %winS $fline(%winS,* $serverip,$fline(%winS,* $serverip,0)) }
if ($fline(%winS,$9 * $serverip)) { rline %winS $fline(%winS,* $serverip) $9 $ctime $serverip }
else { aline %winS $9 $ctime $serverip }
if (($fline(%winS,* $serverip,0) >= 3) || (%autoS. [ $+ [ $serverip ] ])) {
set %twinS %winS
filter -wk %winS sk * $serverip
set -u2 %autoS. [ $+ [ $serverip ] ] 1
}
}
on *:nick:{
var %winCk = @nickF
if (!$window(%winCk)) { window -h %winCk }
var %snck = $calc($ctime - $gettok($fline(%winCk,* $serverip *,$fline(%winCk,* $serverip *,0)).text,2,32))
if (%snck > 3) && ($fline(%winCk,* $serverip *)) { dline %winCk $fline(%winCk,* $serverip *,$fline(%winCk,* $serverip *,0)) }
if ($fline(%winCk,* $serverip $5)) { rline %winCk $fline(%winCk,* $serverip $5) $newnick $ctime $serverip $nick }
else { aline %winCk $newnick $ctime $serverip $nick }
if (($fline(%winCk,* $serverip *,0) >= 3) || (%autonck. [ $+ [ $serverip ] ])) {
set %twinCk %winCk
filter -wk %winCk nck * $serverip *
set -u2 %autonck. [ $+ [ $serverip ] ] 1
}
var %winNKP = @nickFP
if (!$window(%winNKP)) { window -h %winNKP }
var %timeNKP = $calc($ctime - $gettok($fline(%winNKP,$wildsite * $serverip,$fline(%winNKP,$wildsite * $serverip,0)).text,2,32))
if (%timeNKP > 3) && ($fline(%winNKP,$wildsite * $serverip)) { dline %winNKP $fline(%winNKP,$wildsite * $serverip,$fline(%winNKP,$wildsite * $serverip,0)) }
aline %winNKP $wildsite $ctime $serverip
if ($fline(%winNKP,$wildsite * $serverip,0) >= 5) {
ban -k # $newnick Join Flood!
filter -cwx %winNKP %winJP $wildsite * $serverip
}
}
on *:notice:*:#:{
if ($me !isop $chan) { return }
var %winN = @noticeF
var %Nvar = $iif($hash($strip($1-),32),$v1,1)
if (!$window(%winN)) { window -h %winN }
var %resnot = $calc($ctime - $gettok($fline(%winN,* %Nvar $chan,$fline(%winN,* %Nvar $chan,0)).text,2,32))
if (%resnot > 5) && ($fline(%winN,* %Nvar $chan)) { dline %winN $fline(%winN,* %Nvar $chan,$fline(%winN,* %Nvar $chan,0)) }
if ($fline(%winN,$nick * $chan)) { rline %winN $fline(%winN,$nick * $chan) $nick $ctime %Nvar $chan }
else { aline %winN $nick $ctime %Nvar $chan }
if (($fline(%winN,* %Nvar $chan,0) >= 3) || (%autoN. [ $+ [ $chan ] $+ [ %Nvar ] ])) {
set %NChan $chan
set %twinCN %winN
filter -wk %winN nk * %Nvar $chan
set -u2 %autoN. [ $+ [ $chan ] $+ [ %Nvar ] ] 1
}
var %winNP = @noticeFP
if (!$window(%winNP)) { window -h %winNP }
var %timeNP = $calc($ctime - $gettok($fline(%winNP,$nick * $chan,$fline(%winNP,$nick * $chan,0)).text,2,32))
if (%timeNP > 3) && ($fline(%winNP,$nick * $chan)) { dline %winNP $fline(%winNP,$nick * $chan,$fline(%winNP,$nick * $chan,0)) }
aline %winNP $nick $ctime $chan
if ($fline(%winNP,$nick * $chan,0) >= 5) {
ban -k # $nick Notice Flood!
filter -cwx %winNP %winNP $nick * $chan
}
}
on *:text:*:#:{
if ($me !isop $chan) { return }
var %winT = @textF
var %Tvar = $iif($hash($strip($1-),32),$v1,1)
if (!$window(%winT)) { window -h %winT }
var %restext = $calc($ctime - $gettok($fline(%winT,* %Tvar $chan,$fline(%winT,* %Tvar $chan,0)).text,2,32))
if (%restext > 5) && ($fline(%winT,* %Tvar $chan)) { dline %winT $fline(%winT,* %Tvar $chan,$fline(%winT,* %Tvar $chan,0)) }
if ($fline(%winT,$nick * $chan)) { rline %winT $fline(%winT,$nick * $chan) $nick $ctime %Tvar $chan }
else { aline %winT $nick $ctime %Tvar $chan }
if (($fline(%winT,* %Tvar $chan,0) >= 3) || (%autoT. [ $+ [ $chan ] $+ [ %Tvar ] ])) {
set %TChan $chan
set %twinCT %winT
filter -wk %winT tk * %Tvar $chan
set -u2 %autoT. [ $+ [ $chan ] $+ [ %Tvar ] ] 1
}
var %winTP = @textFP
if (!$window(%winTP)) { window -h %winTP }
var %timeTP = $calc($ctime - $gettok($fline(%winTP,$nick * $chan,$fline(%winTP,$nick * $chan,0)).text,2,32))
if (%timeTP >= 1) && ($fline(%winTP,$nick * $chan)) { dline %winTP $fline(%winTP,$nick * $chan,$fline(%winTP,$nick * $chan,0)) }
aline %winTP $nick $ctime $chan
if ($fline(%winTP,$nick * $chan,0) >= 9) {
ban -k # $nick Text Flood!
filter -cwx %winTP %winTP $nick * $chan
}
}
ctcp *:*:#:{
if ($me !isop $chan) { return }
var %winP = @ctcpF
var %Cvar = $iif($hash($strip($1-),32),$v1,1)
if (!$window(%winP)) { window -h %winP }
var %resctcp = $calc($ctime - $gettok($fline(%winP,* %Cvar $chan,$fline(%winP,* %Cvar $chan,0)).text,2,32))
if (%resctcp > 5) && ($fline(%winP,* %Cvar $chan)) { dline %winP $fline(%winP,* %Cvar $chan,$fline(%winP,* %Cvar $chan,0)) }
if ($fline(%winP,$nick * $chan)) { rline %winP $fline(%winP,$nick * $chan) $nick $ctime %Cvar $chan }
else { aline %winP $nick $ctime %Cvar $chan }
if (($fline(%winP,* %Cvar $chan,0) >= 3) || (%autoP. [ $+ [ $chan ] $+ [ %Cvar ] ])) {
set %PChan $chan
set %twinCP %winP
filter -wk %winP pk * %Cvar $chan
set -u2 %autoP. [ $+ [ $chan ] $+ [ %Cvar ] ] 1
}
var %winCP = @ctcpFP
if (!$window(%winCP)) { window -h %winCP }
var %timeCP = $calc($ctime - $gettok($fline(%winCP,$nick * $chan,$fline(%winCP,$nick * $chan,0)).text,2,32))
if (%timeCP > 3) && ($fline(%winCP,$nick * $chan)) { dline %winCP $fline(%winCP,$nick * $chan,$fline(%winCP,$nick * $chan,0)) }
aline %winCP $nick $ctime $chan
if ($fline(%winCP,$nick * $chan,0) >= 5) {
ban -k # $nick Ctcp Flood!
filter -cwx %winCP %winCP $nick * $chan
}
}