on *:text:!badchan *:#:{
if ($wi($address($nick,2)) == owner) || ($wi($address($nick,2)) == master) {
if ($2 == add) {
if (!$4) { notice $nick %chanlevskin Usage: $1-2 <channel> <reason> %chanlevskin | halt }
write badchan_ $+ $chan $+ .txt $3 $4-
notice $nick %chanlevskin Done. %chanlevskin
halt
}
if ($2 == del) {
if (!$3) { notice $nick %chanlevskin Usage: $1-2 <channel> %chanlevskin | halt }
write -ds $+ $3 badchan_ $+ $chan $+ .txt
notice $nick %chanlevskin Done. %chanlevskin
halt
}
if ($2 == off) {
set %chanbc_ [ $+ [ $chan ] ] OFF
notice $nick %chanlevskin Done. %chanlevskin
halt
}
if ($2 == status) {
notice $nick %chanlevskin Status: $+ $iif(%chanbc_ [ $+ [ $chan ] ],%chanbc_ [ $+ [ $chan ] ],OFF) $+ %chanlevskin
halt
}
if ($2 == on) {
set %chanbc_ [ $+ [ $chan ] ] ON
notice $nick %chanlevskin Done. %chanlevskin
halt
}
if ($2 == list) {
notice $nick %chanlevskin Badchan list for channel $chan $+ : %chanlevskin
var %i = 1
while (%i <= $lines(badchan_ $+ $chan $+ .txt)) {
notice $nick %chanlevskin Channel: $gettok($read(badchan_ $+ $chan $+ .txt,%i),1,32) $+ . %chanlevskin Reason: $gettok($read(badchan_ $+ $chan $+ .txt,%i),2-,32) %chanlevskin
inc %i
}
notice $nick %chanlevskin End of list. %chanlevskin
halt
}
notice $nick %chanlevskin Usage: $1 add/list/del %chanlevskin
}
}
on *:join:#:{
whois $nick
if (%chanbc_ [ $+ [ $chan ] ] != ON) { halt }
set %badchanscan_ [ $+ [ $nick ] ] $chan
}
raw 319:*: {
var %nick = $2
var %chans = $replace($3-,$chr(64) $+ $chr(35),$chr(35),$chr(43) $+ $chr(35),$chr(35))
if (!%badchanscan_ [ $+ [ %nick ] ]) { halt }
var %i = 1
while (%i <= $numtok(%chans,32)) {
var %x = 1
while (%x <= $lines(badchan_ $+ %badchanscan_ [ $+ [ %nick ] ] $+ .txt)) {
if ($gettok($read(badchan_ $+ %badchanscan_ [ $+ [ %nick ] ] $+ .txt,%x),1,32) == $gettok(%chans,%i,32)) {
inc %bcid
var %host = $address(%nick,2)
kick %badchanscan_ [ $+ [ %nick ] ] %nick 12,1››0 You have been detected on bad channel ( $+ $gettok(%chans,%i,32) $+ ). 12,1››‹‹0 (Reason: $gettok($read(badchan_ $+ %badchanscan_ [ $+ [ %nick ] ] $+ .txt,%x),2-,32) $+ ) 12,1‹‹0
mode %badchanscan_ [ $+ [ %nick ] ] +b %host
timer 1 600 mode %badchanscan_ [ $+ [ %nick ] ] -b %host
unset %badchanscan_ [ $+ [ %nick ] ]
halt
}
inc %x
}
inc %i
}
unset %badchanscan_ [ $+ [ %nick ] ]
}