# Repeat by KuNgFo0
# Set the next line as the kick msg you want to say
set repeat_msg "No repeating"
# Set the next line as the number of seconds to elapse
# before allowing to repeat again
set repeat_time 30
# Set the next line as the channels you want to run in
set repeat_chans "#test1 #test2"
bind pubm - * pubm_repeat
bind ctcp - ACTION ctcp_repeat
putlog "*** Repeat.tcl 0.1 by #egghelp@efnet loaded"
proc pubm_repeat {nick uhost hand chan arg} {
global repeat_msg repeat_time repeat_chans repeat_data botnick
if {(([lsearch -exact [string tolower $repeat_chans] [string tolower $chan]] != -1) || ($repeat_chans == "*")) && (![matchattr $hand b]) && (![matchattr $hand f|f $chan]) && ($nick != $botnick)} {
if {([info exists repeat_data($nick-$chan)]) && ($repeat_data($nick-$chan) == $arg)} {
putserv "KICK $chan $nick :$repeat_msg"
unset repeat_data($nick-$chan)
} else {
set repeat_data($nick-$chan) $arg
utimer $repeat_time "catch {unset repeat_data([xsplit $nick-$chan])} 0"
}
}
}
proc ctcp_repeat {nick uhost hand chan keyword arg} {
pubm_repeat $nick $uhost $hand $chan $arg
}
proc xsplit {arg} {
regsub -all "\\\[" $arg "\\\[" arg
regsub -all "\\\]" $arg "\\\]" arg
return $arg
}