1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
on !*:join:#:{
if ($levcheck(#,$me) < 1) { return }
set %clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ] $addtok(%clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ],$nick,32)
.timer 1 2 set -s $+(%,clones.,$cid,.,#) $!remtok( $+(%,clones.,$cid,.,#) , $nick ,32)
if ($numtok(%clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ],32) >= 3) {
mode # $iif($network === QuakeNet,+Mr,+MR)
.timer 1 60 mode # $iif($network === QuakeNet,-Mr,-MR)
var %i = 1
while ($gettok(%clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ],%i,32)) {
var %addlist = $addtok(%addlist,$address($v1,2),32))
inc %i
}
mode # + $+ $str(+b,$numtok(%clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ],32)) %addlist
tokenize 32 %clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ]
unset %clones. [ $+ [ $cid ] $+ ] . [ $+ [ # ] ]
kick # $* Join flood detected.
}
}
on *:text:*:#:{
if ($levcheck(#,$me) <= 1) || ($levcheck(#,$nick) >= $levcheck(#,$me)) { halt }
if ($len($strip($1-)) >= 200) { ban -ku300 # $nick 2 Byte Flood Detected! $v1 Bytes (Max is $v2 $+ ). 5 minute ban. }
if (%repeat. [ $+ [ $nick ] $+ ] . [ $+ [ # ] ] == $strip($1-)) { inc -u10 %repeatd. [ $+ [ $nick ] ] }
if (%repeat. [ $+ [ $nick ] $+ ] . [ $+ [ # ] ] == $strip($1-)) && (%repeatd. [ $+ [ $nick ] ]) {
var %r = $v1
if (%r == 1) { .notice $nick Repeat detected. First warning. please stop repeating. }
elseif (%r == 2) { kick # $nick Repeat detected. Second warning. please stop repeating. }
elseif (%r == 3) { ban -ku60 # $nick 2 Repeat detected. Third and final warning. Please stop repeating. 60 second ban. }
elseif (%r >= 4) { ban -k # $nick 2 Repeat detected. You have been warned. Permanent ban. }
}
set -u600 %repeat. [ $+ [ $nick ] $+ ] . [ $+ [ # ] ] $strip($1-)
}
alias strrev {
var %i = $len($1)
while (%i) {
var %str = %str $+ $mid($1,%i,1)
dec %i
}
return %str
}
alias levcheck {
var %p = $strrev($prefix)
var %lev = $remove($nick($$1,$$2).pnick,$2)
var %fin = 0
var %i = 1
while ($mid(%lev,%i,1)) {
inc %fin $calc(2 ^ ( $pos(%p,$v1) -1))
inc %i
}
return %fin
}
on *:action:*:#:{
if ($levcheck(#,$me) <= 1) || ($levcheck(#,$nick) >= $levcheck(#,$me)) { halt }
if ($len($strip($1-)) >= 200) { ban -ku300 # $nick 2 Byte Flood Detected! $v1 Bytes (Max is $v2 $+ ) }
if (%repeat. [ $+ [ $nick ] $+ ] . [ $+ [ # ] ] == $strip($1-)) { inc -u10 %repeatd. [ $+ [ $nick ] ] }
if (%repeat. [ $+ [ $nick ] $+ ] . [ $+ [ # ] ] == $strip($1-)) && (%repeatd. [ $+ [ $nick ] ]) {
var %r = $v1
if (%r == 1) { .notice $nick Repeat detected. First warning. please stop repeating. }
elseif (%r == 2) { kick # $nick Repeat detected. Second warning. please stop repeating. }
elseif (%r == 3) { ban -ku60 # $nick 2 Repeat detected. Third and final warning. Please stop repeating. 5 second ban. }
elseif (%r >= 4) { ban -k # $nick 2 Repeat detected. You have been warned. Permanent ban. }
}
set -u600 %repeat. [ $+ [ $nick ] $+ ] . [ $+ [ # ] ] $strip($1-)
} |