on $*:TEXT:/^[~`!]warn/Si:#:{ if ($me isop $chan && ($Nick isop $chan || $nick ishop $chan)) { if ($2 == on) { if (%warn [ $+ [ $chan ] ] == $null) || (%warn [ $+ [ $chan ] ] == off) { set %warn [ $+ [ $chan ] ] on msg $chan Warning System is now turned to ON. msg $chan When a user joins the channel, they will be given a Warning Level of 0. When the user gets 3 warnings, they are kick-banned from the channel. An op must remove this ban in order for the user to return. msg $chan To deactivate the Warning System, simply type `warn off. halt } elseif (%warn [ $+ [ $chan ] ] == on) { .msg $chan The Warning System is already on. halt } } if ($2 == off) { if (%warn [ $+ [ $chan ] ] == on) { set %warn [ $+ [ $chan ] ] off msg $chan Warning System is now turned to OFF. msg $chan To reactivate the Warning System, please type `warn on. halt } elseif (%warn [ $+ [ $chan ] ] == off) { .msg $chan The Warning System is already turned off. halt } } else { if (%warn [ $+ [ $chan ] ] == on) { if ($me isop $chan) && (($nick isop #) || ($nick ishop #)) { inc %warn [ $+ [ $2 $+ $chan ] ] if (%warn [ $+ [ $2 $+ $chan ] ] < 3) { msg $chan $2 has been warned. $2's current warning level is %warn [ $+ [ $2 $+ $chan ] ] $+ . msg $chan $2 has $calc( 3 - %warn [ $+ [ $2 $+ $chan ] ] ) more warns before they are banned. notice $2 You've been warned %warn [ $+ [ $2 $+ $chan ] ] times. 3 warns, and you're out. } if (%warn [ $+ [ $2 $+ $chan ] ] == 3) { msg $chan $2 has been warned enough times. Now for a kickban ^^ .ban -k # $2 You've been warned enough. You're gone set %warn [ $+ [ $2 $+ $chan ] ] 0 } } } } } } on $*:TEXT:/^[~`!]clearwarn/Si:#:{ if ($nick isop $chan || $nick ishop $chan) { if (%warn [ $+ [ $2 $+ $chan ] ] isnum) { set %warn [ $+ [ $2 $+ $chan ] ] 0 msg $chan $2 $+ 's Warning Level has been reset. Current Warning Level is %warn [ $+ [ $2 $+ $chan ] ] $+ . notice $2 Your Warning Level has been reset. Current Warning Level is %warn [ $+ [ $2 $+ $chan ] ] $+ . } } } on *:JOIN:#:{ if (%warn [ $+ [ $chan ] ] == on) { if ($nick == $me) { halt } if (%warn [ $+ [ $nick $+ $chan ] ] == $null) { set %warn [ $+ [ $nick $+ $chan ] ] 0 notice $nick your current warning level is %warn [ $+ [ $nick $+ $chan ] ] } else { msg % $+ $chan $nick $+ 's current warn level is %warn [ $+ [ $nick $+ $chan ] ] } } } on $*:TEXT:/\b(shit|piss|fuck|fuk|damn|ass|bitch|whore|slut|skank|cock|dick|pussy|penis|vagina|cunt|clit|hell)\b/Si:#:{ if (%warn [ $+ [ $chan ] ] == on) { inc %warn [ $+ [ $nick $+ $chan ] ] if (%warn [ $+ [ $nick $+ $chan ] ] < 3) { msg $chan $nick has been warned for their language. Current warn level is %warn [ $+ [ $nick $+ $chan ] ] $+ . Warns to ban: $calc( 3 - %warn [ $+ [ $nick $+ $chan ] ] ) $+ . notice $nick You've been warned for your language.. You've $calc( 3 - %warn [ $+ [ $nick $+ $chan ] ] ) warns left until you are banned. } elseif (%warn [ $+ [ $nick $+ $chan ] ] = 3) { msg $chan $nick has been warned enough. Time for a kickban ^^. .ban -k # $nick You've been warned enough. You're gone. set %warn [ $+ [ $nick $+ $chan ] ] 0 } } } on $*:TEXT:/^[~`!@]check(warn)?/Si:#:{ if ($nick isop $chan || $nick ishop $chan) { $iif($left($1,1) == @, msg $chan, notice $nick) $2 $+ 's current warning level is %warn [ $+ [ $nick $+ $chan ] ] $+ . } elseif ($nick isreg $chan || $nick isvoice $chan) { notice $nick You can't check people's warning levels. } }