Easy to use dialog created to edit, add, and delete access from channels that you have access to.
To startup the dialog, you can:
Right click a channel and go to 'Chanserv Access'
or
type /access in any channel or window
Should be pretty easy from there. As of adding this script, it will not work for chans with xOp enabled. I disabled it from doing so, but i will add it later if i feel its neccessary. But i mean no one uses xOp anyways LOL
I am pretty sure i have halted any text that chanserv sends you (status, errors, etc.) when you add or del or edit access. If i missed something let me know. Tested the script, works fine for me.
Enjoy the script and let me know all of your opinions
UPDATE
Added xOp support, and changed the look of the dialog. Much cleaner and easier to use.
Added an auto select feature on startup. Lets you choose whether or not to use the active chan as the startup selection.
Let me know if you think i should change something
;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§
;§§ Made by: PePSiMaN
;§§ Title: Chanserv Access.mrc
;§§ Date: 2-18-2009
;§§ Description: Chanserv Access Dialog Editor
;§§
;§§ DO NOT CHANGE ANYTHING IN THIS FILE
;§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§
dialog ch.access {
title "Chanserv Access Console"
size -1 -1 247 132
option dbu
box "Add Access", 1, 2 0 65 131
combo 2, 4 9 60 50, size drop
combo 3, 4 24 60 50, size
edit "...", 4, 4 88 60 10, center
button "Add", 5, 14 100 37 12
box "Edit and Removal", 6, 67 0 179 131
combo 7, 70 24 173 105, size
button "Remove", 8, 70 10 37 12
edit "...", 9, 143 11 60 10, center
button "Edit", 10, 204 10 37 12
radio "xOp", 11, 34 76 30 10, push
radio "Access", 12, 4 76 30 10, push
combo 13, 4 88 60 40, size drop
combo 14, 143 11 60 40, size drop
text "By PePSiMaN", 15, 5 120 60 8, center
}
alias access {
if ($chr(35) isin $active) { set %get.chan $$?!="Would You Like to Use the Active Channel as Your Startup Selection?" }
dialog -m ch.access ch.access
}
Menu Channel {
-
Chanserv Access:access
}
on ^*:NOTICE:*:?:{
if ($dialog(ch.access)) && ($nick == Chanserv) {
if (Access list for isin $1-) { haltdef }
if (must be non-zero isin $1-) { haltdef | echo -a 4Error: Level must be a number and non-zero }
if ($1 isnum) && ($2 isnum) { haltdef | did -a ch.access 7 $3 - Access Level $2 | list access }
if ($1 isnum) && ($2 !isnum) { haltdef | did -a ch.access 7 $3 - xOp Level $2 | list xop }
if (Use the AOP, SOP isin $1-) { haltdef | did -a ch.access 7 Channel is in xOp format | did -a ch.access 7 To turn xOp off, /cs set $did(ch.access,2) xop off }
if (Type /msg ChanServ isin $1-) { haltdef }
if (Unknown command isin $1-) { haltdef }
if (You can't use this isin $1-) { haltdef }
if (Num isin $1-) { haltdef }
if (moved to isin $1-) { haltdef }
if (Permission denied isin $1-) { haltdef | did -a ch.access 7 Permission Denied }
if (End isin $1-) { haltdef }
if (Access Denied isin $1-) { haltdef | did -a ch.access 7 Access Denied }
if (added to isin $1-) { haltdef }
if (deleted from isin $1-) { haltdef }
if (changed isin $1-) { haltdef }
if (list is empty isin $1-) { haltdef | did -a ch.access 7 Access List is Empty | list access }
if (No matching entries isin $1-) { haltdef | did -a ch.access 7 xOp list is Empty | list xop }
}
}
alias -l list {
if (!$dialog(ch.access)) { halt }
if ($1 = access) {
did -c ch.access 12
did -u ch.access 11
did -v ch.access 4,9
did -h ch.access 13,14
did -r ch.access 4,9
did -a ch.access 4,9 Access Level
}
elseif ($1 = xop) {
did -c ch.access 11
did -u ch.access 12
did -v ch.access 13,14
did -h ch.access 4,9
did -r ch.access 13,14
did -a ch.access 13,14 VOP
did -a ch.access 13,14 HOP
did -a ch.access 13,14 AOP
did -a ch.access 13,14 SOP
}
}
on *:DIALOG:ch.access:*:*: {
if ($devent == init) {
did -b $dname 3-5
did -b $dname 7-10
did -b $dname 13-14
did -h $dname 13
did -f $dname 2
did -c $dname 2
var %chan.var 1
while (%chan.var <= $chan(0)) {
did -a $dname 2 $chan(%chan.var)
if ($chan(%chan.var) = $active) && (%get.chan = $true) {
did -c $dname 2 %chan.var
did -e $dname 3,7
cs access $did(2) list
var %nick.var 1
while (%nick.var <= $nick($did(2),0)) {
did -a $dname 3 $nick($did(2),%nick.var)
inc %nick.var
}
}
inc %chan.var
}
}
if ($devent == sclick) {
if ($did == 2) {
did -r $dname 3,7
cs access $did(2) list
did -e $dname 7
did -e $dname 3
did -f $dname 3
var %nick.var 1
while (%nick.var <= $nick($did(2),0)) {
did -a $dname 3 $nick($did(2),%nick.var)
inc %nick.var
}
}
if ($did == 3) { did -e $dname 4 | did -f $dname 4 | did -e $dname 13 }
if ($did == 5) {
if ($did(12).state = 1) {
did -r $dname 7
cs access $did(2) add $did(3) $did(4)
did -h $dname 13,14
did -v $dname 4,9
did -r $dname 4
did -a $dname 4 ...
did -b $dname 4-5
cs access $did(2) list
}
elseif ($did(11).state = 1) {
did -r $dname 7
cs $did(13) $did(2) add $did(3)
did -h $dname 13,14
did -v $dname 4,9
did -r $dname 4
did -a $dname 4 ...
did -b $dname 4-5
cs access $did(2) list
}
}
if ($did == 7) { did -e $dname 8-9 | did -e $dname 14 | did -r $dname 9 | did -a $dname 9 $gettok($did(7),5,32) }
if ($did == 8) {
if ($gettok($did(7),5,32) isnum) {
cs access $did(2) del $gettok($did(7),1,32)
did -r $dname 7
did -b $dname 8-10
cs access $did(2) list
}
elseif ($gettok($did(7),5,32) !isnum) {
cs $gettok($did(7),5,32) $did(2) del $gettok($did(7),1,32)
did -r $dname 7
did -b $dname 8-10
cs access $did(2) list
}
}
if ($did == 10) {
if ($gettok($did(7),5,32) isnum) {
cs access $did(2) add $gettok($did(7),1,32) $did(9)
did -r $dname 7
did -h $dname 13,14
did -v $dname 4,9
did -r $dname 9
did -a $dname 9 ...
did -b $dname 8-10
cs access $did(2) list
}
elseif ($gettok($did(7),5,32) !isnum) {
cs $did(14) $did(2) add $gettok($did(7),1,32)
did -r $dname 7,9
did -h $dname 13,14
did -v $dname 4,9
did -a $dname 9 ...
did -b $dname 8-10
cs access $did(2) list
}
}
if ($did == 11) {
list xop
}
if ($did == 12) {
list access
}
if ($did == 13) {
did -e $dname 5
}
if ($did == 14) {
did -e $dname 10
}
}
if ($devent == dclick) {
if ($did == 11) { cs set $did(2) xop on | did -r $dname 7 | did -a $dname 7 xOp for $did(2) turned on | .timer 1 1 cs access $did(2) list }
if ($did == 12) { cs set $did(2) xop off | did -r $dname 7 | did -a $dname 7 xOp for $did(2) turned off | .timer 1 1 cs access $did(2) list }
}
if ($devent == edit) {
if ($did == 3) { did -e $dname 4 | did -e $dname 13 }
if ($did == 4) { did -e $dname 5 }
if ($did == 9) { did -e $dname 10 }
}
}
Not sure if it's in there since I just loaded this into my channel, but it would be nice if:
-You can organize based on access level and/or nick
-You can allow the easy editing of names for the access levels [or just the display names]. (E.G: Boss (10)...Guest(1))
-You can code it in so you can easily add/remove the commands that each level can do.
That could take a load of time out of quite a few "room-management sessions".
i apologise.. what i meant to type sorry was... manually assigning ops to a nick on join based on the list. not adding the nick to the chanserv auto-add, so that it was nick specific. eg Tom would have ops .. but his other nicks/grouped nicks wouldnt. it is no biggie if it a no go.. just a thought that was all
Let me get this straight? You want to have users that are non registered added to list so that they can get +o or +h when they join the channels? Cause if so, that would defeat the purpose of this script. All this script does is add the user to the Services access list on the channel. It doesnt store any information, all it does is relay information to Chanserv (a service) so that its easier for people to add access. If you do /cs access #chan list it will give you the channels access list.
The problem with adding non-regg'd nicks is that chanserv doesnt let you add them. Because if its not registered, anyone can use the nick. So that addon could be added, but if you want that, i might as well just make a new snippet, because this one uses chanserv, and holds no access information
been running it a while now.. still using chanserv to add to the chanserv listings i note. would like to see an option to manually give a set(non registered) nick the various levels also as opposed just on chanserv listings. also if it could be done.. if that nick changed to another one.. the op level would be removed.
otherwise it is running really well. nicely done so far and it gets a good thumping thumbs up
i am currently running this one of yours for channels where i use access and gave you a like and rated it 8 anyway. the xOp edit would not be an "add to chanserv list" but the allowing of non registered nicks to hold ranks of voice , halfop, op, etc. it would be a great addition for me if you could do it :)