on *:input:*:{
if $1 == !addchan { chan add $strip($2-) }
elseif $1 == !remchan { chan rem $strip($2-) }
}
on *:text:!*:#:{
if $istok($hget(Badchan,$+($network,.,$chan)),$nick,44) {
if $1 == !addchan { chan add $strip($2-) }
elseif $1 == !remchan { chan rem $strip($2-) }
}
}
on *:start:{
if !$hget(badchan) { .hmake badchan 100 }
if $exists($scriptdirbadchan.hsh) { .hload badchan $scriptdirbadchan.hsh }
.scon -at1 checkops
}
on *:exit:{
.hsave badchan $scriptdirbadchan.hsh
}
on *:disconnect:{
.hsave badchan $scriptdirbadchan.hsh
}
alias -l checkops {
var %b = $chan(0)
while %b {
var %c = $nick($chan(%b),0,oh), %ohnicks
while %c {
%ohnicks = $addtok(%ohnicks,$nick($chan(%b),%c,oh),44)
dec %c
}
.hadd -m Badchan $+(oh.,$network,.,$chan(%b)) %ohnicks
dec %b
}
}
alias chan {
if $1 == add {
if !$2 {
.msg $nick Usage !addchan #channel_1,#channel_2,#channel_3 Message
.msg $nick Multiple channels can be specified by comma separating them.
.msg $nick A common message regarding all specified channels can be entered by separating the message from the channels with a space.
}
else {
var %a = $numtok($2,44)
while %a {
.hadd -m Badchan $+($network,.,$gettok($2,%a,44)) $iif($3,$3-,Bad Channel)
dec %a
}
.msg $nick Bad channels $2 have been added with the message of $iif($3,$3-,Bad Channel)
}
}
elseif $1 == rem {
if !$2 {
.msg $nick Usage !remchan #channel_1,#channel_2,#channel_3
.msg $nick Multiple channels can be specified by comma separating them.
}
else {
var %a = $numtok($2,44)
while %a {
.hdel Badchan $gettok($2,%a,44)
dec %a
}
.msg $nick Bad channels $2 have been removed.
}
}
}
on *:join:#:{
var %ohchan = $chan
.enable #ohnotice
.whois $nick
}
#ohnotice off
raw 318:*:{
.disable #ohnotice
haltdef
}
raw 319:*:{
var %a = $numtok($3-,32)
while $hget(Badchan,$+($network,.,$gettok($3-,%a,32))) {
.notice $hget(Badchan,$+(oh.,$network,.,%ohchan)) $2 is also on $gettok($3-,%a,32) with a warning message of $hget(Badchan,$+($network,.,$gettok($3-,%a,32)))
dec %a
}
haltdef
}
#ohnotice end
on *:op:#:{ ohnick add $chan $opnick }
on *:help:#:{ ohnick add $chan $hnick }
on *:deop:#:{ ohnick rem $chan $opnick }
on *:dehelp:#:{ ohnick rem $chan $hnick }
on *:quit:{ ohnick rem $chan $nick }
on *:part:#:{ ohnick rem $chan $nick }
on *:kick:#:{ ohnick rem $chan $knick }
alias -l ohnick {
var %ohnicks = $hget(Badchan,$+(oh.,$network,.,$2))
if $1 == add { %ohnicks = $addtok(%ohnicks,$3,44) }
elseif $1 == rem { %ohnicks = $remtok(%ohnicks,$3,1,44) }
.hadd -m Badchan $+(oh.,$network,.,$chan) %ohnicks
}