All pastes #594886 Raw Edit

Someone

public text v1 · immutable
#594886 ·published 2007-06-29 04:54 UTC
rendered paste body
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.
  }
}