rendered paste bodymenu channel {
Blacklist:/blist
}
alias blist {
dialog -m blist blist
}
dialog Blist {
title "Blacklist v1.1"
size -1 -1 145 114
option dbu
button "Ok", 2, 100 96 37 12, ok cancel
box "Channels", 4, 3 1 88 110
text "Only blacklist in these channels:", 5, 7 10 80 8
combo 6, 7 19 76 60, size
button "Add", 7, 7 80 37 12
button "Delete", 8, 48 80 37 12
box "On/Off", 9, 97 1 45 32
radio "Blacklist ON", 10, 99 9 41 10
check "Blacklist in ALL channels", 11, 8 96 70 10
radio "Blacklist OFF", 12, 99 19 41 10
box "Blacklist", 13, 97 33 45 78
button "Add", 14, 100 40 37 12
button "List", 15, 100 54 37 12
button "Clear", 16, 100 68 37 12
button "Help", 17, 100 82 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 == 17) {
dialog -m BlistHelp BlistHelp
}
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)
}
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)
}
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)
}
if (!$read(Banlist.txt,w,$mask(! $+ $did(5),2))) {
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,$mask(! $+ $did(5),2))) { write Banlist.txt $mask(! $+ $did(5),2) }
writeini -n Blist.ini $mask(! $+ $did(5),2) Nickname $did(3)
writeini -n Blist.ini $mask(! $+ $did(5),2) Address $mask(! $+ $did(5),2)
writeini -n Blist.ini $mask(! $+ $did(5),2) 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) {
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 }
dialog BlistHelp {
title "Blacklist - Help"
size -1 -1 238 107
option dbu
list 1, 4 11 229 79, size hsbar
text "Blacklist help:", 2, 4 2 34 8
button Ok, 3, 196 92 37 12, ok cancel
}
on *:dialog:BlistHelp:init:*: {
did -ra BlistHelp 1 Displaying the Help File for Blacklist V1.1...
sockopen Blist.Help jooldesigns.net 80
}
on *:sockopen:blist.help: {
sockwrite -nt $sockname GET /temp/archived/47/Blistv1.1.txt HTTP/1.1
sockwrite -nt $sockname Host: jooldesigns.net $+ $crlf $+ $crlf
}
on *:sockread:blist.help: {
if ($sockerr) { did -ra BlistHelp 1 Error }
else {
var %Blist.Help
sockread %Blist.Help
did -z BlistHelp 1
if (%Blist.Read == 1) {
did -a BlistHelp 1 %Blist.Help
}
if (::start:: == %Blist.Help) { set %Blist.Read 1 | halt }
}
}
on *:sockclose:blist.help: { unset %Blist.Read }
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 $address($nick,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
}
}
alias blacklist {
if ($me isop $chan) || ($me ishop $chan) {
ban -k $chan $1 2 Blacklisted 12¤4 %kicks $+ 1
blist
dialog -m blistadd blistadd
did -ra BlistAdd 3 $1
did -ra BlistAdd 5 $address($1,2)
did -u BlistAdd 15
did -c BlistAdd 16
}
}