Code:
on @$*:text:/http\x3A\/\//iS:#:{
  if ($nick isop #) return
  inc $+(%,warn,.,$nick)
  if ($($+(%,warn.,$nick),2) > 1) {
    mode # +b $wildsite
    kick # $nick ban message $v1
  }
  else {
    kick # $nick this is a warning
  }
}


I'm not sure what you were doing with the #filterban so I didn't include it. You can put it back in where you want.

Explanations:
  • You had: ($me isop chan), I have prefixed the event with @ so the event only fires if you are op on the channel.
  • You had: (http:// isin $1-), I moved this to a regex in the event definition with a $ prefix. /http\x3A\/\// is the pattern which matches http://
  • You had: (%warn $+ $nick == 1), when referencing dynamically named variables you need to evaluate it after you've composed the name. You can do this with $() or [ ]. $($+(%,warn.,$nick),2) - evaluated one time the text %warn.bob (for example) is returned. Evaluted 2 times, the value of %warn.bob is returned.
  • A simple if/else is better suited than your goto and halts, so I did a bit of restructuring.
  • if ($nick isop #) return - this will prevent you from kicking other ops in the channel
  • The . prefix has no affect on /mode and /kick
  • $v1 in the kick message is the result from the last if statement, here it will display how many times the user has been kicked by this script

Last edited by Loki12583; 06/01/12 04:16 PM.