on me:*:join:#: { add.protect $network $chan }
on *:op:#: { add.single.protect $network $chan $opnick }
on *:help:#: { add.single.protect $network $chan $hnick }
on *:voice:#: { add.single.protect $network $chan $vnick }
on *:kick:#: { if ($knick == $me) rem.protect $network $chan }
on me:*:part:#: { rem.protect $network $chan }
on me:*:quit: { rem.protect $network net }
on *:disconnect: { rem.protect $network net }
on *:exit: { rem.protect }
alias -l add.single.protect {
!protect $3 $2 2 $1
set $+(%,tempprotect+,$1,+,$2,+,$address($3,2))
}
alias -l add.protect {
if ($me ison $2) {
if ($chan($2).ial) {
var %nr = 1
while ($nick($2,%nr,a,r)) {
!protect $v1 $2 2 $1
set $+(%,tempprotect+,$1,+,$2,+,$address($v1,2))
inc %nr
}
}
else {
.who $2
.timer 1 10 add.protect $network $2
}
}
}
alias -l rem.protect {
var %nr = 1
if (!$2) {
while ($var(%tempprotect+*,%nr)) {
echo -s tokenize 43 $v1
echo -s !protect -r $4 $3 $2
inc %nr
}
unset %tempprotect+*
}
elseif ($2 == net) {
var %net = $1
while ($var($+(%,tempprotect+,%net,+*),%nr)) {
tokenize 43 $v1
!protect -r $4 $3 $2
inc %nr
}
unset $+(%,tempprotect+, [ %net ] ,+*)
}
else {
var %net = $1, %chan = $2
while ($var($+(%,tempprotect+,%net,+,%chan,+*),%nr)) {
tokenize 43 $v1
!protect -r $4 $3 $2
inc %nr
}
unset $+(%,tempprotect+, [ %net ] ,+, [ %chan ] ,+*)
}
}