rendered paste bodyon *:START:{ .ial on }
on *:EXIT:{ .ial on }
alias blacklist {
if ($1 == list) {
if ($ulist(*,blacklist,0) == 0) { echo -a *** Blacklist: Your blacklist is empty | return }
else { var %i = 1 | var %i2 = $calc($ulist(*,blacklist,0) +1) | echo -a 4*** Blacklisted Hostmask(s) | while (%i < %i2) { echo -a 4Entry $chr(35) $+ %i $+ : $ulist(*,blacklist,%i) ( $+ $gettok($ulist(*,blacklist,%i).info,1,32) $+ ) ( $+ $gettok($ulist(*,blacklist,%i).info,2-999999,32) $+ ) | inc %i }
}
return
}
if ($1 == del) {
if (($2 == $null) || (* $+ $chr(33) $+ * !iswm $2)) { echo -a *** Blacklist Syntax: /blacklist <add/del> <hostmask> | return }
if ($ulist($2,0) == 0) { echo -a *** Blacklist Error: $2 is NOT blacklisted. | return }
else { echo -a *** Blacklist: Removed $2 from blacklist on $gettok($ulist($2,1).info,1,32) ( $+ $gettok($ulist($2,1).info,2-999999,32) $+ ) | .ruser blacklist $2 | return }
}
if (($1 == $null) || ($1 != add) && ($1 != del)) { echo -a *** Blacklist Syntax: /blacklist <add/del> <#channel/all> <hostmask> <reason> | return }
if (($2 == $null) || ($2 != all) && ($chr(35) != $left($2,1))) { echo -a *** Blacklist Syntax: /blacklist <add/del> <#channel/all> <hostmask> <reason> | return }
if (($3 == $null) || (* $+ $chr(33) $+ * !iswm $3)) { echo -a *** Blacklist Syntax: /blacklist <add/del> <#channel/all> <hostmask> <reason> | return }
if ($1 == add) {
if ($ulist($3,0) != 0) { echo -a *** Blacklist Error: $3 is already blacklisted. | return }
else { .auser blacklist $3 $2 $iif($4 == $null, no reason specified, $4-) | echo -a *** Blacklist: Added $3 to blacklist on $2 ( $+ $iif($4 == $null, no reason specified, $4-) $+ ) | sab $3 $iif($4 == $null, no reason specified, $4-) | return }
}
}
on blacklist:JOIN:#:{
if (($ulist($address($NICK,5),blacklist,1) != $null) && ($istok($gettok($ulist($ulist($address($NICK,5),blacklist,1),1).info,1,32),$chan,44) == $true) || ($gettok($ulist($ulist($address($NICK,5),blacklist,1),1).info,1,32) == ALL)) { mode $chan -o+b $NICK $ADDRESS($NICK,2) | kick $chan $nick $gettok($ulist($ulist($address($NICK,5),blacklist,1),1).info,2-999999,32) | return }
}
on *:JOIN:#:{ if ($NICK == $ME) { .who $chan } }
alias sab {
var %sab.host = $1
var %sab.reason = $2-
var %sab.chan = $chan(0)
while (%sab.chan) {
var %sab.nick = $nick($chan(%sab.chan),0)
while (%sab.nick) {
if ((* $+ %sab.host $+ * iswm * $+ $address($nick($chan(%sab.chan),%sab.nick),5) $+ *) && ($istok($gettok($ulist($ulist($address($nick($chan(%sab.chan),%sab.nick),5),blacklist,1),1).info,1,32),$chan(%sab.chan),44) == $true) || ($gettok($ulist($ulist($address($nick($chan(%sab.chan),%sab.nick),5),blacklist,1),1).info,1,32) == ALL)) { mode $chan(%sab.chan) -o+b $nick($chan(%sab.chan),%sab.nick) $address($nick($chan(%sab.chan),%sab.nick),2) | kick $chan(%sab.chan) $nick($chan(%sab.chan),%sab.nick) %sab.reason }
dec %sab.nick
}
dec %sab.chan
}
}