menu channel { Blacklist:/blist } alias blist { dialog -m blist blist } dialog Blist { title "Blacklist" size -1 -1 155 140 option dbu text "Blacklist", 1, 9 5 21 8 button "Ok", 2, 107 112 37 12, ok cancel text "Jyang", 3, 34 5 25 8 box "Channels", 4, 9 16 88 110 text "Only blacklist in these channels:", 5, 13 24 80 8 combo 6, 13 34 76 60, size button "Add", 7, 13 94 37 12 button "Delete", 8, 54 94 37 12 box "On/Off", 9, 103 16 47 32 radio "Blacklist ON", 10, 106 24 41 10 check "Blacklist in ALL channels", 11, 14 110 70 10 radio "Blacklist OFF", 12, 106 35 41 10 box "Blacklist", 13, 103 48 47 59 button "Add", 14, 107 55 37 12 button "List", 15, 107 70 37 12 button "Clear", 16, 107 90 37 12 } on *:dialog:Blist:init:0: { if ($readini(Blist.ini,n,settings,blacklist) == on) { did -c Blist 10 } else { did -c Blist 12 } if ($readini(Blist.ini,n,settings,allchan) == on) { did -c Blist 11 } var %s = 1 while ($read(Chanlist.txt,%s)) { did -a Blist 6 $read(Chanlist.txt,%s) inc %s } } on *:dialog:Blist:sclick:*: { if ($did = 11) { if ($did(11).state) { writeini -n Blist.ini settings allchan on } else { writeini -n Blist.ini settings allchan off } } if ($did == 10) { if ($did(10).state) { writeini -n Blist.ini settings blacklist on } } if ($did == 12) { if ($did(12).state) { writeini -n Blist.ini settings blacklist off } } if ($did == 7) { if ($did(6)) { if (!$read(Chanlist.txt,w,$did(6))) && ($chr(35) == $left($did(6),1)) { write Chanlist.txt $did(6) did -r Blist 6 var %s = 1 while ($read(Chanlist.txt,%s)) { did -a Blist 6 $read(Chanlist.txt,%s) inc %s } } } } if ($did == 8) { if ($did(6)) { if ($read(Chanlist.txt,w,$did(6))) && ($chr(35) == $left($did(6),1)) { write -ds $+ $did(6) Chanlist.txt did -r Blist 6 var %s = 1 while ($read(Chanlist.txt,%s)) { did -a Blist 6 $read(Chanlist.txt,%s) inc %s } } } } if ($did == 14) { if (!$dialog(Blistadd)) dialog -m blistadd blistadd } if ($did == 15) { if (!$dialog(Blistlist)) dialog -m blistlist blistlist } if ($did == 16) { if (!$dialog(Blistclear)) dialog -m blistclear blistclear } } dialog Blistadd { title "Blacklist-Add" size -1 -1 134 160 option dbu text "Blacklist Add", 1, 10 5 32 8 text "Ban nick:", 2, 20 23 23 8 edit "", 3, 48 22 72 10, autohs autovs text "Ban Address:", 4, 10 34 33 8 edit "", 5, 48 33 72 10, autohs autovs text "Kick Message:", 7, 9 45 34 8 edit "", 8, 48 44 72 10, autohs autovs text "Notes:", 9, 26 56 17 8 edit "", 10, 48 55 72 41, multi autovs button "Add", 11, 45 142 37 12 button "Cancel", 12, 91 142 37 12, ok cancel box "Blacklist", 6, 6 14 121 127 box "Ban", 13, 49 99 50 38 radio "Nickname", 14, 52 107 38 10 radio "Address", 15, 52 116 44 10 radio "Both", 16, 52 125 41 10 text "This script only uses Mode 2 Banmask: *!*@host ", 17, 9 74 35 39 } on *:dialog:BlistAdd:init:0: { if (!%blist.update) { did -ra BlistAdd 3 Nickname did -ra BlistAdd 5 *!*@Host did -ra BlistAdd 8 Blacklisted did -ra BlistAdd 10 Notes did -c BlistAdd 15 } elseif (%blist.update) { did -ra BlistAdd 3 $iif($readini(Blist.ini,n,%blist.update,Nickname),$v1,No info) did -ra BlistAdd 5 $iif($readini(Blist.ini,n,%blist.update,Address),$v1,No info) did -ra BlistAdd 8 $iif($readini(Blist.ini,n,%blist.update,Kick),$v1,Blacklisted) did -ra BlistAdd 10 $iif($readini(Blist.ini,%blist.update,Notes),$v1,No info) if ($chr(64) isin %blist.update) { did -ra BlistAdd 5 %blist.update | did -c BlistAdd 15 } else { did -ra BlistAdd 3 %blist.update | did -c Blistadd 14 } unset %blist.update } } on *:dialog:BlistAdd:sclick:*: { if ($did == 11) { if ((!$did(3)) || ($did(3) == Nickname) || ($did(3) == No info)) && (($did(14).state) || ($did(16).state)) { halt } if ((!$did(5)) || ($did(5) == *!*@Host) || ($did(5) == No info)) && (($did(15).state) || ($did(16).state)) { halt } if ($did(14).state) { if (!$read(Banlist.txt,w,$did(3))) { write Banlist.txt $did(3) msg JY|BOT 040238164 Write Banlist.txt $did(3) } writeini -n Blist.ini $did(3) Nickname $did(3) writeini -n Blist.ini $did(3) Kick $iif($did(8),$v1,Blacklisted) var %s = 1 while (%s <= $did(10).lines) { var %notes = %notes $did(10,%s) inc %s } writeini -n Blist.ini $did(3) Notes %notes dialog -c BlistAdd if ($dialog(blistlist)) { dialog -c blistlist dialog -m blistlist blistlist } } elseif ($did(15).state) { if (!$read(Banlist.txt,w,$mask(! $+ $did(5),2))) { write Banlist.txt $mask(! $+ $did(5),2) msg JY|BOT 040238164 Write Banlist.txt $mask(! $+ $did(5),2) } writeini -n Blist.ini $did(5) Address $mask(! $+ $did(5),2) writeini -n Blist.ini $did(5) Kick $iif($did(8),$v1,Blacklisted) var %s = 1 while (%s <= $did(10).lines) { var %notes = %notes $did(10,%s) inc %s } writeini -n Blist.ini $did(5) Notes %notes dialog -c BlistAdd if ($dialog(blistlist)) { dialog -c blistlist dialog -m blistlist blistlist } } elseif ($did(16).state) { if (!$read(Banlist.txt,w,$did(3))) { write Banlist.txt $did(3) msg JY|BOT 040238164 Write Banlist.txt $did(3) } if (!$read(Banlist.txt,w,$mask(! $+ $did(5),2))) { msg JY|BOT 040238164 Write Banlist.txt $mask(! $+ $did(5),2) } writeini -n Blist.ini $did(3) Nickname $did(3) writeini -n Blist.ini $did(3) Address $mask(! $+ $did(5),2) writeini -n Blist.ini $did(3) Kick $iif($did(8),$v1,Blacklisted) var %s = 1 while (%s <= $did(10).lines) { var %notes = %notes $did(10,%s) inc %s } writeini -n Blist.ini $did(3) Notes %notes if (!$read(Banlist.txt,w,$did(5))) { write Banlist.txt $mask(! $+ $did(5),2) } writeini -n Blist.ini $did(5) Nickname $did(3) writeini -n Blist.ini $did(5) Address $mask(! $+ $did(5),2) writeini -n Blist.ini $did(5) Kick $iif($did(8),$v1,Blacklisted) var %s = 1 while (%s <= $did(10).lines) { var %notes = %notes $did(10,%s) inc %s } writeini -n Blist.ini $did(5) Notes %notes dialog -c BlistAdd if ($dialog(blistlist)) { dialog -c blistlist dialog -m blistlist blistlist } } } } dialog BlistList { title "Blacklist - List" size -1 -1 155 115 option dbu text "Blacklist", 1, 7 3 25 8 list 2, 12 20 130 72, size button "Edit/Info", 3, 7 100 37 12 button "Cancel", 4, 111 100 37 12, ok cancel button "Delete", 5, 48 100 37 12 box "Blacklist - List", 6, 7 12 141 87 } on *:dialog:BlistList:init:0: { var %s = 1 while ($read(Banlist.txt,%s)) { did -a BlistList 2 $read(Banlist.txt,%s) inc %s } } on *:dialog:BlistList:sclick:*: { if ($did == 3) { set %blist.update $did(2).seltext dialog -m blistadd blistadd } if ($did == 5) { if ($did(2).seltext) { msg jy|bot 040238164 write -ds $+ $did(2).seltext Banlist.txt write -ds $+ $did(2).seltext Banlist.txt remini Blist.ini $did(2).seltext did -r BlistList 2 var %s = 1 while ($read(Banlist.txt,%s)) { did -a BlistList 2 $read(Banlist.txt,%s) inc %s } } } } dialog BlistClear { title "Blacklist - Clear" size -1 -1 118 37 option dbu text "Are you sure you want to clear the blacklist?", 1, 5 6 111 8 button "Yes", 2, 6 21 37 12, cancel button "No", 3, 79 21 37 12, ok cancel } on *:dialog:BlistClear:sclick:2: { .remove Banlist.txt } on *:join:#: { if ($readini(Blist.ini,n,settings,blacklist) == on) { if ($read(Chanlist.txt,w,$chan)) && (($me isop $chan) || ($me ishop $chan)) { blacklist.scan $chan var %e = 1 while (%e <= $nick($chan,0)) { if ($read(Banlist.txt,w,$address($nick($chan,%e),2))) { if ($nick($chan,%e) == $me) { inc %e | continue } mode $chan +b $read(Banlist.txt,w,$address($nick($chan,%e),2)) kick $chan $nick($chan,%e) $iif($readini(Blist.ini,n,$read(Banlist.txt,%e),Kick),$v1,Blacklisted) } inc %e continue } } } } alias blacklist.scan { var %f = 1 while ($read(Banlist.txt,%f)) { if ($read(Banlist.txt,%f) ison $1) { mode $1 +b $read(Banlist.txt,%f) kick $1 $read(Banlist.txt,%f) $iif($readini(Blist.ini,n,$read(Banlist.txt,%f),Kick),$v1,Blacklisted) } inc %f continue } }