Permissions Ideas (3 of 3) - GroupSign - a plugin to change Permissions group, via a sign.

Discussion in 'Archived: Plugin Requests' started by Flenix, Aug 25, 2011.

  1. Offline

    Flenix

    Hey guys,
    This is a thread of one of my 3 ideas for permissions. I'm making 3 threads because the only thing the ideas have in common is that they're permissions related, and would in fact be in 3 different plugins anyway.

    This is probably the easiest of my 3 suggestions. Simply what it does, is let you choose or change a permissions group, by clicking on a sign. Its sort of hard to describe, so I'll throw a big example at you with everything you should need.

    First, the permissions groups:
    Code:
    groups:
        Newbie:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Citizen
            permissions:
                - GroupSign.set.warrior
                - GroupSign.set.mage
                - GroupSign.set.ranger
                - GroupSign.add.job1
                - GroupSign.add.job2
                - Starterplugin.random
                - AnotherPlugin.useful.good
    
        Warrior:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Citizen
            permissions:
                - swordplugin.all
                - armourplugin.all
                - FireLord.sword
                - -GroupSign.set.warrior
                - -GroupSign.set.mage
                - -GroupSign.set.ranger
                - GroupSign.switch.mage
                - GroupSign.switch.ranger
    
        Mage:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Citizen
            permissions:
                - Magic.cast.fire
                - -GroupSign.set.warrior
                - -GroupSign.set.mage
                - -GroupSign.set.ranger
                - GroupSign.switch.warrior
                - GroupSign.switch.ranger
    
        Powermage:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Mage
            permissions:
                - Magic.cast.fireball
    
        Ranger:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Citizen
            permissions:
                - Archers.bow
                - Archers.arrow.*
                - -GroupSign.set.warrior
                - -GroupSign.set.mage
                - -GroupSign.set.ranger
                - GroupSign.switch.warrior
                - GroupSign.switch.mage
        Job1:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Citizen
            permissions:
                - craftgroup.job1
    
        Job2:
            default: false
            info:
                prefix: ''
                suffix: ''
                build: true
            inheritance:
                - Citizen
            permissions:
                - craftgroup.job2 
    Its a very simple roleplay layout: 3 races, and two jobs. The permissions are set up so a newbie can choose a race, but once chosen they have a different node of "Switch". Their original "set" nodes are negated out to stop them working (this could be automatic in the plugin though?)

    Next, the config (just a simple one, could add a lot more...)
    Code:
    useiconomy: true
    useboseconomy: false
    usewhateverothereconomypluginsthereare: maybe
    defaultcosttoset: 0
    defaultcosttoswitch: 2500
    defaultcosttoadd: 0
    defaultcosttoupgrade: 1000
    switchgroups: Warrior, Mage, Ranger,
    and an "upgrade chart" (Optional, but useful) - The example is linked to the file above.
    Code:
    Upgrades
        Upgrade Name:
            - PowerMage
            Upgrade From:
                - Mage
            Upgrade to:
                - PowerMage
        Upgrade Name:
            - Another upgrade (etc...) 
    Within the upgrade chart, the group they're upgrading from would have the "GroupSigns.upgrade.PowerMage" node. Upgrade From and Upgrade To can have more than one group. All the ones in "Upgrade From" are removed from the list, and all the ones in "Upgrade To" are added (Just to help change the prefix in a prefixing plugin, should you have one.)
    Upgrade Costs are optional, and use an economy plugin (preferably iconomy, but most plugins support a few now anyway)

    Finally, the signs. A simple syntax:
    Code:
    Line 1: GroupSign
    Line 2: Set/Switch/Upgrade/Add
    Line 3: (The group to be altered)
    Line 4:  Cost (if using iconomy) - If not entered, goes to default as in config
    
    Thats all for the config etc. I know theres quite a lot there...

    Here is a quick summery of what each thing means:
    Set: All your permissions groups are removed and you're left purely with this one
    Switch: Checks against the "Switchgroups" config option, and if you have one of those groups it is replaced with whats on the sign (Good for changing races on a race server)
    Upgrade: Uses the Upgrades file, to follow an upgrade track
    Add: Simply adds the group onto the end.

    Finally, the admins would have nodes and commands as follows:
    Code:
    GroupSign.admin.create - create a sign
    Groupsign.admin.destroy - destroy a sign
    Groupsign.admin.admin - lets the admin switch to a group by clicking the sign, and switch back to their admin group by clicking it again (useful for testing etc)
    Groupsign.admin.commands - use the commands
    
    /groupsign set [player] [group] - Command for setting groups
    /groupsign switch [player] [group] Command for switching groups
    /groupsign upgrade [player] [upgrade name] Command for upgrading groups
    /groupsign add [player] [group1] [group2] Command for adding groups
    All commands still use costs as do the signs.

    Hope my thread wasn't too hard to follow. Any questions just tag me back!
     
  2. Offline

    toalec

    RankUp allows you to do all of this, but it does not have the same abstractions. You have to explicitly label the starting and ending group. It supports Permissions3, PermissionsBukkit and PermissionsEx, and anything that can not be done through RankUp can be done through any of those plugins.
     
  3. Offline

    ceoepts

    THIS IS OUTDATED AND ARE NOT GOING TO UPDATE use promotion!
     
  4. Offline

    Trust518

Share This Page