rendered paste bodymenu 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
}
}