on @*:TEXT:*:#luckypc:{ if ($nick isop $chan || $nick ishop $chan) { if ($1 = !bl) && ($2 = global) { if ($3 = $null || $4 = $null) { msg $chan Please type !help for the SYNTAX of the !blacklist commands. | halt } if (@ !isin $3) { userhost $3 } if (@ isin $3) { set %blacklist $3 } .timer 1 2 globalban $chan $3- halt } if ($1 = !help) { notice $nick 4,15!checklist14,15 - lists the blacklist for the channel. 3|4@3| notice $nick 4,15!bl 14,15- places the nickname or IP specified on blacklist. PLEASE NOTE: if the user is not online, it will not be added. 3|7%4@3| notice $nick 4,15!dbl 14,15- removes the nickname or IP specified. PLEASE NOTE: if the nickname is not online, it will not be removed. 3|7%4@3| if ($nick isop $chan) { notice $nick 4,15!blacklist global 14,15- places the nickname on a global ban, for ALL the rooms the bot sits in, opped.3|7%4@3| } } if ($1 = !checklist) { if ($read($replace($chan,^,$chr(124)) $+ blacklist.txt) != $null) { play $chan $replace($chan,^,$chr(124)) $+ blacklist.txt } else { msg $chan There are no blacklist bans in $chan } } if ($1 = !dbl) && ($4 = $null) { if (@ !isin $3) { userhost $3 } if (@ isin $3) { set %blacklist $3 } .timer 1 2 removelist $chan $3 halt } if ($1 = !bl) && ($3 = $null) { msg $chan Please supply a kick message | halt } if ($1 = !bl) && ($3 != $null) && ($3 != $me) { if (@ !isin $2) { userhost $2 } if (@ isin $2) { set %blacklist $2 } .timer 1 2 blacklist $chan $2- } } } alias bl.checkban { set %bl.kick $nick($1,0) while (%bl.kick) { if ($gettok(%blacklist,1,32) iswm $address($nick($1,%bl.kick),5)) { kick $1 $nick($1,%bl.kick) $3- mode $1 +b $gettok(%blacklist,1,32) } dec %bl.kick if (%bl.kick = 0) { unset %bl.kick } } } alias globalban { if (%blacklist = *!*@) { msg $1 $2 is not currently online. Please make sure they are online, before performing this action again. | halt } else { set %bl.chan 1 while (%bl.chan <= $chan(0)) { if ($me isop $chan(%bl.chan)) { if ($read($remove($chan(%bl.chan),^,$chr(124)) $+ blacklist.txt,s,%blacklist) = $null) { write $remove($chan(%bl.chan),^,$chr(124)) $+ blacklist.txt %blacklist $2- } if ($read($remove($chan(%ibl.chan),^,$chr(124)) $+ blacklist.txt,s,%blacklist) != $null) { write -ds $+ %blacklist $remove($chan(%bl.chan),^,$chr(124)) $+ blacklist.txt write $remove($chan(%bl.chan),^,$chr(124)) $+ blacklist.txt %blacklist $2- } } inc %bl.chan } msg $1 $2 added to blacklist: $gettok(%blacklist,1,32) with kick message: $3- set %bl.chan 1 while (%bl.chan <= $chan(0)) { bl.checkban $1- inc %bl.chan } } } alias removelist { if (%blacklist = *!*@) { msg $1 $2 is not currently online. Please make sure they are online, before performing thisaction again. | halt } else { if ($read($remove($1,^,$chr(124)) $+ blacklist.txt,s,%blacklist) = $null) { msg $1 $2 is not currently on my blacklist. | halt } if ($read($remove($1,^,$chr(124)) $+ blacklist.txt,s,%blacklist) != $null) { msg $1 $2 removed from blacklist. mode $1 -b %blacklist write -ds $+ %blacklist $remove($1,^,$chr(124)) $+ blacklist.txt } } } alias blacklist { if (%blacklist = *!*@) { msg $1 $2 is not currently online. Please make sure they are online, before performing this action again. } else { if ($read($remove($1,^,$chr(124)) $+ blacklist.txt,s,%blacklist) != $null) { write -ds $+ %blacklist $remove($1,^,$chr(124)) $+ blacklist.txt write $remove($1,^,$chr(124)) $+ blacklist.txt %blacklist $2- msg $1 $2 appended to blacklist: $gettok(%blacklist,1,32) with kick message: $3- } if ($read($remove($1,^,$chr(124)) $+ blacklist.txt,s,%blacklist) = $null) { write $remove($1,^,$chr(124)) $+ blacklist.txt %blacklist $2- msg $1 $2 added to blacklist: $gettok(%blacklist,1,32) with kick message: $3- bl.checkban $1- } } } on @*:JOIN:#:{ set %blist.check $nick(#,0) while (%blist.check) { if ($gettok($read($remove($chan,^,$chr(124)) $+ blacklist.txt,%blist.check),1,32) iswm $address($nick,5)) { kick # $nick $gettok($read($remove($chan,^,$chr(124)) $+ blacklist.txt,%blist.check),3-,32) mode # +b $gettok($read($remove($chan,^,$chr(124)) $+ blacklist.txt,%blist.check),1,32) halt } dec %blist.check if (%blist.check = 0) { unset %blist.check } } }