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

    revolucas

    Thank you. That clarifies alot.

    But one thing. Does the <world name> have to match the <world name> of the minecraft world folder? I think that's the problem as Clanforge is an automated system that generates and manages files. It has to be a static name. They do this to limit access to files and protect their servers from the end user.

    I guess most people's world folder is named world anyway...Hmmm.
     
  3. Offline

    Kane

    @AnjoCaido there is a bug with the suffix prefix stuff it does not seam to work and no we don't use essentials :)
     
  4. Offline

    FlingeR

    hello, is there any way to deny PvP in a group?
    Thanks for the help !
     
  5. Offline

    piousminion

    I have this problem too. Suffix, Prefix, and colors don't seem to work at all. I don't use Essentials either.
    Using the latest recommended builds for a while now and it has never worked.
     
  6. Offline

    inviktus

    Ah, thank you for getting it :)

    My apologies Sir, I was unaware that providing an answer to a simple question would be such a heavy burden on the lives of so many. Apparently typing "/togglevalidation" is too great a task for you..
    Thankfully another by the name of fugue2005 did not seem to think so.
    If being helpful is beyond you, perhaps remaining silent would be better suited to you.

    Good day, Sir.

    If you use a plugin by the name of "antigrief" it is possible to disallow actions such as PVP by group.
    You can find antigrief here:
    http://forums.bukkit.org/threads/se...asures-with-polygon-zone-protection-527.3893/

    Hope that was of some use to you.

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

    TipsyFairy

    Do i have to delete my Permissions.jar ? And it wont work if im using Essentials ? Thanks !
     
  8. Offline

    Arjan

    Guys can some1 tell me how to change the default so they can't even use the spawn nor any other commands? plz send me ur default codes i want to put people in jail and so they cant spawn away.. plz help!
     
  9. Offline

    piousminion

    Read every single word of the first post. If you don't understand something it says, then ask. Us repeating things that are in the first post won't help anyone.
     
  10. Offline

    FlingeR

  11. Offline

    BigRedWood

    Another double digit IQ holder who cannot detect sarcasm.

    Move along little kid, adults are working here.
     
  12. Offline

    ledhead900

    I'm Stuck with getting this to mirron users.yml accross all worlds.

    I'm not sure exactly how to use mirroring I read about it but its not making sense do I rename these mirrors to our REAL world names or what is the go with that.

    For instance

    here is what I need done

    RiftZero- Default - NO BUILD Ranked - Seperate Groups.yml
    TheAbyss - Mirror RiftZero Users.yml
    world - Mirron Riftzero Users.yml


    Im not sure how to do this I dont want BOTH configs mirrored I only want Users file to pass down to EACH world so that when I Rank players in Defualt it also applys to the other worlds and I do not need to Rank them in each world.

    It would be nice if you could Mirror new Permissions in a defualt worlds group as well so that I did not have to set it same commands for each world when I add new ones, Mirroring to me seems very limited as I dont want the Build rights to be mirrored I only want new Permisison commands mirrored between all worlds as well update user.yml across worlds as well.
     
  13. Offline

    Mateo-theFox

    Hello, I am having some problems with this awesome plugin.
    I believe I have everything typed up correctly in the groups file, but I am getting a lot of errors.
    The main one is "The Following file couldn't pass on Parser" and it referred to my groups file.
    Here is my configuration for the file:

    groups:
    Private:
    default: ture
    info:
    build: true
    prefix: '&f'
    suffix: '&f'
    inheritance:
    permissions:
    - general.help
    - general.list
    - general.me
    - general.tell
    Corporal:
    default: false
    info:
    build: true
    prefix: '&9'
    suffix: '&f'
    inheritance:
    - Private
    permissions:
    - mywarp.warp.basic.compass
    - mywarp.warp.basic.list
    - mywarp.warp.basic.warp
    - mywarp.warp.sign.warp
    - mywarp.warp.soc.give
    - mywarp.warp.soc.invite
    - mywarp.warp.soc.private
    - mywarp.warp.soc.public
    - mywarp.warp.soc.uninvite
    Sergeant:
    default: false
    info:
    build: true
    prefix: '&4'
    suffix: '&f'
    inheritance:
    - Private
    - Corporal
    permissions:
    - general.player-info
    - mywarp.warp.sign.create
    Lieutenant:
    default: false
    info:
    build: true
    prefix: '&6'
    suffix: '&7'
    inheritance:
    - Private
    - Corporal
    - Sergeant
    permissions:
    - general.teleport
    - general.teleport.here
    - general.time
    Major:
    default: false
    info:
    build: true
    prefix: '&1'
    suffix: '&7'
    inheritance:
    - Private
    - Corporal
    - Sergeant
    - Lieutenant
    permissions:
    - general.give
    General:
    default: false
    info:
    build: true
    prefix: '&6'
    suffix: '&6'
    inheritance:
    permissions:
    - mywarp.*
    - general.*
    Master:
    default: false
    info:
    build: true
    prefix: '&1'
    suffix: '&7'
    inheritance:
    - Private
    - Corporal
    - Sergeant
    - Lieutenant
    permissions:

    This configuration has worked before but now its not. I'm confused.
     
  14. Offline

    piousminion


    All of the spaces and tabs are very important. If you change them it will not work. Run your config through this parser and it will help you figure out where your error is. http://yaml-online-parser.appspot.com/
     
  15. Offline

    n4Ghost

  16. Offline

    guitarist123093

    It works for me for about an hour or so. But just now for the second time the spacing and order of everything changed so it looks like all of the "Enter"s are gone. What's going on?
     
  17. Offline

    inviktus

    You are welcome :)

    lol.. sad. I believe it was you who missed my sarcasm, all of it.
    I guess that means you must have a double digit IQ, too?

    Anyway this is no place for gentlemanly internet sparring.
     
  18. Offline

    turtlelink2

    because
    Same here, a few pages back I posted the exact same request with no response, I believe that currently you cannot mirror one or the other, only both. sucks I know...Although I could be totally wrong and feeding you a bunch of junk, someone feel free to tell me if I am
     
  19. Offline

    SondreHG

    Hi.. So I got my server up running.. But!
    I installed this plugin, wishing to create groups.. But im setting up the groups, saving, then running the server, but nothing works!
    If anyone can make me groups.yml and users.yml files to me, it'll be great!
    Groups shall be: Admin: (Colour #c)Can do EVERYTHING. Member: (Colour #1)Can du the basic stuff. Guest: (Colour #7) Can chat, and walk around.. Not destroy anything.

    Thanks on forehand.
    Sondre
     
  20. Offline

    KaWHL

    Now, I am having a lot of trouble with this plugin.
    I don't know exactly what I am doing wrong, but I cannot seem to get Group Manager to be recognized at all.
    All my users are default, but I have marked their respective groups in the groups.yml and users.yml
    What is going on?
    Code for source and possible help:
    groups.yml
    Code:
    groups:
      User:
        info:
          prefix:
          suffix:
          build: true
        default: true
        permissions:
        - essentials.help
        - essentials.motd
        - essentials.suicide
        - essentials.kit
        - essentials.tp
        - essentials.warp
        inheritance:
      Moderator:
        info:
          prefix:
          suffix:
          build: true
        default: false
        permissions:
        - essentials.item
        - essentials.kick
        - groupmanager.*
        - essentials.tphere
        - essentials.togglejail
        - essentials.god
        - honeypot.honeypot
        inheritance: 'User'
      Admin:
        info:
          prefix:
          suffix:
          build: true
        default: false
        permissions: '*'
        inheritance: 'Moderator'
    users.yml
    Code:
    users:
        ks3995:
            group: Admins
            info:
                prefix: ''
                suffix: ''
            permissions: []
        khmaster236:
            group: Moderator
            info:
                prefix: ''
                suffix: ''
            permissions: []
        marcthefox:
            group: Moderator
            info:
                prefix: ''
                suffix: ''
            permissions: []
        toddgodd:
            group: Moderator
            info:
                prefix: ''
                suffix: ''
            permissions: []
        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
     
  21. Offline

    xZise

    Code:
    groups:
      Admin:
        info:
          prefix: '&c'
          suffix:
          build: true
        default: false
        permissions:
        - '*'
        inheritance: Member
      Member:
        info:
          prefix: '&1'
          suffix:
          build: true
        default: false
        permissions:
    # basic stuff here
        inheritance: Guest
      Guest:
        info:
          prefix: '&7'
          suffix:
          build: false
        default: true
        permissions:
    # chat permissions
        inheritance: 
    This is the basic structure where you only have to define what is basic stuff (there is no “general basic stuff”). Also it would be nice if you could tell us, what you tried and what the console outputs, because it is senseless that other people create the file for admins as you. (No offense) but what is if you want to add a group? You have to ask here again and somebody has to answer you.

    What does the console say?

    And you uses groups in the users.yml that doesn't exists: Admin (you have one called Admins) and Peasant. Instead you have the groups “Moderator” and “User” which you don't use. Also are the files located correct (<plugindirectory>/GroupManager/worlds/<worldname>/)?

    Fabian
     
  22. Offline

    DannyLAGZLOL

    ok i just got my dedicated server, all is in right place but i get this error, can anyone help??

    2011-03-27 03:29:37 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-544-g6c6c30a-b556jnks (MC: 1.3)
    2011-03-27 03:29:37 [INFO] Preparing level "world"
    2011-03-27 03:29:37 [INFO] Preparing start region
    2011-03-27 03:29:38 [SEVERE] Could not load plugins\FakePermissions.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:69)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:159)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:107)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.util.zip.ZipException: invalid END header (bad central directory offset)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(Unknown Source)
    at java.util.jar.JarFile.<init>(Unknown Source)
    at java.util.jar.JarFile.<init>(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:56)
    ... 8 more
    2011-03-27 03:29:38 [SEVERE] Could not load plugins\GroupManager.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:69)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:159)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:107)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.util.zip.ZipException: invalid END header (bad central directory offset)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(Unknown Source)
    at java.util.jar.JarFile.<init>(Unknown Source)
    at java.util.jar.JarFile.<init>(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:56)
    ... 8 more
     
  23. Offline

    SondreHG

    And can you provide me a list of Permissions? Like, the normal thing you can on a server, and the Chat permission.
    And, what do I have to enter in the users.yml? Or, can I add the players names in the groups.yml (Basicly: How do I add players to a group?)

    sondre-

    And also, where do I add like, TAGs? Like: [Admin]SondreHG??? Is that the Suffix? Do I need ''[Admin]'' or just ''Admin''??

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 17, 2016
  24. Offline

    xZise

    You have to determine which permissions other plugins use. For example if you use essentials, go to the essentials thread and search there if it support Permission/GroupManager (it does) and then which permission do you need to execute which command. For example for the command “who” the player has to have the “essentials.who” permission.
    So you add in the group this permission string ('essentials.who').

    There is an example users.yml file in the OP. It should be self explaining. My tip would be, simply uses the examples from the OP and modify how you want (e.g. add you as admin, add other players in the groups, modify the permissions). If you have then problem to bring this up, post your problem, configuration etc.

    Depends on your chat plugin. iChat for example places the name of the group in squared brackets before the name. On the other hand HeroChat uses the prefix property of the group. But only by default. You could check the configuration of the chat plugin and if you have any questions about them, ask in the respective thread. But you have to know, that this is not applied by this plugin. This plugin here only supports permission/group modification and storage.

    Fabian
     
  25. Offline

    SondreHG

    You know.. Can I talk to you in a chat room? Like MSN, or Skype? I need some serious help ._.
     
  26. Offline

    KaWHL

    The console, which I do not have direct access to because It is a hosted server on hostedgameservers.com. I try to enter a command for groupmanager, such as /mandemote, but it comes up with "An internal error occoured while attempting to perform this command"

    The directory where this is held is
    Plugins/GroupManager/Worlds/hgsbackup/world
    Is it something with the placement of the world? Because I cannot move the 'world' folder out of the 'hgsbackup' without it making a new world.
    Kyle
     
  27. Offline

    xZise

    And how do you start the server? I mean normally you need to be have access (e.g. via ssh) to execute an application (as CraftBukkit/Java is one). But your world directory seems to be incorrect:
    Because at the moment there are two directories in the worlds directory (hgsbackup and world). One of them is wrong because in the worlds directory are only those directory named with the world name.

    What do you mean? If your world is named hgsbackup you you have to move “users.yml” and “groups.yml” into the hgsbackup directory. If your world name is world, move the world directory one level up and delete hgsbackup.

    Also on my server, the “Worlds” directory within the “GroupManager” folder has a lowercase w.

    Fabian
     
  28. Offline

    Mattie112

    I have a world "world" with some permissions.
    Now i've created a new word "build"
    I want to have it copy the permissions from 'world' (both groups AND users) however i want to add "essentials.item" to every player (OR the groups) in that world. When a new player get's added in the 'world' permissions file it needs to send it to 'build' aswell. So, best case: 'build' gets permissions from 'world' and ads 'essentials.item'. OR 'build' gets users from 'world' but has it own groups.yml
    Is this possible, and how?
     
  29. Offline

    KaWHL

    I start the server via a webpage that has 3 buttons: Start, restart or stop.

    The exact copy of the file directory from the server goes as
    /home/plugins/GroupManager/worlds/hgsbackup/word/users.yml and groups.yml
     
  30. Offline

    xZise

    You have to move the users.yml and groups.yml in the appropiate worlds directory. If your world is “foobar” it has to be (also for the groups.yml):
    /home/plugins/GroupManager/worlds/foobar/users.yml

    There is no way to do it different (only if the world is named “hgsbackup/word”).

    And one question: What do you mean with this statement:


    Fabian

    PS: I would recommend to get access to the console.
     
  31. Offline

    KaWHL

    The users and groups.yml files are in the right directory </home/plugins/GroupManager/worlds/hgsbackup/world>​
    I am wondering what is wrong with my config files. Is there anything wron that you can spot?​
    P.S. The quoted statements means that I cannot make the world folder anywhere else.​
     
Thread Status:
Not open for further replies.

Share This Page