Snippets Project Page
Author: entropy
Added: 5y
Updated: 5y
mIRC: 7.52+
Hits: 1,098
Downloads: 37
Review: entropy
Size: 4.59KB
2 0
Login to vote.
Join Part Flood Pro
v1.0.2
This snippet kick/bans people that join/part many times (flood).
Download
JSON
▲ Review
▼ Source
; Join Part Flood Pro v1.0.2 - by entropy 2018 on *:load:{ if (!%mask) { %mask = 3 } if (!%ban) { %ban = 30 } echo -tag $chr(9679) Welcome To Join Part Flood Pro v1.0.2 - by entropy 2018 } on *:unload:{ unset %mask %ban echo -tag $chr(9679) Thank you for using this script! } alias doecho { echo -tag $chr(9679) Mask Type is now: $1 ( $+ $2 $+ ) } menu menubar,status,channel { - Flood Pro v1.0.2 $chr(9) $replace($group(#floodpro).status,on,On,off,Off) .$iif($group(#floodpro).status == On,Turn Off,Turn On) { $iif($group(#floodpro).status == on,.disable,.enable) #floodpro echo -tag $chr(9679) $iif($group(#floodpro).status == on,Flood Pro is now On,Flood Pro is now Off) } .- .Mask Type $chr(9) %mask ..$iif(%mask == 1,$style(1),$style(0)) 1 $address($me,1) { %mask = 1 | doecho 1 $address($me,1) } ..$iif(%mask == 2,$style(1),$style(0)) 2 $address($me,2) { %mask = 2 | doecho 2 $address($me,2) } ..$iif(%mask == 3,$style(1),$style(0)) 3 $address($me,3) { %mask = 3 | doecho 3 $address($me,3) } ..$iif(%mask == 4,$style(1),$style(0)) 4 $address($me,4) { %mask = 4 | doecho 4 $address($me,4) } ..$iif(%mask == 5,$style(1),$style(0)) 5 $address($me,5) { %mask = 5 | doecho 5 $address($me,5) } ..$iif(%mask == 6,$style(1),$style(0)) 6 $address($me,6) { %mask = 6 | doecho 6 $address($me,6) } ..$iif(%mask == 7,$style(1),$style(0)) 7 $address($me,7) { %mask = 7 | doecho 7 $address($me,7) } ..$iif(%mask == 8,$style(1),$style(0)) 8 $address($me,8) { %mask = 8 | doecho 8 $address($me,8) } ..$iif(%mask == 9,$style(1),$style(0)) 9 $address($me,9) { %mask = 9 | doecho 9 $address($me,9) } ..$iif(%mask == 10,$style(1),$style(0)) 10 $address($me,10) { %mask = 10 | doecho 10 $address($me,10) } ..$iif(%mask == 11,$style(1),$style(0)) 11 $address($me,11) { %mask = 11 | doecho 11 $address($me,11) } .- .Ban Time $chr(9) $duration(%ban) { %ban = $input(Seconds to ban for?,5) echo -tag $chr(9679) Ban Time: $duration(%ban) } .- .Exempt list $chr(9) %exempt { %exempt = $input(Hostmasks to exempt?,5) echo -tag $chr(9679) Exempt Hostmasks: %exempt } .- .Unload { unload -rs $qt($script) } - } #floodpro on on *:ban:#:{ if ($nick == $me && !%ok) { var %d = $r(10,99) .timerall $+ %d -o 1 %ban pushmodex # $+(-,$str(b,$numtok($2-,32))) $2- set -u2 %ok %d } } on *:unban:#:{ if ($nick == $me) { .timerall $+ %ok off unset %ok } } on @*:join:#:{ hadd -mu5 flood.nicks $fulladdress $ctime inc -u5 %joins 1 } on @*:part:#:{ if ($hget(flood.nicks,$fulladdress)) { var %a = 1, %b, %found = no while ($gettok(%exempt,%a,32)) { %b = $v1 | if (%b iswm $fulladdress) { %found = yes } | inc %a } if (%found == no) { dopush } if (%joins == 2) { mode # +Rm | .timerrm -o 1 %ban rm # } } } alias -l dopush { var %a = 1, %b, %bans while ($hget(flood.nicks,%a).item) { %bans = %bans $mask($v1,%mask) inc %a } if (%bans) { .timerpush -o 1 2 pushmodex # $+(+,$str(b,$numtok(%bans,32))) %bans } } alias -l rm { var %mode if (R isincs $chan($1).mode) { set %mode R } if (m isincs $chan($1).mode) { set %mode %mode $+ m } if (%mode) { mode $1 $+(-,%mode) } } alias -l pushmodex { if (-t* iswm $1) { var %time = $mid($1,3) , %count = 0 | tokenize 32 $2- } else { var %time = 0 , %count = 0 } var %modespl = $modespl , %chan = $1 , %modes = $2 , %parms = $3- , %x = 1 , %y = $len(%modes) , %lwhich = + , %which = + , %a , %b tokenize 44 $chanmodes var %t1 = $1 , %t2 = $nickmode $+ $2 , %t3 = $3 , %t4 = $4 tokenize 32 %parms while (%x <= %y) { var %t = $mid(%modes,%x,1) if (%t isin +-) { var %lwhich = %which , %which = %t } else { if (%t isincs $gettok(%t1 %t2 %t3, 1- $pos(.-+, %which),32)) { var %b = %b $1 tokenize 32 $2- } var %a = $+(%a,$iif(!%a || %lwhich != %which,%which),%t) , %lwhich = %which if ($len($remove(%a,+,-)) = %modespl) { if (!%time) { mode %chan %a %b } else { .timer -m 1 $calc(%time * %count) mode %chan %a %b } var %a = "" , %b = "", %count = %count + 1 } } inc %x } if (%a) { if (!%time) { mode %chan %a %b } else { .timer -m 1 $calc(%time * %count) mode %chan %a %b } } } #floodpro end
Changelog:
0
0