on *:start:{
if !$hget(BadWord) { .hmake BadWord 10 }
if $exists(BadWord.hsh) { .hload BadWord BadWord.hsh }
}
on *:exit:{
.hsave -o BadWord BadWord.hsh
}
on *:disconnect:{
.hsave -o BadWord BadWord.hsh
}
menu menubar {
-
Private Offensive Message
.Turn $iif($hget(BadWord,0),Off,On) : .hadd -m BadWord 0 $iif($hget(BadWord,0),$false,$true)
.-
.Add Offensive Word : .hadd -m BadWord $$?="Offensive word to be added" $true
.-
.View Offensive Word : .bad_words_list
.-
.Remove Offensive Word : .hdel BadWord $$?="Offensive word to be removed"
.-
}
alias -l bad_words_list {
var %a = 1, %b = $hget(BadWord,0).item
unset %BadWord
while %a <= %b {
set %BadWord $addtok(%BadWord,$hget(BadWord,%a).item,32)
if ($calc($numtok(%BadWord,32) + $len(%BadWord)) > 900) {
echo -a $replace(%BadWord,$chr(32),$+($chr(44),$chr(32)))
unset %BadWord
}
inc %a
}
if %BadWord {
echo -a $replace(%BadWord,$chr(32),$+($chr(44),$chr(32)))
unset %BadWord
}
}
on *:open:?:{
if ($ulevel != op) && ($hget(BadWord,0)) {
var %cnt = 1
while (%cnt <= $hget(BadWord,0).item) {
if ($hget(BadWord,%cnt).item isin $1-) {
close -m $nick
.timer. $+ $nick 2 1 spamdetect $nick
halt
}
inc %cnt
}
}
}
on ^*:notice:*:?: {
var %oknames = ChanServ NickServ MemoServ
if ($nick !isin %oknames) && ($hget(BadWord,0)) {
var %cnt = 1
while (%cnt <= $hget(BadWord,0).item) {
if ($hget(BadWord,%cnt).item isin $1-) {
.timer. $+ $nick 2 1 spamdetect $nick
halt
}
inc %cnt
}
}
}
alias spamdetect {
var %a = $comchan($1,0)
while (%a > 0) {
if ($me isop $comchan($1,%a)) && ($1 !isop $comchan($1,%a)) {
ban -ku600 $comchan($1,%a) $1 14Private Offensive Language
}
dec %a
}
}