rendered paste bodyon $*: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.
}
}