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
64
65
66
67
68
69
70
71
72
|
on *:CONNECT:if ($network == UnderNet) .timercheckbannedchans 0 300 checkbannedchans
alias checkbannedchans {
if (%blcheck.nicks) halt
;the list of channels you want to check users in
set %blcheck.chans #chan1 #chan2 #chan3
;globally blacklisted channels (user can be in this in any channel and be banned)
set %blcheck.globbl #gblchan1 #gblchan2 #gblchan3
;specificly blacklisted channels, only related to certain channels (#chan1,#chan2,etc.)
set %blcheck.#chan1 #blchan1 #blchan2
set %blcheck.#chan2 #blchan1 #blchan2
var %i = 1
while (%i) {
var %c = $gettok(%chans,%i,32),%x = $nick(%c,0)
while (%x) {
set %blcheck.nicks $addtok(%blcheck.nicks,$nick(%c,%x),44)
dec %x
}
dec %i
}
if (!%blcheck.nicks) return
.timerbanscheck 0 15 banscheck
}
alias banscheck {
var %b = $gettok(%blcheck.nicks,1-5,44)
if (!%b) { .timerbanscheck off | unset %blcheck.chans | return }
whois %b
set %blcheck.active $addtok(%blcheck.active,%b,44)
if ($deltok(%blcheck.nicks,1-5,44)) set %blcheck.nicks $v1
else unset %blcheck.nicks
}
raw 319:*:{
var %i = $numtok($3-,32)
while (%i > 2) {
var %a = $($+($,%i),2),%c = $iif($chr(35) == $left(%a,1),%a,$right(%a,-1))
var %chans = %chans %c
dec %i
}
if ($istok(%blcheck.active,$2,44)) {
var %i = $numtok(%chans,32)
while (%i) {
if ($istok(%blcheck.globbl,$gettok(%chans,%i,32),32)) {
;nick is in a globally blacklisted channel, ban from every checked channel
var %x = $numtok(%blcheck.chans,32)
while (%x) {
msg X ban $gettok(%blcheck.chans,%x,32) $2 You are in a globally blacklisted channel.
dec %x
}
if ($deltok(%blcheck.active,$findtok(%blcheck.active,$2,1,44),44)) set %blcheck.active $v1
else unset %blcheck.active
halt
}
dec %i
}
var %i = $numtok(%blcheck.chans,32)
while (%i) {
if (%blcheck. [ $+ [ $gettok(%blcheck.chans,%i,32) ] ]) {
var %a = $v1
var %x = $numtok(%chans,32)
while (%x) {
;if nick is in a specifically banned channel do the following
if ($istok(%a,$gettok(%chans,%x,32),32)) { msg X ban $gettok(%blcheck.chans,%i,32) $2 You are in a blacklisted channel. | break }
dec %x
}
}
dec %i
}
}
} |