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

    oliverw92

    Maybe you could make a new iChat to replace it - one that works well with your plugin? I like how you have implemented this - you haven't tried to take over Permissions or attempted to force people to use something else, you have blended Permissions into the new system :)
     
  3. Offline

    nerdnosyd

    Here are some warning messages that bukkit b405jnks threw
    Code:
    2011-02-21 11:44:48 [WARNING] Using the stupidly long constructor com.nijikokun.bukkit.Permissions.Permissions(PluginLoader, Server, PluginDescriptionFile, File, File, ClassLoader) is no longer recommended. Go nag the plugin author of Permissions to remove it! (Nothing is broken, we just like to keep code clean.)
    2011-02-21 11:44:48 [WARNING] Using the stupidly long constructor org.anjocaido.groupmanager.GroupManager(PluginLoader, Server, PluginDescriptionFile, File, File, ClassLoader) is no longer recommended. Go nag the plugin author of GroupManager to remove it! (Nothing is broken, we just like to keep code clean.)
    2011-02-21 11:44:48 [INFO] Hint! It's probably someone called 'AnjoCaido'
    2011-02-21 11:44:48 [WARNING] Using the stupidly long constructor org.anjocaido.groupmanager.GroupManager(PluginLoader, Server, PluginDescriptionFile, File, File, ClassLoader) is no longer recommended. Go nag the plugin author of GroupManager to remove it! (Nothing is broken, we just like to keep code clean.)
    2011-02-21 11:44:48 [INFO] Hint! It's probably someone called 'AnjoCaido'
    
    Just thought you'd like to know. [​IMG]
     
  4. Offline

    Nijikokun

    This will soon be deprecated with the new permissions release coming out :)

    Also, you have a lot of misconceptions about permissions, but I just wanted you to know that the next release will break any and all "compatibility" with this plugin.
     
  5. Offline

    anon

    Well, thats the life. People release plugin, break yours, you fix, people release new bukkit, breaks everything, then you fix it, then you beak other people stuff, they fix it...
     
  6. Offline

    Chikken

    Seems like GroupManager dont want to work with Names with capital letters, why?
     
  7. Offline

    Jaga

    You know what would really be nice? Having two or more developers currently working on separate systems that accomplish the same goal, come together to make a single unified and generally accepted version.

    What we have now, is people going in different directions, invalidating each other's work on a regular basis and making it harder for plugin developers to design standards in their plugins for server admins to use. Permissions has standards, CraftBukkit is doing it's own thing soon, GroupManager is doing something else.

    Security is a big thing for Minecraft servers and for people that design CraftBukkit plugins - how about coming together and creating something better?
     
    anon and Chikken like this.
  8. Offline

    M1sT3rM4n

    I haven't really seen Nijk post anything worthy of mention after he ported the two more notable plugins over here :\
     
  9. Offline

    xZise

    Hello,
    Yep, I often heard that “soon” Bukkit releases a permissions release and what is there? Since weeks (26 days says the bug tracker) if is closed, implemented and … not released. So I use this (previous yours) plugin to have permissions until it is supported by bukkit natively.

    Second: Why couldn't you talk with this developer and prevent breaking this plugin here? I mean if your update breaks this plugin here, than it has to break every other permissions using plugin.
    Your plugin is nice, but this extension is quite nicer and OSS. When you don't want to support your plugin it's lost, this plugin don't has to be lost.

    So prevent breaking plugins eachother -.- and working together instead of versus. With this there could be a nice permissions standard until bukkit is releasing it.

    Fabian

    PS: -.- quoting fail
     
  10. Offline

    AnjoCaido

    Good. I'm looking forward to it.

    I know that. But that's not a problem. You see, I don't create plugins to get famous, or to get people following me. I just create plugins that I need... If other people like it, good.
    If the plguin I created is surpassed, I just stop using it and updating it. If anyone gets mad at me, they can go themselves update it because it's OpenSource.
    There is no cry about some 5 days of work lost.

    I'm really excited to see whats bukkit is going to deliver us.


    ---
    About my misconceptions, I would be pleased to hear you, if you have some spare minutes to enlighten me.
    I tried to not bother you while developing this because I really started this for myself, and had no idea that a lot of people was feeling that more is needed.
    --- merged: Feb 21, 2011 9:20 PM ---
    It will work. It just converts User names to lower case inside the file.
    but a username AnjoCaido is very well readed, even if it's anjocaido inside the file.

    Don't worry about that.
     
  11. Offline

    captainbinary

    Hello i get an error everytime someone joins the server. I also noticed something on startup fo server too. Im using CB 345 GM 0.9.

    Noticed on startup world edit and world guard do not recognize permissions being enabled.
    Code:
    2011-02-22 01:22:18 [INFO] WorldEdit 3.2.2 loaded.
    2011-02-22 01:22:18 [INFO] WorldEdit: No known permissions plugin detected. Using configuration file for permissions.
    2011-02-22 01:22:18 [INFO] WorldGuard 3.2.2 loaded.
    2011-02-22 01:22:18 [INFO] WorldGuard: No known permissions plugin detected. Using configuration file for permissions.
    2011-02-22 01:22:18 [INFO] WorldGuard: Single session is enforced.
    2011-02-22 01:22:18 [INFO] WorldGuard: TNT ignition is PERMITTED.
    2011-02-22 01:22:18 [INFO] WorldGuard: Lighters are PERMITTED.
    2011-02-22 01:22:18 [INFO] WorldGuard: Lava fire is blocked.
    2011-02-22 01:22:18 [INFO] WorldGuard: Fire spread is UNRESTRICTED.
    2011-02-22 01:22:18 [INFO] [iConomy] version [2.2] (Aime) loaded
    GroupManager - Backing up your data...
    GroupManager - Backup done!
    GroupManager - Reloading your data...
    GroupManager - Roload done!
    GroupManager - Scheduled Data Saving is set for every 10 minutes!
    GroupManager version 0.9 is enabled!
    2011-02-22 01:22:18 [INFO] WorldEdit: No known permissions plugin detected. Using configuration file for permissions.
    2011-02-22 01:22:18 [INFO] WorldGuard: No known permissions plugin detected. Using configuration file for permissions.
    Fake Permissions version 2.0 is enabled!
    2011-02-22 01:22:18 [INFO] Loaded EssentialsBan bTeamCity by Zenexer, ementalo, Eris, and EggRoll
    2011-02-22 01:22:18 [INFO] RedstoneSponge version 0.4 is enabled!
    Created Zone [Test Zone 1]
    Created Zone [Test Zone 2]
    Created Zone [ColluseumPit]
    Created Zone [Pyramid]
    Created Zone [pleasentville]
    Created Zone [Mine Campf]
    Created Zone [Camp Cutt]
    Created Zone [Port Town]
    EpicZones version 0.9 is enabled.
    2011-02-22 01:22:18 [INFO] Elevators version 1.3 is enabled!
    2011-02-22 01:22:18 [INFO] ControllerBlock: 1.1 by Hell_Fire
    2011-02-22 01:22:18 [INFO] ControllerBlock: Using protect block protection mode
    2011-02-22 01:22:18 [INFO] ControllerBlock: Using IRON_BLOCK (42) as ControllerBlock, loaded 0 disallowed types from config
    2011-02-22 01:22:18 [INFO] ControllerBlock: Loaded v3 data - 12 ControllerBlocks loaded
    2011-02-22 01:22:18 [INFO] ControllerBlock: Enabling quick redstone check
    2011-02-22 01:22:18 [INFO] ControllerBlock: Events registered
    2011-02-22 01:22:18 [INFO] HeroChat version 3.06 enabled.
    NoCheatPlugin version 0.3.5 is enabled!
    2011-02-22 01:22:18 [INFO] Loaded EssentialsSpawn build 206 by Zenexer, ementalo, Eris, and Brettflan
    2011-02-22 01:22:19 [INFO] [MYHOME]: 6 homes loaded
    2011-02-22 01:22:19 [INFO] [MYHOME] Permissions enabled.
    2011-02-22 01:22:19 [INFO] MyHome 1.8 enabled
    TimeAnnounce version 0.6 is enabled :)
    2011-02-22 01:22:20 [INFO] [MYWARP] Connection with MyHome established.
    2011-02-22 01:22:20 [INFO] [MYWARP]: 10 warps loaded
    2011-02-22 01:22:20 [INFO] [MYWARP] Permissions enabled.
    2011-02-22 01:22:20 [INFO] MyWarp 1.9 enabled
    AppleTree activated.
    [SuperStone] Config: allowSimpleCraft=true
    [SuperStone] Config: allowLightSensor=true
    [SuperStone] Config: allowLogic=true
    [SuperStone] Config: allowPixel=true
    [SuperStone] Config: allowMakedaynight=false
    [SuperStone] Config: allowWireless=true
    [SuperStone] Config: allowFloodMaker=true
    [SuperStone] Config: allowTeleports=true
    [SuperStone] Config: allowHarvester=true
    SuperStone version 1.03 is enabled!
    2011-02-22 01:22:20 [INFO] Loaded EssentialsHelp bDev240 by Zenexer, ementalo, Eris, and EggRoll
    2011-02-22 01:22:20 [INFO] Loaded Essentials build 206 by Zenexer, ementalo, Eris, and Brettflan
    2011-02-22 01:22:20 [INFO] SpawnMob version 1.5.1 enabled.
    2011-02-22 01:22:20 [INFO] [SpawnMob] Permission system enabled.
    Error when player joins. (I know its to do with world guard but i still believe its a permissions error and only started occuring when i put this plugin on)

    Code:
    java.lang.NullPointerException
            at com.sk89q.bukkit.migration.ConfigurationPermissionsResolver.inGroup(ConfigurationPermissionsResolver.java:114)
            at com.sk89q.bukkit.migration.PermissionsResolverManager.inGroup(PermissionsResolverManager.java:90)
            at com.sk89q.worldguard.bukkit.WorldGuardPlugin.inGroup(WorldGuardPlugin.java:1340)
            at com.sk89q.worldguard.bukkit.WorldGuardPlayerListener.onPlayerJoin(WorldGuardPlayerListener.java:65)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:124)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:60)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:214)
            at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:88)
            at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:86)
            at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:68)
            at net.minecraft.server.Packet1Login.a(SourceFile:46)
            at net.minecraft.server.NetworkManager.a(SourceFile:232)
            at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:34)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:317)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:232)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    java.lang.NullPointerException
            at com.sk89q.bukkit.migration.ConfigurationPermissionsResolver.inGroup(ConfigurationPermissionsResolver.java:114)
            at com.sk89q.bukkit.migration.PermissionsResolverManager.inGroup(PermissionsResolverManager.java:90)
            at com.sk89q.worldguard.bukkit.WorldGuardPlugin.inGroup(WorldGuardPlugin.java:1340)
            at com.sk89q.worldguard.bukkit.WorldGuardPlayerListener.onPlayerJoin(WorldGuardPlayerListener.java:69)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:124)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:60)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:214)
            at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:88)
            at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:86)
            at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:68)
            at net.minecraft.server.Packet1Login.a(SourceFile:46)
            at net.minecraft.server.NetworkManager.a(SourceFile:232)
            at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:34)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:317)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:232)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
     
  12. Offline

    AnjoCaido

    Version 3.2.3 should work.
     
  13. Offline

    ddoolin

    I'd also like to know what "misconceptions" we have.
     
  14. Offline

    AnjoCaido

    Version 0.9b

    Now variables values with spaces work...

    you can perfectly do this
    /mangaddv admin prefix &cHead Admin&f

    Who had problems with 0.9 on bukkit builds 400+ should test 0.9b


     
  15. Offline

    NathanWolf

    So, this won't be deprecated when the new permissions comes out.... but it will if/when the built-in user/group system comes out.

    I get what this is for, @AnjoCaido- and I had seen this I probably wouldn't have bothered with Groups :)

    But do keep in mind that Bukkit wants users/groups internally- and I think that's mainly what we've been waiting on with them releasing permissions- because the permissions part is done.

    So this may end up being temporary, as my Groups plugin may end up being temporary.

    But, I know for me, just having something I can use as an interim so I can pre-emtively remove Permissions support from all my plugins is worth having put that together alone :)

    I feel really prepared for the switch, now, when it does come. I dunno about you, but I've already fired up Groups using a CraftBukkit build off the permissions branch and played around with permission profiles and stuff....
     
  16. Offline

    ddoolin

    This. I need something good, that I can reload without having to run a crappy /reload command that crashes my server after 3 uses (or lags it for about 10 seconds if it doesn't crash). I'll be using this until most likely until built-in permissions are complete.
     
  17. Offline

    Vaupell

    Does this mean i can run both permissions and groupmanager at the same time,
    cause ALOT of plugins are designed to get permissions/rights from permissions.
    And i dont think "removing" permissions entirely is an option at this point.
     
  18. Offline

    AnjoCaido

    I'm not aware of those plugins that reads directly from the file.

    Most plugins get permissions the right way(sort of)... they ask permissions from the Permissions plugin itself(which is very different than loading the file).... And those plugins are very well covered with FakePermissions.jar around(it is included in the package).

    If there is so many incompatible plugins as you say, I might create an option to use a file named config.yml at Permissions folder.

    You can test it.... GroupManager doesn't touch your old files.
    You can remove Permissions.jar...
    put GroupManager.jar and FakePermissions.jar...
    test...
    if it fails...
    remove them...
    and put back Permissions.jar

    Simple as that.
    --- merged: Feb 21, 2011 11:28 PM ---
    I see you felt like me.

    I'm very well prepared for that bukkit brings to me. But, for now, I needed more. And we need it now.

    This was our way to fill the gaps of the current bukkit versions.
     
  19. Offline

    Adam Shefki

    Having trouble, here.

    Had Permissions on the server originally, only for a couple minutes while I was playing around - decided I'd prefer this plugin, so I went and deleted Permissions and dropped this into the plugins folder.


    Just installed the plugin fresh and it's throwing me this when I try and /mangadd builders. In-game, it says 'An internal error occured while attempting to perform this command'. No results if I try it in console, too.

    During startup:

    The error it throws when I try the command:

    What am I doin' wrong, here?
     
  20. Offline

    Tuna

    Sorry to butt in here, but just saw this comment and figured I could help out :p

    the "/give" and "/cfill" commands currently only work with item names, not item id's. So the issue is with TPack, not GroupManager. If you're getting "item not found" errors then GroupManager is working fine :D Use "/cfill wood" instead of "/cfill 05". I'll add item ID's in the next update
     
  21. Offline

    Nijikokun

    Sorry that you feel this way, however it is true. New permissions WILL deprecate this also, I'm not talking about "internal" Permissions, the new Permissions plugin I am releasing will deprecate this.

    Sorry if there was any confusion.
     
  22. Offline

    PeterPAwN

    ive updated from 0.8 to 0.9b and if i set players to new group it acknowledges it but the group of that player will not take change. Rolled back to 0.8 and it works again.

    Craftbukkit 409
    Worldedit 3.2.2
    Worldguard 3.2.2
    IChat 1.5
    General 2.1
    Borderlands v.200
    dynmap 12.1
    mcdocs 5.1
     
  23. Offline

    RustyDagger

    I was going to download this cause i needed some thing to work with 406 but then i read that essentials wont be able to change the groups any more so i decided not to download it I dont want none of your over complicated stupid command stucture in my file the permission nodes are there so you can group commands in to sets not make a node for every single command seprate you totaly over looked the whole point of the plugin. things like this should be done

    pluginname.add.command1
    pluginname.add.command2

    So then i could do some thing like this latter in my file

    pluginname.add.* and grant access to all the adding commands

    so yea i would sooner go with out than deal with your screwed up permission nodes. my file would be so huge by the time i got done adding in all them uh no thanks.
     
  24. Offline

    -JHB-

    this is just great :D
    but could you make it possible that a User is in mutiple groups. This would be great for plugins so the plugins could set additional rights
     
  25. Offline

    unrivaledneo

    this is great, now just need a iconomy way to buy permissions and im set :p

    tym
    --- merged: Feb 22, 2011 4:50 PM ---
    lmao if you dont like it, dont use it. I think this is great no more having to open the file just to edit crap all the time.
     
  26. Offline

    AnjoCaido

    The asterisk thing works from the very first version.

    Why do you think admin always have only '*'?
    --- merged: Feb 22, 2011 7:27 PM ---
    Not. That will not be possible.

    But I have a better idea:
    Make a group with multiple inherits. They work.
    (actually they were screwed up on recent builds, but it's already fixed for the next one)
    --- merged: Feb 22, 2011 7:30 PM ---
    That problem it's very strange. It doesn't make sense. It's like there is an old file of group manager packed together, overwriting some that should be new.
    If you are using Essentials, take off the file EssentialsGroupManager.jar.
    Latest build of Essentials has an old GroupManager... soon they will update it.
     
  27. Offline

    Redyugi

    I tried this out, because I liked the edit on the fly thing. However, it doesn't work with HeroChat, which I prefer over iChat. The prefix and suffix weren't shown, and I put a lot of importance onto them.
    Also, I did have trouble loading my Premissions config but that is only minor.
     
  28. Offline

    jwideman

    Will this handle denying permissions? So that stuff turned on with * can be turned off, rather than having to explicitly set every permission.
     
  29. Offline

    AnjoCaido

    If your file was considered "bad format" by my plugin, I would love to know it's contents.

    I'll see the HeroChat thing.
    --- merged: Feb 22, 2011 7:52 PM ---
    Asterisk is not to deny.

    It is like a allow wildcard. There is no symbol to deny, yet. But it is a great idea.
     
  30. Offline

    Redyugi

    It wasn't a 'bad format'. It just didn't load. I then copied and pasted it into your data.yml, and it worked. So its really minor.

    And thanks for looking into it too =)
     
  31. Offline

    jwideman

    Well, that's the problem - it's either use * and get everything (which isn't desirable in every case) or individually grant every permission wanted.
     
Thread Status:
Not open for further replies.

Share This Page