Badword Filter — File Browser
BadwordFilterv1.0 / BadwordFilterv1.0 / badword.mrc
badword.mrc — 6.06 KB — Download this file
;----------------------------------------
; > Badword Filter v1.0
; > By Jake
; > jake78@bellsouth.net
;----------------------------------------
alias badwords dialog -m badword.filter.v1 badword.filter.v1
alias -l bwf_add {
:word
var %word $$?="Enter new badword"
if ($chr(32) isin %word) { var %input $input(Badwords cannot contain spaces,oi) | goto word }
else goto end
:end
bwf_write %word punops 0
bwf_write %word punvos 0
bwf_write %word echo 1
bwf_write %word deov 0
bwf_write %word ban 0/sc
bwf_write %word kick 0
did -a badword.filter.v1 1 %word
bwf_edit e %word
set %bwf.active %word
}
alias -l bwf_addchan {
:chan
var %chan $$?="Enter new channel"
if (%chan !ischan) { var %input $input(%chan is not a valid channel! You need to be in the channel to add it.,oi) | goto chan }
elseif (%chan isin $bwf_read(%bwf.active,chans)) { var %input $input(%chan is already in the list for %bwf.active,oi) | goto chan }
else goto end
:end
bwf_write %bwf.active chans $addtok($bwf_read(%bwf.active,chans),%chan,44)
did -a badword.filter.v1 11 %chan
}
alias -l bwf_edit {
did $iif($1 == e,-e,-b) badword.filter.v1 7,8,10,11,12,13,14,15,16,17,18,19 | did $iif($1 == e,-n,-m) badword.filter.v1 11
if ($2) {
did -o badword.filter.v1 9 1 $2
did -r badword.filter.v1 11
var %i 1
while ($gettok($bwf_read($2,chans),%i,44)) { did -a badword.filter.v1 11 $gettok($bwf_read($2,chans),%i,44) | inc %i }
did $iif($bwf_read($2,punops) == 1,-c,-u) badword.filter.v1 12
did $iif($bwf_read($2,punvos) == 1,-c,-u) badword.filter.v1 13
did $iif($bwf_read($2,echo) == 1,-c,-u) badword.filter.v1 14
did $iif($bwf_read($2,deov) == 1,-c,-u) badword.filter.v1 15
did $iif($bwf_read($2,ban) == 1,-c,-u) badword.filter.v1 16
did $iif($bwf_read($2,kick) == 1,-c,-u) badword.filter.v1 17
}
}
alias -l bwf_list {
if ($1 == begin) return -
var %i 1
while ($ini(badwords.conf,%i)) {
if ($1 == %i) return $ini(badwords.conf,%i) $+ :return
inc %i
}
if ($1 == end) return -
}
alias -l bwf_read return $readini -n badwords.conf $$1 $2-
alias -l bwf_remchan {
if ($remtok($bwf_read(%bwf.active,chans),$did(badword.filter.v1,11).seltext,44) == $null) bwf_write %bwf.active chans none
else bwf_write %bwf.active chans $remtok($bwf_read(%bwf.active,chans),$did(badword.filter.v1,11).seltext,44)
did -d badword.filter.v1 11 $did(badword.filter.v1,11).sel
}
alias -l bwf_write writeini badwords.conf $$1 $2-
dialog badword.filter.v1 {
title "Badword Filter [/badwords]"
size -1 -1 191 141
option dbu
list 1, 6 6 65 95, sort size vsbar
button "Close", 2, 6 103 65 15, ok
button "Add New Word", 3, 75 6 55 15
button "Remove Selected", 4, 130 6 55 15
button "Edit Selected", 5, 75 21 55 15
button "Clear All", 6, 130 21 55 15
box "Edit Entry", 7, 76 39 110 97
text "Badword:", 8, 81 50 24 8
edit "", 9, 107 49 72 10, read
text "Channels:", 10, 81 63 25 8
combo 11, 107 62 72 33, sort size vsbar drop
check "Punish ops", 12, 86 91 38 10
check "Punish voices", 13, 130 91 43 10
check "Echo", 14, 86 105 39 10
check "Deop/voice", 15, 86 119 38 10
check "Ban address", 16, 130 105 41 10
check "Kick user", 17, 130 119 32 10
button "Add", 18, 81 74 50 12
button "Remove", 19, 131 74 49 12
icon 20, 6 119 65 17, $scriptdir $+ mircscripts.jpg, 0, noborder
}
menu Menubar,Channel {
Badword Filter
.Configure { badwords }
.-
.$iif($ini(badwords.conf,1),List)
..$submenu($bwf_list($1))
}
on 1:DIALOG:badword.filter.v1:*:*:{
if (($devent == init) && ($did == 0)) {
bwf_edit d
var %i 1
while ($ini(badwords.conf,%i)) { did -a $dname 1 $ini(badwords.conf,%i) | inc %i }
}
elseif (($devent == edit) && ($did == 11)) {
if (($count($did(11).text,$chr(35)) > 1) && ($chr(44) !isin $did(11).text)) { var %input $input(Channels should be separated by commas $chr(40) $+ ex: #chan1 $+ $chr(44) $+ #chan2 $+ $chr(41),oi) }
else bwf_write %bwf.active chans $did(11).text
}
elseif ($devent == sclick) {
if (($did == 1) || ($did == 5)) { set %bwf.active $did(1).seltext | bwf_edit e $did(1).seltext }
elseif ($did == 3) bwf_add
elseif ($did == 4) { remini badwords.conf $did(1).seltext | did -d $dname 1 $did(1).sel | did -r $dname 9,11 | did -u $dname 12,13,14,15,16,17 | bwf_edit d }
elseif (($did == 6) && ($input(Are you sure?,yvw) == $yes)) { write -c badwords.conf | did -r $dname 1 }
elseif ($did == 12) bwf_write %bwf.active punops $did(12).state
elseif ($did == 13) bwf_write %bwf.active punvos $did(13).state
elseif ($did == 14) bwf_write %bwf.active echo $did(14).state
elseif ($did == 15) bwf_write %bwf.active deov $did(15).state
elseif ($did == 16) bwf_write %bwf.active ban $did(16).state
elseif ($did == 17) bwf_write %bwf.active kick $did(17).state
elseif ($did == 18) bwf_addchan
elseif ($did == 19) bwf_remchan
}
elseif (($devent == dclick) && ($did == 1)) { set %bwf.active $did(1).seltext | bwf_edit e $did(1).seltext }
}
on 1:LOAD:{
if ($version < 6.0) { echo -ati2 [notice] Badword Filter requires mIRC version 6.0 or higher. Badword Filter will now unload itself. | unload -rs badword.mrc }
else echo -ati2 [notice] Badword Filter v1.0 has been loaded. Type /badwords to get started.
}
on 1:SIGNAL:bwf_check:{
if ($bwf_read($1,echo)) echo -ati2 [notice] Badword: $+ $1 $+ detected in $3 by $+ $2 $+
if ($bwf_read($1,deov)) .quote mode $3 -o-v $2 $2
if ($bwf_read($1,ban)) .quote mode $3 +b $address($2,3)
if ($bwf_read($1,kick)) .quote kick $3 $2 :Badword detected: $+ $1 $+
}
on @1:TEXT:*:#:{
var %i 1
while ($ini(badwords.conf,%i)) {
if (($ini(badwords.conf,%i) isin $1-) && ($istok($bwf_read($ini(badwords.conf,%i),chans),$chan,44))) {
if (($nick isop $chan) && ($bwf_read($ini(badwords.conf,%i),punops) != 1)) halt
elseif (($nick isvo $chan) && ($bwf_read($ini(badwords.conf,%i),punvos) != 1)) halt
.signal bwf_check $ini(badwords.conf,%i) $nick $chan
break
}
inc %i
}
}