TCL Capslock Kick

Capslock Kick

# Capslock Kick by KuNgFo0

set capslock_msg "Capslock is not allowed"

# Text minimum length
set capslock_len 35

# Channels
set capslock_chans "#test #test1"

bind pubm - * pubm_capslock
bind ctcp - ACTION ctcp_capslock

putlog "Capslock Kick loaded"

proc testcapslock {arg} {
 foreach i [string tolower [split $arg ""]] {
  if {[string match *$i* "abcdefghijklmnopqrstuvwxyz"]} {
   return 1
  }
 }
 return 0
}
proc pubm_capslock {nick uhost hand chan arg} {
 global capslock_msg capslock_len capslock_chans botnick
 if {(([lsearch -exact [string tolower $capslock_chans] [string tolower $chan]] != -1) || ($capslock_chans == "*")) && (![matchattr $hand b]) && (![matchattr $hand f|f $chan]) && ($nick != $botnick) && ($arg == [string toupper $arg]) && ([string length $arg] >= $capslock_len) && ([testcapslock $arg])} {
  putserv "KICK $chan $nick :$capslock_msg"
 }
}
proc ctcp_capslock {nick uhost hand chan keyword arg} {
 pubm_capslock $nick $uhost $hand $chan $arg
}