Inactive [ADMN/INFO] GroupManager v1.0 alpha-3 - A Permissions replacement [440-531]

Discussion in 'Inactive/Unsupported Plugins' started by AnjoCaido, Feb 17, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    AnjoCaido

    GroupManager - The Permissions 2.x plugin sucessor.
    Version: v1.0 alpha-5

    Yes, it has multiworld and multigroup users support now. When 1.0 final release, next step is database (SQLite/MySQL).

    ---

    If you use Essentials:
    - Don't use both EssentialsGroupManager.jar and GroupManager.jar! Just choose one, because they are the same!
    - Don't use both EssentialsGroupBridge.jar and FakePermissions.jar! Just choose one, because they are the same!


    ---

    As the growth of this plugin is getting faster and faster, I needed to put multiword support the soon as I could.
    Now it's here. And GroupManager is keeping all of it's good stuff! Did I say it is going to bring a lot more of new stuff too?

    Purpose of the plugin:
    The purpose has changed. Permissions got better. But it still not enough. Why I did, and keep doing this?
    I started it thinking that it would make me happy. Now it's because it will make YOU happy.

    Advantages against Permissions:
    • User multigroup support.
    • Full command list to change anything during game or thru the console.
    • Good API to change things. You to change a player group you can do getPlayer(name).setGroup(getGroup(name))
    • Exception nodes.
    • It separates groups files from users files.

    New Features:
    • User multigroup support(yay!)
    • Multiworld support(meh).
    • It has world permission mirroring(you can make a world nether having the same permissions of world2 instead of default world1).
    • It saves only the files that will have contents changed.
    • It separates groups files from users files.
    • It cleans old backup files older than 24h.

    Previous Features(included):
    • It has the same file format as Permissions, no need to get used with anything new.
    • It comes with a fake Permissions plugin, that attaches GroupManager to all your permissions dependent plugins. No need to make any changes, nor update other plugins. Just adjust your permissions files and GO!
    • Commands to change users permissions are REALLY on-the-fly(no touching files).
    • It saves the permissions data periodically.
    • It backups every file before overwrites.
    • Tons of commands for complete user/group/permission management during game/console.
    • It has a fantastic temporary permissions system, that let's you to make changes in users, with the possibility to go back at any time(and it never is saved on files).
    • Negative nodes(aka '-'): You can take off specific permissions from users that have a full set.
    • Exception node(aka '+'): Used when a user/group has a set of negative nodes, and you want to allow a specific one.

    User's subgroups: a brief explanation
    You can see on the file structure(down here on same post), that users have an optional node called subgroups. That node is a list, just like "permissions" node. There you can list a user subgroup, it can be as many as you want.
    What a user inherits from subgroups? Only permissions. It means nothing on a subgroup's info node(prefix, suffix, build and other variables) will be considered.
    The user will still be considered as a member of that group, but will only inherits it's permissions, like some commands, kits, etc.

    This reduces the needs of a nest of groups inheriting each other.
    You can have one user in Peasant group, which has only some basics, and them let him join in Miner as a subgroup, where he can get Miner kits, or other related to miner group.
    Later, when your town needs a railer, you can just add the group Railer to him as subgroup, and he will have both things at same time. When the job is done, you just remove the subgroup.
    This gets even more interesting when you have groups related to towns, factions, teams… etc.

    World mirroring: a brief explanation
    Let's say you have a config file like this:
    Code:
    settings:
      data:
        save:
          minutes: 10
      logging:
        level: INFO
      permission:
        world:
          mirror:
            world1:
              - world2
              - world3
            world4:
              - world5
    It means that all your permissions of world2, and world3 will be the same of world1. And it means all permissions of world5 will be the same of world4.
    It won't copy any file. In fact, it won't matter if there is files for world2… when the permissions get load, every request for world2 will be redirected for world3. Simple as that.

    If no mirroring is specified, any world not loaded will automatically mirror the default world of the server.

    File structure: a brief explanation
    The files read for GroupManager 1.0+ for data management are two files per world. The users file are users.yml. The groups file are groups.yml.
    The thing is that those files are located in:
    plugins/GroupManager/worlds/WORLDNAME

    So the file structure for the world called anjoCaidoWorld and netherWorld will be:
    plugins/GroupManager/worlds/anjoCaidoWorld/groups.yml
    plugins/GroupManager/worlds/anjoCaidoWorld/users.yml
    plugins/GroupManager/worlds/netherWorld/groups.yml
    plugins/GroupManager/worlds/netherWorld/users.yml

    The files might look like this:
    groups.yml
    Code:
    groups:
        Admins:
            default: false
            info:
                build: false
                prefix: ''
                suffix: ''
            inheritance:
            - SemiAdmin
            permissions:
            - '*'
        Default:
            default: true
            info:
                build: false
                prefix: ''
                suffix: ''
            inheritance: []
            permissions:
            - essentials.spawn
            - essentials.motd
            - essentials.help
            - essentials.home
            - essentials.sethome
        Moderator:
            default: false
            info:
                build: false
                prefix: '&c'
                suffix: 'Mod'
            inheritance:
            - Default
            permissions:
            - essentials.tp
            - essentials.tphere
            - essentials.item
            - essentials.give
        SemiAdmin:
            default: false
            info:
                build: false
                prefix: '&c'
                suffix: 'SemiAdmin'
            inheritance:
            - Moderator
            permissions:
            - +groupmanager.mandemote
            - +groupmanager.manpromote
            - -groupmanager.*
            - '*'
        Peasant:
            default: true
            info:
                build: false
                prefix: '&e'
                suffix: 'Peasant'
            inheritance:
            - Default
            permissions: []
        Miner:
            default: false
            info:
                build: false
                prefix: ''
                suffix: ''
            inheritance:
            permissions:
            - essentials.kit
            - essentials.kit.miner
            - flashlight.regular
        Healer:
            default: false
            info:
                build: false
                prefix: ''
                suffix: ''
            inheritance:
            permissions:
            - essentials.kit
            - essentials.kit.healer
            - essentials.heal
        Farmer:
            default: false
            info:
                build: false
                prefix: ''
                suffix: ''
            inheritance:
            permissions:
            - essentials.kit
            - essentials.kit.farmer
            - essentials.spawnmob
        Railer:
            default: false
            info:
                build: false
                prefix: ''
                suffix: ''
            inheritance:
            permissions:
            - essentials.kit
            - essentials.kit.railer
    users.yml
    Code:
    users:
        anjocaido:
            group: Admins
            info:
                prefix: '&c'
                suffix: King
            permissions: []
        gmcouto:
            group: SemiAdmin
            permissions: []
        zenexer:
            group: Moderator
            permissions:
            - essentials.god
        aMiner:
            group: Peasant
            info:
                prefix: '&d'
                suffix: Miner
            permissions: []
            subgroups:
              - Miner
        aHealer:
            group: Peasant
            info:
                prefix: '&d'
                suffix: Healer
            permissions: []
            subgroups:
              - Healer
        aFarmer:
            group: Peasant
            info:
                prefix: '&d'
                suffix: Farmer
            permissions: []
            subgroups:
              - Farmer
        tempRailer:
            group: Peasant
            info:
                prefix: '&d'
                suffix: Miner
            permissions: []
            subgroups:
              - Miner
              - Railer
    You can see that the node structure are exactly the same used for GroupManager 0.99d(-) and Permissions, it means you can use the same files here.
    Note: Every node that doesn't make part of the respective file is ignored. So if you are migrating from older GroupManager or Permissions you can just duplicate your files as groups.yml and users.yml. When comes the time where is needed to save the file, all unused data for each file will be discarded. So you don't need to split files, just duplicate them with correct names, it will work.

    Negative and Exception nodes: a brief explanation
    Let's say you have a group SemiAdmin like this.
    Code:
    groups:
      SemiAdmin:
        default: false
        permissions: [+groupmanager.manpromote, -groupmanager.*,
          '*']
        inheritance: [Moderator]
        info: {prefix: '', build: false, suffix: ''}
    You should read this way:
    '*' -> means this group will have access to all commands.
    '-groupmanager.*' -> Where all his commands of groupmanager where removed.
    '+groupmanager.manpromote' -> Except manpromote.

    It means he can do everything that is not of GroupManager, AND manpromote.

    It's like listing essentials.*, worldedit.*, worldprotect.*, everyotherthing.* and groupmanager.manpromote.

    It gives a very big flexibility on permissions.

    Note:
    For every level of inheritance,
    Every permission starting with '+' is tested first. Then comes permissions starting with '-'. Then comes normal permissions(including '*').

    Commands:
    • Now on multiword support, every command will act only on the selected world.
    • If none/invalid world is selected, it will run on the default world.
    • If the world selected is a mirrored world, it will work on the mirror world.
    (on next version, when a command involves a player, there will be a toggle that will automatically act on the victim(player) world is in)
    Code:
    commands:
      manuadd:
        description: Move a player to desired group.(Adds to the file if not exists)
        usage: /<command> <player> <group>
        permission: groupmanager.manuadd
      manudel:
        description: Remove any user specific configuration. Make him default group.
        usage: /<command> <player>
        permission: groupmanager.manudel
      manuaddsub:
        description: Add a group to a player's subgroup list.
        usage: /<command> <player> <group>
        permission: groupmanager.manuaddsub
      manudelsub:
        description: Remove a group to a player's subgroup list.
        usage: /<command> <player> <group>
        permission: groupmanager.manudelsub
      mangadd:
        description: Add group to the system.
        usage: /<command> <group>
        permission: groupmanager.mangadd
      mangdel:
        description: Removes group from the system(all it's users become default)
        usage: /<command> <group>
        permission: groupmanager.mangdel
      manuaddp:
        description: Add permission diretly to the player.
        usage: /<command> <player> <permission>
        permission: groupmanager.manuaddp
      manudelp:
        description: Removes permission diretly from the player.
        usage: /<command> <player> <permission>
        permission: groupmanager.manudelp
      manulistp:
        description: List all permissions from a player.
        usage: /<command> <player>
        permission: groupmanager.manulistp
      manucheckp:
        description: Verify if user has a permission, and where it comes from.
        usage: /<command> <player> <permission>
        permission: groupmanager.manucheckp
      mangaddp:
        description: Add permission to a group.
        usage: /<command> <group> <permission>
        permission: groupmanager.mangaddp
      mangdelp:
        description: Removes permission from a group.
        usage: /<command> <group> <permission>
        permission: groupmanager.mangdelp
      manglistp:
        description: Lists all permissions from a group.
        usage: /<command> <group>
        permission: groupmanager.manglistp
      mangcheckp:
        description: Check if group has a permission, and where it comes from.
        usage: /<command> <group> <permission>
        permission: groupmanager.mangcheckp
      mangaddi:
        description: Add a group to another group inheritance list.
        usage: /<command> <group1> <group2>
        permission: groupmanager.mangaddi
      mangdeli:
        description: Remove a group from another group inheritance list.
        usage: /<command> <group1> <group2>
        permission: groupmanager.mangdeli
      manuaddv:
        description: Add, or replaces, a variable to a user (like prefix or suffix).
        usage: /<command> <user> <variable> <value>
        permission: groupmanager.manuaddv
      manudelv:
        description: Remove a variable from a user.
        usage: /<command> <user> <variable>
        permission: groupmanager.manudelv
      manulistv:
        description: List variables a user has (like prefix or suffix).
        usage: /<command> <user>
        permission: groupmanager.manulistv
      manucheckv:
        description: Verify a value of a variable of user, and where it comes from.
        usage: /<command> <user> <variable>
        permission: groupmanager.manucheckv
      mangaddv:
        description: Add, or replaces, a variable to a group (like prefix or suffix).
        usage: /<command> <group> <variable> <value>
        permission: groupmanager.mangaddv
      mangdelv:
        description: Remove a variable from a group.
        usage: /<command> <group> <variable>
        permission: groupmanager.mangdelv
      manglistv:
        description: List variables a group has (like prefix or suffix).
        usage: /<command> <group>
        permission: groupmanager.manglistv
      mangcheckv:
        description: Verify a value of a variable of group, and where it comes from.
        usage: /<command> <group> <variable>
        permission: groupmanager.mangckeckv
      manwhois:
        description: Tell the group that user belongs.
        usage: /<command> <player>
        permission: groupmanager.manwhois
      tempadd:
        description: Creates a temporary permission copy for that user.
        usage: /<command> <player>
        permission: groupmanager.tempadd
      tempdel:
        description: Remove the temporary permission copy for player.
        usage: /<command> <player>
        permission: groupmanager.tempdel
      templist:
        description: List players in overload-permissions mode made by /tempadd.
        usage: /<command>
        permission: groupmanager.templist
      tempdelall:
        description: Remove all overrides made by command /tempadd.
        usage: /<command>
        permission: groupmanager.tempdelall
      mansave:
        description: Save all permissions on file.
        usage: /<command>
        permission: groupmanager.mansave
      manload:
        description: Reload current world and config.yml. Or load given world.
        usage: /<command> [world]
        permission: groupmanager.manload
      listgroups:
        description: List the groups available.
        usage: /<command>
        permission: groupmanager.listgroups
      manpromote:
        description: Promote a player in the same heritage line to a higher rank.
        usage: /<command> <player> <group>
        permission: groupmanager.manpromote
      mandemote:
        description: Demote a player in the same heritage line to a lower rank.
        usage: /<command> <player> <group>
        permission: groupmanager.mandemote
      mantogglevalidate:
        description: Toggle on/off the validating if player is online.
        usage: /<command>
        permission: groupmanager.mantogglevalidate
      mantogglesave:
        description: Toggle on/ff the autosave.
        usage: /<command>
        permission: groupmanager.mantogglesave
      manworld:
        description: Prints the selected world name
        usage: /<command>
        permission: groupmanager.manworld
      manselect:
        description: Select a world to work with next commands.
        usage: /<command> <world>
        permission: groupmanager.manselect
      manclear:
        description: Clear world selection. Next commands will work on your world.
        usage: /<command>
        permission: groupmanager.manclear
    All commands that changes permissions only allow you to change users below in a inheritance level(eg. Admins can't mod other Admins, but can modify Moderators).
    Except for Console, he can modify anyone.

    So, what happens with all of these plugins that already use Permissions?
    They will still work. I made a fake Permissions plugin, that will replace your old Permissions plugin. And the new fake one will attach directly on GroupManager system. So all plugins will think they are working with Permissions, but they will work with GroupManager.
    The most incredible thing is that all those plugins will receive the benefit of instant changes.

    I'm a server Administrator, what should I do to use it?
    If you already have Permissions, do this:
    1. Remove Permissions.jar from you plugins folder. (leave the Permissions folder there, if it is named diferently than this, the automatic import will not work)
    2. Paste GroupManager.jar with FakePermissions.jar on your plugins folder.
    3. Run.
    4. With all file structure done, you create your worlds folder and copy your files there.

    All your old plugins will still work like a charm.

    I'm a plugin developer, how should I use this plugin?
    You can read the java-doc, linked below. It's not complete yet, but it has the essential.
    Here is some code examples...

    Loading in your plugin:
    Code:
    import org.anjocaido.groupmanager.GroupManager;
    import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder;
    import org.anjocaido.groupmanager.dataholder.WorldDataHolder;
    public void onEnable() {
            Plugin p = this.getServer().getPluginManager().getPlugin("GroupManager");
            if (p != null) {
                if (!this.getServer().getPluginManager().isPluginEnabled(p)) {
                    this.getServer().getPluginManager().enablePlugin(p);
                }
                GroupManager gm = (GroupManager) p;
                WorldsHolder wd = gm.getWorldsHolder();
            } else {
                this.getPluginLoader().disablePlugin(this);
            }
        }
    WorldsHolder contains everything you need. You can easily do anything with it.

    Here is a example of a plugin that in a special circumstance, needed to put the player in a special group, with no permissions at all.
    Code:
    public void markAsNotLoggedIn(Player player) {
                OverloadedWorldHolder perm = gm.getWorldsHolder().getWorldData(player);
                Group lockDown = perm.getGroup("NotLoggedIn");
                if(lockDown == null){
                    lockDown = perm.createGroup("NotLoggedIn");
                }
                perm.overloadUser(player.getName());
                perm.getUser(player.getName()).setGroup(lockDown);
        }
    From now on the user is in this special group. And every change on him is temporary. Until the code below is executed.
    Code:
    public void restorePermissions(Player player){
                OverloadedWorldHolder perm = gm.getWorldsHolder().getWorldData(player);
                perm.removeOverload(player.getName());
        }
    And, finally, how to check a user permission:
    Code:
    public boolean canChangeGroup(Player player){
                return gm.getWorldsHolder().getWorldPermissions(player).has(player,"groupmanager.mangroup");
        }
    F.A.Q.
    Q: It is compatible with permissions... but where it get it's data from?
    - A: It gets from users.yml and groups.yml in the world folder, located properly inside GroupManager worlds folder.
    Q: Can I use commands from other plugins to change permissions?
    - A: No. I made the decision to store data in GroupManager folder because I don't think it is right my plugin mess around with other ones files. Unfortunately, other plugins of group modification tries to access other files than mine.

    Changelog:
    Version 1.0 alpha-5:
    • Fixed a bug in method String[] groups(groupName)
    • Added some functionality to Tasks class
    • Fixed some errors in JavaDoc
    • Changed templates to make use of Roles plugin
    Show Spoiler

    Version 1.0 alpha-4:
    • Fixed subgroups listing when using /manulistp
    Version 1.0 alpha-3:
    • Basic user multigroup support using subgroups concept.
    • Added tracking for minor bugs.
    Version 1.0 alpha-2:
    • Now /manload reloads config.yml(which means mirror configuration receives updates too).
    Version 1.0 alpha:
    • Fixed some issues with /manpromote and /mandemote for multiples inheritances
    • Added permission node for commands in plugin.yml. So the newer EssentialsHelp feature I created will filter commands that people don't have(dev #688).
    Version 1.0 pre-alpha-3:
    • Now /manucheckp and /mangcheckp tells you if the permission was negated by a negation node.
    • Now using Breadth-first search for inheritance harvest. It guarantees that closer groups in inheritance are checked first.
    • Fixed some bugs, where a negation node directly in a user could be ignored.
    • Now it reads old data.yml and auto-install it to default world if none is found.
    • Created a system where plugins can get detailed answers from a permission check.
    • Deprecated some inefficient methods(all of them redirects to the new efficient method), but they still works.
    Version 1.0 pre-alpha-2:
    • World selection is optional, except for console.
    • Not selecting a world makes it run on same world of the command sender.
    • Fixed "temporary permissions" system.
    • Fixed most of commands bugs(I fixed all errors I could see)
    • Fake Permissions says it's 2.5 now, so plugins like HeroChat works now(yay).
    • Fixed some unnecessary file saves.
    • Added /manclear to clear selection
    • /manselect now lists physical worlds if no parameters are given.
    • /manload can load a world not loaded before, if given a parameter.
    Version 1.0 pre-alpha:
    • Refactored a lot of things. Please check the java-docs.
    • Added multiworld support.
    • Split files in users.yml and data.yml
    • Saves only files that needs changes
    • Fixed some bugs
    • World mirroring
    • Basic commands for world selection, to keep old commands working.
    Version 0.99d:
    • Fixed more small bugs.
    • Saves in human readable format
    • Deletes backups older than 24 hours
    Version 0.99c:
    • Fixed small bugs. Like /mangaddi
    • Changed some classes package
    Version 0.99b:
    • Fixed Group Variables, that I broke last version.(restore your backups, yay)
    Version 0.99a:
    • User specific variables. Prefixes, Suffixes and more.
    • Negative permission node(prevails normal nodes). Like '-groupmanager.*'
    • Exception permission node(prevails negative nodes). Like '+groupmanager.manpromote'
    Version 0.9e:
    • It writes a template it self if doesn't find any data.yml file on the folder.
    Version 0.9d:
    • FakePermissions adapted to new CB builds.
    Version 0.9c:
    • Multiple inheritance fixed.
    • Added a command to toggle auto-saving, so you can edit the file while it is disabled.
    • Tested with server 1.3
    Version 0.9b:
    • Now variables work with spaced strings.(you can add prefix with spaces)
    • Fixed some errors while loading files in later 400+ builds.
    • FakePermissions got small update.
    Version 0.9:
    • Added variables manipulation command(things in info node, such as prefix, suffix, build, and custom ones)
    • Improved FakePermissions support for the Nijikokun's original one.
    • FakePermissions force loading of GroupManager before itself.
    Version 0.8:
    • Added tons of commands. Resulting in a complete control, inside the game.
    • Renamed some commands in the same format Wulfspider sugested.
    • FakePermissions.jar updated to take care oc Misc field, which some Permissions plugins need.
    Version 0.7:
    • Added commands /manpromote and /mandemote
    • Fixed a bug where a file with an empty permissions node in a group could fail the plugin to load.
    • now /addpermissions can only add permissions that the player have access.
    Version 0.6c:
    • Removed the debugging messages that occurs while other plugins check permissions.
    • Removed the debugging messages on FakePermissions
    Version 0.6b:
    • Fixed inheritance system I broke in 0.6. Sorry.
    Version 0.6:
    • Fixed some bugs
    • User/Group class modelled in tiny different way(check JavaDocs)
    • Commands work on Console
    Version 0.5:
    • First fully working release.


    Future plans (they are closer than you think):
    • Make commands for cloning files, and world mirroring.
    • Implements Nijiko's interface for permission changing.
    • Make it work, optionally, with SQLite/MySQL(thinking of Persistence plugin, anyone with ideas?).

    Latest Build Download:
    http://www.mdn.fm/files/276497_as2zr/GroupManager-1.0-alpha-5.zip


    ===========================================
    Other Downloads:
    Java Doc:
    http://www.mdn.fm/files/276266_vqd0d/JavaDoc-GroupManager-1.0-alpha-3.zip

    ===========================================
    Plugins I love to use with GroupManager:
    Roles, Essentials, AntiGrief, iChat, MultiVerse, WorldEdit and WorldProtect.


    ===========================================
    Source:
    https://github.com/gmcouto/GroupManager
    Fake Permissions Source:
    https://github.com/gmcouto/FakePermission
     
    TNC, Kohle, pat8u and 17 others like this.
  2. Offline

    AmazingHayman

    Only have a little question:

    I want to make a Group, which can't build.
    What do I have to change in the .yaml?
    Every Group has "build: false". Also the Admin Group. I'm in the Admin Group but I still can build.
     
  3. Offline

    naosia

    Okay, I think I know what's causing it. In the guest rank, I've set -groupmanager.* to restrict access to groupmanager for all ranks (The op rank doesn't inherit anything, it simply has the '*' permission). How would I go about to do this in a better way? All other ranks inherit the commands all the way up to admin. (guest->reg->trusted-> etc.)

    *Edit: Okay, that wasn't it... Any suggestions?
     
  4. Offline

    jwideman

    GroupManager, like Permissions, doesn't do this by itself. You need something like AntiGrief.
     
  5. Offline

    sageza

    hi all, got a little problem with groupmanager,
    everyone has admin powers even without giving them permissions

    here is my data.yml config file
    please help

    Show Spoiler

    users:
    sageza:
    permissions: []
    group: Realm-Hero
    groups:
    Lord:
    default: false
    permissions: [essentials.kit.lord, essentials.tpohere, essentials.setwarp, essentials.tp,
    essentials.tphere, essentials.warp, general.time, general.player-info]
    inheritance: [peasant]
    info: {prefix: '&9', build: true, suffix: '&f'}
    Peasant:
    default: true
    permissions: [essentials.afk, essentials.compass, essentials.help, essentials.helpop,
    essentials.home, essentials.kit, essentials.kit.peasant, essentials.list, essentials.mail,
    essentials.motd, essentials.msg, essentials.rules, essentials.sethome, essentials.spawn,
    essentials.spawn, essentials.whois, iConomy.acces, iConomy.list, iConomy.payment,
    iConomy.rank, lwc.protect]
    inheritance: []
    info: {prefix: '&f', build: true, suffix: '&f'}
    Realm-Hero:
    default: false
    permissions: ['*']
    inheritance: [lord]
    info: {prefix: '&4', build: true, suffix: '&f'}
    plugin:
    permissions: {system: default}


    thnx
     
  6. Offline

    Largestill

    I am having the exact same problem!

    Show Spoiler

    users:
    Largestill:
    group: Admin
    permissions: []
    info: {prefix: '&cAdmin - ', suffix: 'The shit'}
    groups:
    Default:
    default: true
    permissions: [essentials.spawn, essentials.motd, essentials.help, essentials.home,
    essentials.sethome]
    inheritance: []
    info: {prefix: '&9Guest', build: false, suffix: ''}
    SemiAdmin:
    default: false
    permissions: [+groupmanager.mandemote, +groupmanager.manpromote, -groupmanager.*,
    '*']
    inheritance: [Mods]
    info: {prefix: '', build: false, suffix: ''}
    Admins:
    default: false
    permissions: ['*']
    inheritance: []
    info: {prefix: Admin, build: false, suffix: ''}
    Mods:
    default: false
    permissions: [essentials.tp, essentials.tphere, essentials.item, essentials.give]
    inheritance: [Default]
    info: {prefix: '&6Mod - ', build: false, suffix: ''}
    plugin:
    permissions: {system: default}


    naosia or jwideman could you post your code so I could see what a (mostly) working code looks like?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 9, 2016
  7. Offline

    jwideman

    Looking at your files, I can't see anything wrong. Are you sure GroupManager is loading? Can you use the commands in game?
     
  8. Offline

    sageza

    yep, i just restarted my server to doublecheck and its loaded
     
  9. Offline

    jwideman

    Okay, here's an idea...
    First, backup your data.yml
    Second, remove ALL the permissions. Have only '*' for admin. Then start the server and see if players still have access to admin commands.
     
  10. Offline

    sageza

    done that and they all still have admin powers

    Show Spoiler

    users:
    sageza:
    permissions: []
    group: Realm-Hero
    groups:
    Lord:
    default: false
    permissions: []
    inheritance: [peasant]
    info: {prefix: '&9', build: true, suffix: '&f'}
    Peasant:
    default: true
    permissions: []
    inheritance: []
    info: {prefix: '&f', build: true, suffix: '&f'}
    Realm-Hero:
    default: false
    permissions: ['*']
    inheritance: [lord]
    info: {prefix: '&4', build: true, suffix: '&f'}
    plugin:
    permissions: {system: default}
     
  11. Offline

    Largestill

    It's loading with no errors and I can switch my username into different groups, and when I talk, I can see the changes in the name prefix .

    However, even as a guest I can use ALL Essential commands.

    Okay I'll try that now.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 9, 2016
  12. Offline

    jwideman

    Ah ha!
    Please list all your plugins.
     
  13. Offline

    sageza

    authorize.jar
    essentials.jar
    essentialsban.jar
    essentialshelp.jar
    essentialshome.jar
    essentialsspawn.jar
    essentialstele.jar
    essentialswarp.jar
    fakepermissions.jar
    groupmanager.jar
    ichat.jar
    iconomy.jar
    lwc.jar
    magiccarpet.jar
    whitelist.jar
    worldedit.jar
     
  14. Offline

    Largestill

    I'm only using:

    essentials.jar
    essentialsban.jar
    essentialschat.jar
    essentialshelp.jar
    essentialshome.jar
    essentialsspawn.jar
    essentialstele.jar
    essentialswarp.jar
    fakepermissions.jar
    groupmanager.jar
     
  15. Offline

    jwideman

    What do you have in your ops.txt
     
  16. Offline

    sageza

    sageza
     
  17. Offline

    Largestill

    ah shit. I did just notice I am using 0.99b.
    I am downloading the 0.99c now.
    back shortly.

    okay, I've downloaded the 0.99c and I changed NOTHING in the data.yml file and it's currently working that guests cannot do anything. :D

    At least now I have something to move forward off of.
    I'll just have to be extra careful adding entries.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 9, 2016
  18. Offline

    jwideman

    @sageza: The only thing I can think of is to make sure you're using the right version.
     
  19. Offline

    d3x

    Code:
    2011-02-26 15:35:39 [INFO] GroupManager - Backing up your data...
    2011-02-26 15:35:39 [INFO] GroupManager - Backup done!
    2011-02-26 15:35:39 [INFO] GroupManager - Saving your data...
    2011-02-26 15:35:39 [INFO] GroupManager - Saving done!
    2011-02-26 15:45:39 [INFO] GroupManager - Backing up your data...
    2011-02-26 15:45:39 [INFO] GroupManager - Backup done!
    2011-02-26 15:45:39 [INFO] GroupManager - Saving your data...
    2011-02-26 15:45:39 [INFO] GroupManager - Saving done!
    2011-02-26 15:55:39 [INFO] GroupManager - Backing up your data...
    2011-02-26 15:55:39 [INFO] GroupManager - Backup done!
    2011-02-26 15:55:39 [INFO] GroupManager - Saving your data...
    2011-02-26 15:55:39 [INFO] GroupManager - Saving done!
    2011-02-26 16:05:39 [INFO] GroupManager - Backing up your data...
    2011-02-26 16:05:39 [INFO] GroupManager - Backup done!
    2011-02-26 16:05:39 [INFO] GroupManager - Saving your data...
    2011-02-26 16:05:39 [INFO] GroupManager - Saving done!
    2011-02-26 16:15:39 [INFO] GroupManager - Backing up your data...
    2011-02-26 16:15:39 [INFO] GroupManager - Backup done!
    2011-02-26 16:15:39 [INFO] GroupManager - Saving your data...
    2011-02-26 16:15:39 [INFO] GroupManager - Saving done!
    2011-02-26 16:25:39 [INFO] GroupManager - Backing up your data...
    2011-02-26 16:25:39 [INFO] GroupManager - Backup done!
    2011-02-26 16:25:39 [INFO] GroupManager - Saving your data...
    2011-02-26 16:25:39 [INFO] GroupManager - Saving done!
    Code:
    [mcsmp@anubis ~]$ ls server2/plugins/GroupManager/backup
    bkpperm1298503987258.yml  bkpperm1298544338535.yml  bkpperm1298583340807.yml  bkpperm1298621064011.yml  bkpperm1298659540605.yml  bkpperm1298697939483.yml
    bkpperm1298504977494.yml  bkpperm1298544938535.yml  bkpperm1298583940807.yml  bkpperm1298621738906.yml  bkpperm1298660140605.yml  bkpperm1298698539483.yml
    bkpperm1298505577493.yml  bkpperm1298546138484.yml  bkpperm1298584540807.yml  bkpperm1298622338906.yml  bkpperm1298660740605.yml  bkpperm1298699139483.yml
    bkpperm1298506177493.yml  bkpperm1298546738484.yml  bkpperm1298585140807.yml  bkpperm1298622938906.yml  bkpperm1298661340605.yml  bkpperm1298699739483.yml
    bkpperm1298506777493.yml  bkpperm1298547338484.yml  bkpperm1298585740807.yml  bkpperm1298623538906.yml  bkpperm1298661940605.yml  bkpperm1298700339483.yml
    bkpperm1298507377493.yml  bkpperm1298547938484.yml  bkpperm1298586340807.yml  bkpperm1298624138906.yml  bkpperm1298662540607.yml  bkpperm1298700939483.yml
    bkpperm1298507977493.yml  bkpperm1298548538484.yml  bkpperm1298586940807.yml  bkpperm1298624738906.yml  bkpperm1298663140605.yml  bkpperm1298701539483.yml
    bkpperm1298508577493.yml  bkpperm1298549138484.yml  bkpperm1298587540807.yml  bkpperm1298625338906.yml  bkpperm1298663740605.yml  bkpperm1298702139483.yml
    bkpperm1298509177493.yml  bkpperm1298549738484.yml  bkpperm1298588140807.yml  bkpperm1298625938906.yml  bkpperm1298664340606.yml  bkpperm1298702739483.yml
    bkpperm1298510139753.yml  bkpperm1298550338484.yml  bkpperm1298588740807.yml  bkpperm1298626538906.yml  bkpperm1298664940605.yml  bkpperm1298703339483.yml
    bkpperm1298510739753.yml  bkpperm1298550938484.yml  bkpperm1298589340807.yml  bkpperm1298627138906.yml  bkpperm1298665540605.yml  bkpperm1298703939483.yml
    bkpperm1298511339752.yml  bkpperm1298551538484.yml  bkpperm1298589940807.yml  bkpperm1298627738906.yml  bkpperm1298666140605.yml  bkpperm1298704539483.yml
    bkpperm1298511939753.yml  bkpperm1298552138484.yml  bkpperm1298590540807.yml  bkpperm1298628338906.yml  bkpperm1298666740605.yml  bkpperm1298705139483.yml
    bkpperm1298512539752.yml  bkpperm1298552738484.yml  bkpperm1298591140807.yml  bkpperm1298628938906.yml  bkpperm1298667340605.yml  bkpperm1298705739483.yml
    bkpperm1298513139752.yml  bkpperm1298553338484.yml  bkpperm1298591740807.yml  bkpperm1298629538906.yml  bkpperm1298667940605.yml  bkpperm1298706339483.yml
    bkpperm1298513739752.yml  bkpperm1298553938484.yml  bkpperm1298592340807.yml  bkpperm1298630138906.yml  bkpperm1298668540605.yml  bkpperm1298706939483.yml
    bkpperm1298514339752.yml  bkpperm1298554538484.yml  bkpperm1298592940807.yml  bkpperm1298630738906.yml  bkpperm1298669140605.yml  bkpperm1298708139093.yml
    bkpperm1298514939753.yml  bkpperm1298555138484.yml  bkpperm1298593540807.yml  bkpperm1298631338906.yml  bkpperm1298669740605.yml  bkpperm1298708739093.yml
    bkpperm1298515539753.yml  bkpperm1298555738484.yml  bkpperm1298594140807.yml  bkpperm1298632539332.yml  bkpperm1298670340605.yml  bkpperm1298709339095.yml
    bkpperm1298516139753.yml  bkpperm1298556338484.yml  bkpperm1298594740807.yml  bkpperm1298633139331.yml  bkpperm1298670940605.yml  bkpperm1298709939093.yml
    bkpperm1298517339456.yml  bkpperm1298556938484.yml  bkpperm1298595340807.yml  bkpperm1298633739331.yml  bkpperm1298671540605.yml  bkpperm1298710539093.yml
    bkpperm1298517939456.yml  bkpperm1298557538484.yml  bkpperm1298595940807.yml  bkpperm1298634339331.yml  bkpperm1298672140605.yml  bkpperm1298711139093.yml
    bkpperm1298518539456.yml  bkpperm1298558138484.yml  bkpperm1298596540807.yml  bkpperm1298634939331.yml  bkpperm1298672740605.yml  bkpperm1298711739093.yml
    bkpperm1298519139542.yml  bkpperm1298558738484.yml  bkpperm1298597140807.yml  bkpperm1298635539331.yml  bkpperm1298673340605.yml  bkpperm1298712339093.yml
    bkpperm1298519762342.yml  bkpperm1298559338484.yml  bkpperm1298597740807.yml  bkpperm1298636139331.yml  bkpperm1298673940605.yml  bkpperm1298712939093.yml
    bkpperm1298520339456.yml  bkpperm1298559938484.yml  bkpperm1298598340807.yml  bkpperm1298636739331.yml  bkpperm1298674540605.yml  bkpperm1298713539093.yml
    bkpperm1298520939626.yml  bkpperm1298560538484.yml  bkpperm1298598940807.yml  bkpperm1298637339331.yml  bkpperm1298675740178.yml  bkpperm1298714139093.yml
    bkpperm1298521549937.yml  bkpperm1298561138484.yml  bkpperm1298599540807.yml  bkpperm1298637939331.yml  bkpperm1298676340177.yml  bkpperm1298714739093.yml
    bkpperm1298522139456.yml  bkpperm1298561738484.yml  bkpperm1298600140807.yml  bkpperm1298638539331.yml  bkpperm1298676940177.yml  bkpperm1298715339093.yml
    bkpperm1298522739456.yml  bkpperm1298562338484.yml  bkpperm1298600740807.yml  bkpperm1298639139331.yml  bkpperm1298677540177.yml  bkpperm1298715939093.yml
    bkpperm1298523339456.yml  bkpperm1298562938484.yml  bkpperm1298601864011.yml  bkpperm1298639739331.yml  bkpperm1298678140177.yml  bkpperm1298716539093.yml
    bkpperm1298523949134.yml  bkpperm1298563538484.yml  bkpperm1298602464011.yml  bkpperm1298640339331.yml  bkpperm1298678740177.yml  bkpperm1298717139093.yml
    bkpperm1298524539657.yml  bkpperm1298564138484.yml  bkpperm1298603064307.yml  bkpperm1298640939331.yml  bkpperm1298679340177.yml  bkpperm1298717739093.yml
    bkpperm1298525139456.yml  bkpperm1298564738484.yml  bkpperm1298603664011.yml  bkpperm1298641539331.yml  bkpperm1298679940177.yml  bkpperm1298718939541.yml
    bkpperm1298527476307.yml  bkpperm1298565338484.yml  bkpperm1298604264011.yml  bkpperm1298642139331.yml  bkpperm1298680540177.yml  bkpperm1298719539540.yml
    bkpperm1298528076307.yml  bkpperm1298565938484.yml  bkpperm1298604864011.yml  bkpperm1298642739331.yml  bkpperm1298681140177.yml  bkpperm1298720139540.yml
    bkpperm1298528676307.yml  bkpperm1298566538484.yml  bkpperm1298605464011.yml  bkpperm1298643339331.yml  bkpperm1298681740177.yml  bkpperm1298720739540.yml
    bkpperm1298529276307.yml  bkpperm1298567739413.yml  bkpperm1298606064011.yml  bkpperm1298643939331.yml  bkpperm1298682340177.yml  bkpperm1298721339540.yml
    bkpperm1298529876307.yml  bkpperm1298568339412.yml  bkpperm1298606664011.yml  bkpperm1298644539331.yml  bkpperm1298682940177.yml  bkpperm1298721939540.yml
    bkpperm1298530476306.yml  bkpperm1298568939412.yml  bkpperm1298607264011.yml  bkpperm1298645139331.yml  bkpperm1298683540177.yml  bkpperm1298722539540.yml
    bkpperm1298531076307.yml  bkpperm1298569539412.yml  bkpperm1298607864011.yml  bkpperm1298645739331.yml  bkpperm1298684140177.yml  bkpperm1298723139540.yml
    bkpperm1298531676307.yml  bkpperm1298570139413.yml  bkpperm1298608464011.yml  bkpperm1298646339331.yml  bkpperm1298684740177.yml  bkpperm1298723739540.yml
    bkpperm1298532276307.yml  bkpperm1298570739412.yml  bkpperm1298609064011.yml  bkpperm1298646939331.yml  bkpperm1298685340177.yml  bkpperm1298724339540.yml
    bkpperm1298532876307.yml  bkpperm1298571339412.yml  bkpperm1298609664011.yml  bkpperm1298647539331.yml  bkpperm1298685940177.yml  bkpperm1298724939540.yml
    bkpperm1298533476307.yml  bkpperm1298571939412.yml  bkpperm1298610264011.yml  bkpperm1298648139331.yml  bkpperm1298686540177.yml  bkpperm1298725539540.yml
    bkpperm1298534076307.yml  bkpperm1298572539413.yml  bkpperm1298610864011.yml  bkpperm1298648739331.yml  bkpperm1298687140177.yml  bkpperm1298726139540.yml
    bkpperm1298534676307.yml  bkpperm1298573139412.yml  bkpperm1298611464011.yml  bkpperm1298649339331.yml  bkpperm1298687740177.yml  bkpperm1298726739540.yml
    bkpperm1298535338536.yml  bkpperm1298573739412.yml  bkpperm1298612064011.yml  bkpperm1298649939332.yml  bkpperm1298688340177.yml  bkpperm1298727339540.yml
    bkpperm1298535938535.yml  bkpperm1298574339413.yml  bkpperm1298612664011.yml  bkpperm1298650539331.yml  bkpperm1298688940177.yml  bkpperm1298727939540.yml
    bkpperm1298536538535.yml  bkpperm1298574939412.yml  bkpperm1298613264011.yml  bkpperm1298651139331.yml  bkpperm1298689540177.yml  bkpperm1298728539540.yml
    bkpperm1298537138535.yml  bkpperm1298575539413.yml  bkpperm1298613864011.yml  bkpperm1298651739331.yml  bkpperm1298690140177.yml  bkpperm1298729739269.yml
    bkpperm1298537738535.yml  bkpperm1298576139412.yml  bkpperm1298614464011.yml  bkpperm1298652339331.yml  bkpperm1298690740177.yml  bkpperm1298730339268.yml
    bkpperm1298538338535.yml  bkpperm1298576739413.yml  bkpperm1298615064011.yml  bkpperm1298652939331.yml  bkpperm1298691340205.yml  bkpperm1298730939268.yml
    bkpperm1298538938535.yml  bkpperm1298577339412.yml  bkpperm1298615664011.yml  bkpperm1298654140606.yml  bkpperm1298691940177.yml  bkpperm1298731539268.yml
    bkpperm1298539538535.yml  bkpperm1298578540808.yml  bkpperm1298616264011.yml  bkpperm1298654740605.yml  bkpperm1298692540177.yml  bkpperm1298732139268.yml
    bkpperm1298540138535.yml  bkpperm1298579140807.yml  bkpperm1298616864011.yml  bkpperm1298655340605.yml  bkpperm1298693140177.yml  bkpperm1298732739268.yml
    bkpperm1298540738535.yml  bkpperm1298579740807.yml  bkpperm1298617464011.yml  bkpperm1298655940605.yml  bkpperm1298693740177.yml  bkpperm1298733339268.yml
    bkpperm1298541338535.yml  bkpperm1298580340807.yml  bkpperm1298618064011.yml  bkpperm1298656540605.yml  bkpperm1298694340177.yml  bkpperm1298733939268.yml
    bkpperm1298541938535.yml  bkpperm1298580940807.yml  bkpperm1298618664011.yml  bkpperm1298657140608.yml  bkpperm1298694940177.yml
    bkpperm1298542538535.yml  bkpperm1298581540807.yml  bkpperm1298619264011.yml  bkpperm1298657740607.yml  bkpperm1298695540177.yml
    bkpperm1298543138535.yml  bkpperm1298582140807.yml  bkpperm1298619864011.yml  bkpperm1298658340605.yml  bkpperm1298696140177.yml
    bkpperm1298543738535.yml  bkpperm1298582740807.yml  bkpperm1298620464011.yml  bkpperm1298658940605.yml  bkpperm1298697339483.yml
    [mcsmp@anubis ~]$
    Could you add the option to disable the periodic saving and backups PLEASE?
     
  20. Offline

    PipeHead

    What would be really super awesome nice is to have a command to add a new user. Like another post in this thread, if I shutdown my server and manually add a user...then start up my server...the user is deleted from the data.yml file.

    Very frustrating, especially since there is no command to add a user. Managing groups doesn't seem to be all that effective if you don't have users associated with those groups?
     
  21. Offline

    Largestill

    @sageza: may advice is download a new version, start the server allow it to make a new data.yml, don't edit the data file and log in. Check to see if, as a guest player, if you can do commands normally restricted.
    Like /kill [yournamehere].
    If you cannot do that, then you are on the right track and just have to be SUPER careful editing the data file.

    If you CAN kill yourself, there is something else wrong entirely.
     
  22. Offline

    enjikaka

    WTF! I edit the data.yml. Restart my server. And nothing happens. I open data.yml again. and the default things is in there! WTF??!?!
     
  23. Offline

    StoutyAlex

    Can you have colours for names like &c?
     
  24. Offline

    PipeHead

    @StoutyAlex: please do not quote the OP...that's very bad forum etiquette!
     
  25. Offline

    KimKandor

    Why did you quote the whole post?














    if you have some chat plugin enables sure. example: essentials.chat
     
  26. Offline

    jwideman

    Or at least not announce it. My log is FULL of these messages and it's really not necessary.
     
  27. Offline

    fitofinsanity

    You spelled validate wrong [​IMG]
    Code:
    >mantogglevalidate
    11:16:08 [INFO] Validade if player is online, now set to: false
     
  28. Offline

    Kevin Forte

    Hello, I have been sent by my cmd prompt to ask you to post the update source for your plugin here. (Links to the CraftBukkitUpToDate plugin forum, apparently the dev implemented plugin updating)
     
  29. Offline

    RomaClanServer

    I am having a major problem when adding groups for clans/clan leaders to my server. All of the sudden I have errors pointing to the fact that the data.yml is in the wrong format but I have scoured it and redone it 3 times trying to get it to work which leads me to believe that I am either doing something wrong or for some reason the order of the groups and the inheritance is screwing the plugin up. Any suggestions? also, i know that the attached file is a txt, not a yml.
     

    Attached Files:

  30. Offline

    StoutyAlex

    Yeh sorry for doing tht :( well is there any colours in this plugin? :)
     
  31. Offline

    Mister Tickles

Thread Status:
Not open for further replies.

Share This Page