menu menubar { Blacklist:/dialog -md blk blk } dialog blk { title "Blacklist" size -1 -1 229 103 option dbu list 1, 2 2 183 99, size button "Global Ban", 3, 188 61 37 12 button "Ban All", 4, 188 73 37 12 button "Add", 5, 188 19 37 12 button "Remove", 6, 188 31 37 12 button "Edit", 7, 188 43 37 12 check "Enable", 8, 193 4 25 10 } on *:DIALOG:blk:init:*:{ if ($readini(blacklist.ini,-n,set,e)) { did -c blk 8 } var %x = 1 while ($ini(blacklist.ini,bans,%x)) { did -a blk 1 $ifmatch inc %x } } on *:DIALOG:blk:close:*:{ writeini blacklist.ini set e $did(blk,8).state } on *:DIALOG:blk:sclick:3:{ if ($did(blk,1).seltext) { var %x = 1 while (%x <= $chan(0)) { if ($me isop $chan(%x) || $me ishop $chan(%x)) { mode $chan(%x) +b $did(blk,1).seltext } inc %x } } } on *:DIALOG:blk:sclick:4:{ var %x = 1 while ($did(blk,1,%x)) { var %c = 1 while (%c <= $chan(0)) { if ($me isop $chan(%c) || $me ishop $chan(%c)) { mode $chan(%c) +b $did(blk,1,%x) } inc %c } inc %x } } on *:DIALOG:blk:sclick:5:{ dialog -ma blke blke } on *:DIALOG:blk:sclick:6:{ if ($did(blk,1).seltext) { remini blacklist.ini bans $did(blk,1).seltext did -d blk 1 $did(blk,1).sel } } on *:DIALOG:blk:sclick:7:{ if ($did(blk,1).seltext) { set %blk.edit $ifmatch dialog -ma blke blke } } dialog blke { title "Blacklist - Editor" size -1 -1 117 134 option dbu check "Enable", 1, 2 2 26 10 check "Ban on Join", 2, 2 12 37 10 check "Timed Ban", 3, 2 52 34 10 edit "", 4, 39 52 20 10 text "mins", 5, 61 54 10 8 check "Part Channel on Join", 6, 2 62 59 10 box "Nick/*!*@host", 7, 2 74 113 21 edit "", 8, 5 82 108 10, autohs box "Reason", 9, 2 97 113 21 edit "", 10, 5 105 107 10, autohs check "Mute Ban", 11, 2 22 32 10 check "Kick on Join", 12, 2 42 37 10 check "Nickname Ban", 13, 2 32 43 10 button "Ok", 14, 3 120 25 12, ok button "Cancel", 15, 31 120 25 12, cancel } on *:DIALOG:blke:init:*:{ if (%blk.edit) { tokenize 32 $readini(blacklist.ini,-n,bans,$ifmatch) did -a blke 8 $ifmatch if ($1) { did -c blke 1 } if ($2) { did -c blke 2 } if ($3) { did -c blke 3 } did -a blke 4 $4 if ($5) { did -c blke 6 } if ($6) { did -c blke 11 } if ($7) { did -c blke 12 } if ($8) { did -c blke 13 } did -a blke 10 $9- } } on *:DIALOG:blke:sclick:14:{ if ($did(blke,8)) { if (%blk.edit) { remini blacklist.ini bans %blk.edit did -d blk 1 $did(blk,1).sel did -a blk 1 $did(blke,8) } writeini blacklist.ini bans $did(blke,8) $did(blke,1).state $did(blke,2).state $did(blke,3).state $iif($did(blke,4),$ifmatch,0) $did(blke,6).state $did(blke,11).state $did(blke,12).state $did(blke,13).state $iif($did(blke,10),$ifmatch,No Reason) if (!%blk.edit) { did -a blk 1 $did(blke,8) } unset %blk.edit } } on *:DIALOG:blke:sclick:15:{ unset %blk.edit } on *:DIALOG:blke:close:*:{ unset %blk.edit } on *:JOIN:#:{ if ($readini(blacklist.ini,-n,bans,$address($nick,2)) || $readini(blacklist.ini,-n,bans,$nick)) { tokenize 32 $ifmatch if ($1) { if ($me isop $chan || $me ishop $chan) { if ($2) { ban $chan $nick 2 } if ($6) { mode $chan +b ~q: $+ $address($nick,2) } if ($8) { mode $chan +b ~n: $+ $address($nick,2) } if ($3) { .timer 1 $calc( $4 * 60 ) /mode $chan -b $address($nick,2) } if ($7) { kick $chan $nick Blacklist Match • Reason: $9- } } if ($5) { part $chan Blacklist Match • Reason: $9- } } } }