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
|
on +1:text:*:#:{
if ($readini(antiflood.ini,$chan,status) != on) { halt }
if (!%antiflood_ [ $+ [ $nick ] $+ [ $chan ] ]) { set -u [ $+ [ $readini(antiflood.ini,$chan,secs) ] ] %antiflood_ [ $+ [ $nick ] $+ [ $chan ] ] 1 | halt }
inc %antiflood_ [ $+ [ $nick ] $+ [ $chan ] ]
if (%antiflood_ [ $+ [ $nick ] $+ [ $chan ] ] >= $readini(antiflood.ini,$chan,ads)) { antiflood_process $chan $nick | unset %antiflood_ [ $+ [ $nick ] $+ [ $chan ] ] }
}
alias antiflood_process {
var %chan = $1
var %nick = $2
var %reason = $iif(%antifloodskin_ [ $+ [ %chan ] ],%antifloodskin_ [ $+ [ %chan ] ],You are not allowed to flood on :chan:. ID: :id:)
var %hostname = $iif(*!*@*.users.quakenet.org iswm $address(%nick,5),$address(%nick,2),$address(%nick,3))
inc %antifloodid_ [ $+ [ %chan ] ]
if ($readini(antiflood.ini,kickdb,%hostname)) {
var %expr = $readini(antiflood.ini,kickdb,%hostname) $+ + 1
writeini antiflood.ini kickdb %hostname $calc(%expr)
kick %chan %nick $replace(%reason,:id:,%antifloodid_ [ $+ [ %chan ] ],:chan:,%chan,:uid:,$readini(antiflood.ini,kickdb,%hostname))
mode %chan +b %hostname
timer 1 600 mode %chan -b %hostname
timer 1 3600 remini antiflood.ini kickdb %hostname
halt
}
kick %chan %nick $replace(%reason,:id:,%antifloodid_ [ $+ [ %chan ] ],:chan:,%chan,:uid:,1)
writeini antiflood.ini kickdb %hostname 1
timer 1 3600 remini antiflood.ini kickdb %hostname
}
on 9:text:.antiflood:#:{ .notice $nick Usage: $1 version/help/on/off/status/kickskin/kickid }
on 9:text:.antiflood *:#:{
if ($2 == version) { .notice $nick Anti flood v0.1 alpha by teppuli loaded | halt }
if ($2 == help) { .notice $nick Usage: $1 version/help/on/off/status/kickskin/kickid | halt }
if ($2 == on) {
if (!$4) { .notice $nick Usage: $1-2 <rows> <seconds> | halt }
writeini antiflood.ini $chan ads $3
writeini antiflood.ini $chan secs $4
.notice $nick Done. Anti-flood enabled on $chan | writeini antiflood.ini $chan status on | halt }
if ($2 == off) { .notice $nick Done. Anti-flood disabled on $chan | writeini antiflood.ini $chan status off | halt }
if ($2 == status) { .notice $nick Anti-flood status on channel $chan $+ : $iif($readini(antiflood.ini,$chan,status),$upper($readini(antiflood.ini,$chan,status)),OFF) | halt }
if ($2 == kickid) { .notice $nick Anti-flood kick-ID on channel $chan $+ : $iif(%antifloodid_ [ $+ [ %chan ] ],%antifloodid_ [ $+ [ %chan ] ],0) | halt }
if ($2 == kickskin) {
if (!$3) { .notice $nick Current kickskin for channel $chan is: $iif(%antifloodskin_ [ $+ [ $chan ] ],%antifloodskin_ [ $+ [ $chan ] ],Not set)
.notice $nick Note: If you change kickskin, you can use following variables: :id: :chan: :uid: | halt }
.notice $nick Done. Kickskin for channel $chan succesfully changed.
.notice $nick Note: If you change kickskin, you can use following variables: :id: :chan: :uid:
set %antifloodskin_ [ $+ [ $chan ] ] $3-
halt
}
.notice $nick Usage: $1 version/help/on/off/status/kickskin/kickid
}
|