proc filter_bad_words {nick uhost handle channel args} {
global badwords badreason banmask botnick bwduration
set args [ccodes:filter $args]
set handle [nick2hand $nick]
set banmask "*![lindex [split $uhost @] 0]@[lindex [split $uhost @] 1]"
foreach badword [string tolower $badwords] {
if {[string match *$badword* [string tolower $args]]} {
if {[matchattr $nick +f]} {
putlog "-Anti Abuse Script- $nick ($handle) with +f flags said $args on $channel"
} elseif {[matchattr $nick +o]} {
putlog "-Anti Abuse Script- $nick ($handle) with +o flags said $args on $channel"
} else {
putlog "-Anti Abuse Script- KICKED $nick on $channel matched by $args"
putquick "KICK $channel $nick :$badreason"
newchanban $channel $banmask $botnick $badreason $bwduration
}
}
}
}
What to change so that chan ops and voiced are exempted when they speak badwords? In the code only the users that are added to the bot are exempted. A little help please. TYIA.
### Features:
# * Sets a 2 Minute Channel ban on user who writes any of the
# defined bad words
# * Doesn't ban users with +o OR +f flags
# * Logs ALL user/op messages containing the defined words
# * Strips Character Codes from Messages
### Set Bad Words that you want the Bot to Kick on
set badwords {
blah.blah
}
### Set Your Ban Reason
set badreason "Badword Detected"
### Set Ban Time
set bwduration 24h
### Begin Script:
## (Don't change anything below here... Unless you know tcl)
## Binding all Public Messages to our Process
bind pubm - * filter_bad_words
### Borrowed from awyeahs tcl scripts (www.awyeah.org) ###
## awyeah said: Thanks to user and ppslim for this control code removing filter
proc ccodes:filter {str} {
regsub -all -- {\003([0-9]{1,2}(,[0-9]{1,2})?)?|\017|\037|\002|\026|\006|\007} $str "" str
return $str
}
## Starting Process
proc filter_bad_words {nick uhost handle channel args} {
global badwords badreason banmask botnick bwduration
set args [ccodes:filter $args]
set handle [nick2hand $nick]
set banmask "*!*[lindex [split $uhost @] 0]@[lindex [split $uhost @] 1]"
foreach badword [string tolower $badwords] {
if {[string match *$badword* [string tolower $args]]} {
if {[matchattr $handle +f]} {
putlog " $nick ($handle) with +f flags said $args on $channel"
} elseif {[matchattr $handle +o]} {
putlog " $nick ($handle) with +o flags said $args on $channel"
} else {
putlog "KICKED $nick on $channel matched by $args"
putquick "KICK $channel $nick :$badreason"
newchanban $channel $banmask $botnick $badreason $bwduration
}
}
}
}
# bind pubm - * filter_bad_words
putlog "Anti Badwords Script Loaded"
Now how to change the hours into minutes.The script base its bans on the bot's ban-time settings.I don't want to change the bot's ban-time settings.I just want the script to base its ban time within it.