Chanserv Access Dialog

By Pepsi_Man0077 on Feb 18, 2009

Image

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 } 
  }
}

Comments

Sign in to comment.
Stewie1k94   -  Mar 10, 2012

Nice script, thanks....

 Respond  
94killerz   -  Apr 03, 2009

I'm too new to the scripting business to know how to do any of that...

 Respond  
Pepsi_Man0077   -  Apr 03, 2009

Your free to edit the script. Just don't take credit for it unless you made it from scratch. But as for this version, its just generic.

 Respond  
94killerz   -  Apr 03, 2009

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".

 Respond  
Cheiron   -  Mar 15, 2009

i got it tied in with a .txt system for the manual deop for grouped and other nicks now :)

 Respond  
Pepsi_Man0077   -  Mar 15, 2009

Well a simple script can allow that

on *:JOIN:#CHAN: {
if ($nick == bob) {
mode # o bob
}
}

 Respond  
Cheiron   -  Mar 15, 2009

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

 Respond  
Pepsi_Man0077   -  Mar 15, 2009

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

 Respond  
Cheiron   -  Mar 14, 2009

no worries. do you reckon an addon could be done then for the manual mode give to non registered nicks? the /cs voice $chan nick etc...

 Respond  
Pepsi_Man0077   -  Mar 14, 2009

Well yeah if the nick changes then the access changes. But that would need to be an option changed in the services entirely. This is not a bot access script, its meant for use with chanserv :P

And thanks for the feedback

 Respond  
PATX   -  Mar 14, 2009

exelent 10/10

 Respond  
Cheiron   -  Mar 13, 2009

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

 Respond  
Pepsi_Man0077   -  Mar 10, 2009

Updated, added xOp support, and made it cleaner as i said in the description. I hope it becomes more useful to you Cheiron. Let me know if their is anything else that looks like it could use change.

 Respond  
Cheiron   -  Mar 03, 2009

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 :)

 Respond  
Pepsi_Man0077   -  Mar 03, 2009

Well if you would find use from it, then i can add xOp to it as well, but if no one is going to use it, i don't think its needed/

 Respond  
Cheiron   -  Mar 03, 2009

nodsnods.. it was just the idea of a manual xOp version that intriqued me as a way of adding non registered nicks etc via the normal manual op/hop/voice method on a per nick basis

 Respond  
Pepsi_Man0077   -  Mar 03, 2009

Right, thats called xOp. It can be turned off for the use of access levels instead of xOp levels. Most servers i am on have access levels and not xOp

/cs set #chan xOp off

 Respond  
Cheiron   -  Mar 03, 2009

i meant vop / hop / aop / sop add .... not acess levels

 Respond  
Pepsi_Man0077   -  Mar 02, 2009

@Cheiron - This is access through chanserv, so i dont get what you mean...

@BluePower - cs set #chan xop off

 Respond  
Bluepower10   -  Feb 25, 2009

Lol, my serv or chan has Xop enabled.

 Respond  
Cheiron   -  Feb 25, 2009

i would be interested in this in its chanserv version as opposed the access you have there.. reckon you could do an edit to either have the option for access/chanserv or post a second script just with the chanserv voice/halfop/op/sop commands as a manual give as opposed adding via chanserv

 Respond  
Pepsi_Man0077   -  Feb 25, 2009

Thank you very much. Hope you enjoy it

 Respond  
Aucun50   -  Feb 18, 2009

Nice script

 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.