Ban List Viewer/Remover

Platform:  mIRC
Published  Feb 18, 2012
Updated  Feb 18, 2012

Screenshots

A little snippet I thought would be useful to others.

Basic channel menu to start the process, If there aren't any ban's it won't open the dialog, Otherwise it will do.

Tell's the user who set it for one ban, If more than one selected ban, It'll replace the user who set it with "Multiple Entries"

I hope you guys find this useful. menu channel,menubar {
Ban List Dialog:iblstart
}
dialog ibllist {
title "Ban List Dialog by Danneh/GrimReaper"
size -1 -1 211 137
option dbu
box "List of bans:", 1, 3 3 137 131
list 2, 7 11 128 106, multsel check result
box "Ban Information:", 3, 143 3 64 51
text "Set by:", 4, 147 11 18 8
text "", 5, 147 21 56 8
text "Date set:", 6, 147 31 23 8
text "", 7, 147 41 56 8
button "CheckAll", 8, 143 57 64 12
button "Remove", 9, 143 72 64 12
button "Remove Selected", 10, 143 87 64 12
button "Remove All", 11, 143 102 64 12
button "Ok/Cancel", 12, 156 118 37 12, ok cancel
text "", 13, 7 122 128 8
}
on *:DIALOG:ibllist:init:*: {
if ($ibl($active,0) != 0) {
var %a = 1
while (%a <= $ibl($active,0)) {
did -a $dname 2 $ibl($active,%a)
inc %a
}
did -a $dname 13 Total entries on $+($active,$chr(58)) $ibl($active,0)
noop $input(All entries have been added..,o,Success!)
}
else {
noop $input(There are no entries for $+($active,.),o,Closing Dialog!)
dialog -x $dname
}
}
on *:DIALOG:ibllist:sclick:2,8-11: {
var %a
if ($did == 2) {
if ($did($dname,2,0).sel == 1) {
did -ra $dname 5 $ibl($active,$did($dname,2).sel).by
did -ra $dname 7 $ibl($active,$did($dname,2).sel).date
}
elseif ($did($dname,2,0).sel >= 2) {
did -ra $dname 5 Multiple Entries
did -ra $dname 7 Multiple Entries
}
elseif ($did($dname,2,0).sel == 0) {
if ($did($dname,5) != $null) && ($did($dname,7) != $null) {
did -r $dname 5,7
}
}
}
if ($did == 8) {
%a = 1
while (%a <= $did($dname,2).lines) {
if ($did(8).text == CheckAll) {
did -s $dname 2 %a
}
elseif ($did(8).text == UnCheckAll) {
did -l $dname 2 %a
}
inc %a
}
if ($did(8).text == CheckAll) {
did -ra $dname 8 UnCheckAll
}
elseif ($did(8).text == UnCheckAll) {
did -ra $dname 8 CheckAll
}
}
if ($did == 9) {
if ($did($dname,2,0).sel == 1) {
mode $active -b $did($dname,2,$did($dname,2).sel).text
did -d $dname 2 $did($dname,2).sel
.timer 1 1 refreshibl
}
}
if ($did == 10) {
%a = 0
var %bans
while ($did($dname,2,0).csel > 0) {
%bans = %bans $did($dname,2,$did($dname,2,1).csel).text
did -d $dname 2 $did($dname,2,1).csel
inc %a
if (%a == $modespl) {
mode $active - $+ $str(b,%a) %bans
%bans = $null
%a = 0
}
}
if (%bans) {
mode $active - $+ $str(b,%a) %bans
}
.timer 1 1 refreshibl
}
if ($did == 11) {
%a = 0
var %bans
while ($did($dname,2).lines > 0) {
%bans = %bans $did($dname,2,1).text
did -d $dname 2 1
inc %a
if (%a == $modespl) {
mode $active - $+ $str(b,%a) %bans
%bans = $null
%a = 0
}
}
if (%bans) {
mode $active - $+ $str(b,%a) %bans
}
.timer 1 1 refreshibl
}
}
alias iblstart {
if ($me !ison $active) {
return
}
if (!$chan($active).ibl) {
.enable #IBLList
.timerIBLListTimeout 1 8 ibltimeout
mode $active +b
}
else {
ibldialog
}
}
alias ibldialog {
dialog $iif($dialog(ibllist),-v,-m ibllist) ibllist
}
alias -l refreshibl {
did -ra ibllist 13 Total entries on $+($active,$chr(58)) $ibl($active,0)
}
#IBLList off
raw 368:*: {
HALTDEF
.timerIBLListTimeout off
.disable #IBLList
ibldialog
}
#IBLList end
alias ibltimeout {
.disable #IBLList
ibldialog
}

Comments

Sign in to comment.
jaytea   -  Feb 20, 2012

is not the best way to grab the bans. i've found that if the banlist has not been modified for a bit such as adding/removing of bans. that some or all of the bans will not show up this is an example of another way to do it that i set up via my bot.


look at his whole code. he checks $chan().ibl before initiating the dialog and will request the ban list from the server if the IBL isn't necessarily up-to-date. that is the most sensible method.
 Respond  
blackvenomm666   -  Feb 19, 2012
ok i do have one suggestion though buddy. using the
Code
 

is not the best way to grab the bans. i've found that if the banlist has not been modified for a bit such as adding/removing of bans. that some or all of the bans will not show up this is an example of another way to do it that i set up via my bot.
Code
 

which im sure you could easily change and implement into your coding if you feel like doing so
 Respond  
GrimReaper   -  Feb 19, 2012
Thanks SunnyD, I always try and find way's to improve what is always there, I don't personally like the default viewer in mIRC so I decided to make my own.

Eventually, I will update it with adding of new bans etc, But for now, I'm leaving it as is, I'm in going to attempt to make an Android App. Even tho I don't know Java one little bit. lol
 Respond  
SunnyD   -  Feb 18, 2012
Looks great. A lot better than mIRC's default ban list viewer.
 Respond  
GrimReaper   -  Feb 18, 2012
@PyThOn, I will see what I can do in the next update, It's been a while since I wrote anything in mSL as I've been writing in TCL for the last month for a few friends of mine so they can have a bot.

Thanks Ryan. You know where to find me if you need any help with anything. Even tho I know what your coding is like. :p
 Respond  
blackvenomm666   -  Feb 18, 2012
looks good bro i'll test it laters:D and you taught me something new for dialogs haha. i never did any with check mark boxes could make things so much easier
 Respond  
PyThOn   -  Feb 18, 2012
Works nice.
Would be better if you could add bans for the room.
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.