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


    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 (Text):
    1. settings:
    2.   data:
    3.     save:
    4.       minutes: 10
    5.   logging:
    6.     level: INFO
    7.   permission:
    8.     world:
    9.       mirror:
    10.         world1:
    11.           - world2
    12.           - world3
    13.         world4:
    14.           - 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:

    So the file structure for the world called anjoCaidoWorld and netherWorld will be:

    The files might look like this:
    Code (Text):
    1. groups:
    2.     Admins:
    3.         default: false
    4.         info:
    5.             build: false
    6.             prefix: ''
    7.             suffix: ''
    8.         inheritance:
    9.         - SemiAdmin
    10.         permissions:
    11.         - '*'
    12.     Default:
    13.         default: true
    14.         info:
    15.             build: false
    16.             prefix: ''
    17.             suffix: ''
    18.         inheritance: []
    19.         permissions:
    20.         - essentials.spawn
    21.         - essentials.motd
    22.         -
    23.         - essentials.home
    24.         - essentials.sethome
    25.     Moderator:
    26.         default: false
    27.         info:
    28.             build: false
    29.             prefix: '&c'
    30.             suffix: 'Mod'
    31.         inheritance:
    32.         - Default
    33.         permissions:
    34.         -
    35.         - essentials.tphere
    36.         - essentials.item
    37.         - essentials.give
    38.     SemiAdmin:
    39.         default: false
    40.         info:
    41.             build: false
    42.             prefix: '&c'
    43.             suffix: 'SemiAdmin'
    44.         inheritance:
    45.         - Moderator
    46.         permissions:
    47.         - +groupmanager.mandemote
    48.         - +groupmanager.manpromote
    49.         - -groupmanager.*
    50.         - '*'
    51.     Peasant:
    52.         default: true
    53.         info:
    54.             build: false
    55.             prefix: '&e'
    56.             suffix: 'Peasant'
    57.         inheritance:
    58.         - Default
    59.         permissions: []
    60.     Miner:
    61.         default: false
    62.         info:
    63.             build: false
    64.             prefix: ''
    65.             suffix: ''
    66.         inheritance:
    67.         permissions:
    68.         - essentials.kit
    69.         - essentials.kit.miner
    70.         - flashlight.regular
    71.     Healer:
    72.         default: false
    73.         info:
    74.             build: false
    75.             prefix: ''
    76.             suffix: ''
    77.         inheritance:
    78.         permissions:
    79.         - essentials.kit
    80.         - essentials.kit.healer
    81.         - essentials.heal
    82.     Farmer:
    83.         default: false
    84.         info:
    85.             build: false
    86.             prefix: ''
    87.             suffix: ''
    88.         inheritance:
    89.         permissions:
    90.         - essentials.kit
    91.         - essentials.kit.farmer
    92.         - essentials.spawnmob
    93.     Railer:
    94.         default: false
    95.         info:
    96.             build: false
    97.             prefix: ''
    98.             suffix: ''
    99.         inheritance:
    100.         permissions:
    101.         - essentials.kit
    102.         - essentials.kit.railer
    Code (Text):
    1. users:
    2.     anjocaido:
    3.         group: Admins
    4.         info:
    5.             prefix: '&c'
    6.             suffix: King
    7.         permissions: []
    8.     gmcouto:
    9.         group: SemiAdmin
    10.         permissions: []
    11.     zenexer:
    12.         group: Moderator
    13.         permissions:
    14.         - essentials.god
    15.     aMiner:
    16.         group: Peasant
    17.         info:
    18.             prefix: '&d'
    19.             suffix: Miner
    20.         permissions: []
    21.         subgroups:
    22.           - Miner
    23.     aHealer:
    24.         group: Peasant
    25.         info:
    26.             prefix: '&d'
    27.             suffix: Healer
    28.         permissions: []
    29.         subgroups:
    30.           - Healer
    31.     aFarmer:
    32.         group: Peasant
    33.         info:
    34.             prefix: '&d'
    35.             suffix: Farmer
    36.         permissions: []
    37.         subgroups:
    38.           - Farmer
    39.     tempRailer:
    40.         group: Peasant
    41.         info:
    42.             prefix: '&d'
    43.             suffix: Miner
    44.         permissions: []
    45.         subgroups:
    46.           - Miner
    47.           - 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 (Text):
    1. groups:
    2.   SemiAdmin:
    3.     default: false
    4.     permissions: [+groupmanager.manpromote, -groupmanager.*,
    5.       '*']
    6.     inheritance: [Moderator]
    7.     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.

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

    • 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 (Text):
    1. commands:
    2.   manuadd:
    3.     description: Move a player to desired group.(Adds to the file if not exists)
    4.     usage: /<command> <player> <group>
    5.     permission: groupmanager.manuadd
    6.   manudel:
    7.     description: Remove any user specific configuration. Make him default group.
    8.     usage: /<command> <player>
    9.     permission: groupmanager.manudel
    10.   manuaddsub:
    11.     description: Add a group to a player's subgroup list.
    12.     usage: /<command> <player> <group>
    13.     permission: groupmanager.manuaddsub
    14.   manudelsub:
    15.     description: Remove a group to a player's subgroup list.
    16.     usage: /<command> <player> <group>
    17.     permission: groupmanager.manudelsub
    18.   mangadd:
    19.     description: Add group to the system.
    20.     usage: /<command> <group>
    21.     permission: groupmanager.mangadd
    22.   mangdel:
    23.     description: Removes group from the system(all it's users become default)
    24.     usage: /<command> <group>
    25.     permission: groupmanager.mangdel
    26.   manuaddp:
    27.     description: Add permission diretly to the player.
    28.     usage: /<command> <player> <permission>
    29.     permission: groupmanager.manuaddp
    30.   manudelp:
    31.     description: Removes permission diretly from the player.
    32.     usage: /<command> <player> <permission>
    33.     permission: groupmanager.manudelp
    34.   manulistp:
    35.     description: List all permissions from a player.
    36.     usage: /<command> <player>
    37.     permission: groupmanager.manulistp
    38.   manucheckp:
    39.     description: Verify if user has a permission, and where it comes from.
    40.     usage: /<command> <player> <permission>
    41.     permission: groupmanager.manucheckp
    42.   mangaddp:
    43.     description: Add permission to a group.
    44.     usage: /<command> <group> <permission>
    45.     permission: groupmanager.mangaddp
    46.   mangdelp:
    47.     description: Removes permission from a group.
    48.     usage: /<command> <group> <permission>
    49.     permission: groupmanager.mangdelp
    50.   manglistp:
    51.     description: Lists all permissions from a group.
    52.     usage: /<command> <group>
    53.     permission: groupmanager.manglistp
    54.   mangcheckp:
    55.     description: Check if group has a permission, and where it comes from.
    56.     usage: /<command> <group> <permission>
    57.     permission: groupmanager.mangcheckp
    58.   mangaddi:
    59.     description: Add a group to another group inheritance list.
    60.     usage: /<command> <group1> <group2>
    61.     permission: groupmanager.mangaddi
    62.   mangdeli:
    63.     description: Remove a group from another group inheritance list.
    64.     usage: /<command> <group1> <group2>
    65.     permission: groupmanager.mangdeli
    66.   manuaddv:
    67.     description: Add, or replaces, a variable to a user (like prefix or suffix).
    68.     usage: /<command> <user> <variable> <value>
    69.     permission: groupmanager.manuaddv
    70.   manudelv:
    71.     description: Remove a variable from a user.
    72.     usage: /<command> <user> <variable>
    73.     permission: groupmanager.manudelv
    74.   manulistv:
    75.     description: List variables a user has (like prefix or suffix).
    76.     usage: /<command> <user>
    77.     permission: groupmanager.manulistv
    78.   manucheckv:
    79.     description: Verify a value of a variable of user, and where it comes from.
    80.     usage: /<command> <user> <variable>
    81.     permission: groupmanager.manucheckv
    82.   mangaddv:
    83.     description: Add, or replaces, a variable to a group (like prefix or suffix).
    84.     usage: /<command> <group> <variable> <value>
    85.     permission: groupmanager.mangaddv
    86.   mangdelv:
    87.     description: Remove a variable from a group.
    88.     usage: /<command> <group> <variable>
    89.     permission: groupmanager.mangdelv
    90.   manglistv:
    91.     description: List variables a group has (like prefix or suffix).
    92.     usage: /<command> <group>
    93.     permission: groupmanager.manglistv
    94.   mangcheckv:
    95.     description: Verify a value of a variable of group, and where it comes from.
    96.     usage: /<command> <group> <variable>
    97.     permission: groupmanager.mangckeckv
    98.   manwhois:
    99.     description: Tell the group that user belongs.
    100.     usage: /<command> <player>
    101.     permission: groupmanager.manwhois
    102.   tempadd:
    103.     description: Creates a temporary permission copy for that user.
    104.     usage: /<command> <player>
    105.     permission: groupmanager.tempadd
    106.   tempdel:
    107.     description: Remove the temporary permission copy for player.
    108.     usage: /<command> <player>
    109.     permission: groupmanager.tempdel
    110.   templist:
    111.     description: List players in overload-permissions mode made by /tempadd.
    112.     usage: /<command>
    113.     permission: groupmanager.templist
    114.   tempdelall:
    115.     description: Remove all overrides made by command /tempadd.
    116.     usage: /<command>
    117.     permission: groupmanager.tempdelall
    118.   mansave:
    119.     description: Save all permissions on file.
    120.     usage: /<command>
    121.     permission: groupmanager.mansave
    122.   manload:
    123.     description: Reload current world and config.yml. Or load given world.
    124.     usage: /<command> [world]
    125.     permission: groupmanager.manload
    126.   listgroups:
    127.     description: List the groups available.
    128.     usage: /<command>
    129.     permission: groupmanager.listgroups
    130.   manpromote:
    131.     description: Promote a player in the same heritage line to a higher rank.
    132.     usage: /<command> <player> <group>
    133.     permission: groupmanager.manpromote
    134.   mandemote:
    135.     description: Demote a player in the same heritage line to a lower rank.
    136.     usage: /<command> <player> <group>
    137.     permission: groupmanager.mandemote
    138.   mantogglevalidate:
    139.     description: Toggle on/off the validating if player is online.
    140.     usage: /<command>
    141.     permission: groupmanager.mantogglevalidate
    142.   mantogglesave:
    143.     description: Toggle on/ff the autosave.
    144.     usage: /<command>
    145.     permission: groupmanager.mantogglesave
    146.   manworld:
    147.     description: Prints the selected world name
    148.     usage: /<command>
    149.     permission: groupmanager.manworld
    150.   manselect:
    151.     description: Select a world to work with next commands.
    152.     usage: /<command> <world>
    153.     permission: groupmanager.manselect
    154.   manclear:
    155.     description: Clear world selection. Next commands will work on your world.
    156.     usage: /<command>
    157.     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 (Text):
    1. import org.anjocaido.groupmanager.GroupManager;
    2. import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder;
    3. import org.anjocaido.groupmanager.dataholder.WorldDataHolder;
    4. public void onEnable() {
    5.         Plugin p = this.getServer().getPluginManager().getPlugin("GroupManager");
    6.         if (p != null) {
    7.             if (!this.getServer().getPluginManager().isPluginEnabled(p)) {
    8.                 this.getServer().getPluginManager().enablePlugin(p);
    9.             }
    10.             GroupManager gm = (GroupManager) p;
    11.             WorldsHolder wd = gm.getWorldsHolder();
    12.         } else {
    13.             this.getPluginLoader().disablePlugin(this);
    14.         }
    15.     }
    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 (Text):
    1. public void markAsNotLoggedIn(Player player) {
    2.             OverloadedWorldHolder perm = gm.getWorldsHolder().getWorldData(player);
    3.             Group lockDown = perm.getGroup("NotLoggedIn");
    4.             if(lockDown == null){
    5.                 lockDown = perm.createGroup("NotLoggedIn");
    6.             }
    7.             perm.overloadUser(player.getName());
    8.             perm.getUser(player.getName()).setGroup(lockDown);
    9.     }
    From now on the user is in this special group. And every change on him is temporary. Until the code below is executed.
    Code (Text):
    1. public void restorePermissions(Player player){
    2.             OverloadedWorldHolder perm = gm.getWorldsHolder().getWorldData(player);
    3.             perm.removeOverload(player.getName());
    4.     }
    And, finally, how to check a user permission:
    Code (Text):
    1. public boolean canChangeGroup(Player player){
    2.             return gm.getWorldsHolder().getWorldPermissions(player).has(player,"groupmanager.mangroup");
    3.     }
    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.

    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:

    Other Downloads:
    Java Doc:

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

    Fake Permissions Source:
    TNC, Kohle, pat8u and 17 others like this.
  2. Offline


    This looks extremely promising, as support for Permissions and seemingly development has dwindled greatly.

  3. Offline


    Awesome :D

    Thank you !

    I tested worked perfect [​IMG]
  4. Offline


    Dude this is like insanse oO
    GREAT! Loving it! I mean first I was sceptical but after reading about the "fakePermissions"-plugin: wow you really thought of everything.

    Gonna put this on my server right now, thank you
    Vodofrede likes this.
  5. Offline


    Liking it but Some guide on the versions in the post would be nice !!!

    At least need some idea on what it works with.
  6. Offline


    Great idea. I would definitely use it if I could restrict what groups were allowed to add/remove users to what groups. For instance, allow moderators to upgrade default users to vip, but only admins can upgrade default users to vip or moderator. I trust my moderators, but I would still like to have the ability to lock it down.
  7. Offline


    Tested it. It didnt automatic imported my permission configs( actually it imported the default permission configs, the one with VIP, admin and mods), but I just copy pasted the contents into the right place and all worked great.

    I run like 30 plugins, none of them had any issue. Its fantastic.
  8. Offline


  9. Offline


    Having the same problem as ddoolin, so I switched back to regular Permissions. Ops were the only ones that could get commands to run through.

    I use LWC, the latest Essentials suite, Redstonesponge, and Dnymap, if that helps.
  10. Offline


    did you delete permissions.jar?
    Do you have both GroupManager.jar and NewPermission.jar on your plugin folder?
  11. Offline


  12. Offline


    Yes and yes.
  13. Offline


    Code (Text):
    1. 2011-02-17 21:53:54 [INFO] Starting minecraft server version Beta 1.2_01
    2. 2011-02-17 21:53:54 [INFO] Loading properties
    3. 2011-02-17 21:53:54 [INFO] Starting Minecraft server on *:25565
    4. 2011-02-17 21:53:54 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-409-gcb2bced (MC: 1.2_01)
    5. 2011-02-17 21:53:54 [INFO] Preparing level "world"
    6. 2011-02-17 21:53:54 [INFO] Preparing start region
    7. 2011-02-17 21:53:55 [INFO] Preparing spawn area: 20%
    8. 2011-02-17 21:53:56 [INFO] Preparing spawn area: 52%
    9. 2011-02-17 21:53:57 [INFO] Preparing spawn area: 97%
    10. 2011-02-17 21:53:58 [INFO] [iChat] version [1.5] (Maria Holic) loaded
    11. 2011-02-17 21:53:58 [INFO] WorldGuard 3.2.2 loaded.
    12. 2011-02-17 21:53:58 [INFO] WorldGuard: Permissions plugin detected! Using Permissions plugin for permissions.
    13. 2011-02-17 21:53:58 [INFO] WorldGuard: Single session is enforced.
    14. 2011-02-17 21:53:58 [INFO] WorldGuard: TNT ignition is PERMITTED.
    15. 2011-02-17 21:53:58 [INFO] WorldGuard: Lighters are PERMITTED.
    16. 2011-02-17 21:53:58 [INFO] WorldGuard: Lava fire is blocked.
    17. 2011-02-17 21:53:58 [INFO] WorldGuard: All fire spread is disabled.
    18. 2011-02-17 21:53:58 [INFO] WorldEdit 3.2.2 loaded.
    19. 2011-02-17 21:53:58 [INFO] WorldEdit: Permissions plugin detected! Using Permissions plugin for permissions.
    20. 2011-02-17 21:53:58 [INFO] [SimpleMarket] version [0.4a r4] (Caribou) loaded
    21. 2011-02-17 21:53:59 [INFO] [Cleaner] version [1.6] (Night) loaded
    22. 2011-02-17 21:54:00 [INFO] [iConomy] version [2.2] (Aime) loaded
    23. 2011-02-17 21:54:00 [INFO] [Vote] version [2.0] is loaded!
    24. 2011-02-17 21:54:00 [INFO] Loaded EssentialsHelp build 194 by Zenexer, ementalo, Eris, and EggRoll
    25. 2011-02-17 21:54:00 [INFO] Vanish 1.3.4 loaded.
    26. 2011-02-17 21:54:00 [INFO] WorldGuard: Permissions plugin detected! Using Permissions plugin for permissions.
    27. 2011-02-17 21:54:00 [INFO] WorldEdit: Permissions plugin detected! Using Permissions plugin for permissions.
    28. 2011-02-17 21:54:00 [INFO] WorldGuard: Permissions plugin detected! Using Permissions plugin for permissions.
    29. 2011-02-17 21:54:00 [INFO] WorldEdit: Permissions plugin detected! Using Permissions plugin for permissions.
    30. 2011-02-17 21:54:00 [INFO] Loaded EssentialsSpawn build 194 by Zenexer, ementalo, Eris, and Brettflan
    31. 2011-02-17 21:54:02 [INFO] [Jail] Loaded 2 jail zones.
    32. 2011-02-17 21:54:02 [INFO] [Jail] Loaded 5 prisoners.
    33. 2011-02-17 21:54:02 [INFO] Done! For help, type "help" or "?"
    See, no errors, seems to work. I don't see any initialization of GroupManager itself, though.
    Erik7654ka likes this.
  14. Offline


    Good stuff, wrong timing.
    Bukkit permissions will soon remove the need for these plugins.
  15. Offline


    I got it to load right, I just had to replace my Permissions folder back into my plugin list (but not the Permissions.jar). It read from there, kind of. It's still not reading it fully. Also, it's not letting me /mangroup people.

    Which is it really reading from? In the GroupManagers folder or Permissions folder?
  16. Offline


    1 thing that bothers me with some plugins is that ops are auto given acces to every single command i would like to be able to stop them doing that as a server owner there are some features of some plugins i want to not use so i just dont give any access to them but because i am an op the plugin jams all the commands in there for me any way when i dont want them.

    take multiVerse for example i have no intesion of using its portal stuff so i did not give any group or person access to its creation commands for them but my wooden pickaxe still spams set point stuff for it so i assume it has given me access because i am an op :/ the plugin authers seem content on keeping this as a ""feature"" When its more of a PAIN If i want the F***Ing command ill give it to my self. Dont force me to have it cause im an op its wrong.

    So yea if you could please make sure this plugin stops the plugins joined to it doing that i would be very pleased..

    Also @przerwap they have been saying permissions have been coming for over 3 weeks. and for over 200 builds. I would not count on it coming any time soon, you people were saying the same thing when permissions was made.

    Granted it would be nice to have 1 central place /way to handle all permissions. but i'm not going to dream about it.

  17. Would you be interested in allowing me to ship this with Essentials? I will just need access to a source code repository on which your code resides. If you do not already have one, I would be happy to let you use Essentials' repository.
  18. Offline


    Zenexer that would piss ppl like my self off i dont use essensials because i dont like the format it makes the permissions.

    i like it how the permissions plugin had it to start with cause its easy to read and not huge long lines of crap thats hard to read. besides your set up already has a command to change groups and what not and already plugs right into this so theres a command overlap there. from where im sitting theres no need to ship it with it.

    i will admit Niji's plugins have gone to crap cause he stopped caring its his own fault really he tried to make 1 of every thing and ended up with 2 much work to maintain every thing.

    I may soon Give essentials a try but its going to be a lot of work to change it all over.
  19. Offline


    If you don't use modgrp, the Permissions configuration doesn't change. Also. GroupManager uses the same format. So that's kinda weird...(check GroupManager/data.yml).
  20. Offline


    okay for me working great so far, only issue was that the plugin didnt copy over my config.yml of permissions which I solved my copy and pasting it myself

    tried some commands, seemed to work fine, keep up the good work!
  21. Offline


    It's been over a month since you posted this and CraftBukkit still has no native Permissions support... You were saying??? ;)

    (I've been burned by making comments like this too. LOL)
  22. Offline


    przerwap, Yesterday at 10:25 PM
  23. Offline


    I'm happy to see my idea was well received by the community. I wasn't wrong to think there was something missing about group management here.

    Anyways, I want to rephrase that I set this plugin version to 0.5 exactly because it is half of what I think is the real deal.

    I still have things to work on this.

    First things first, so I want to know about the issues. If somebody knows well about Nijikokun's Permissions inside working, I have few questions to make... because I couldn't find anything to read about his ideas. I just got to figure everything out by method names. I want to keep 100% compatible with his plugin.

    If it doesn't find the data.yml on GroupManager folder, it tries to copy config.yml from Permissions folder to data.yml on GroupManager folder.
    If it doesn't find both it fails, but it should report. Yet, it remembers me to it create a template file if doesn't find any.

    All commands use something like groupmanager.mangroup, etc. I'll confirm that for you when I get back home.
    I agree with you. But to me it is so necessary that I couldn't go without something like this. It don't took me 24 hours to make this, so it's not a great effort anyways. Nijikokun's got all basics working, and I used in my favour.
    I love your plugin, and it would be a honor to pack it with yours.

    I plan to keep it up via GitHub. But I accept suggestions, I'm very new to this repository thing. But I sure want to make this OpenSource.
    The problem is that most of those plugins willdirectly edit the file in Permissions folder. So you lose the main advantage this plugins will bring to you: keep the slow file modification away!

    If I setup my plugin to use the Permissions file directly, all your old commands to edit groups will work. But there is no sense in loading a whole file, edit it, save it and load it again just to move the user Foo to the group Bar. In a big server, that would suck.
  24. GitHub works. :) I'm going to try to get it all set and ready to go today. Can you link me to it?
  25. Offline


  26. Offline


    omg, does this really work? I cant freakin wait to install this
  27. Offline


    Great idea, will give it a try.
    But works together with the permission addons like iChat, Antibuild, or the new AntiGrief?
  28. Offline


    Yes. I tested with some plugins like iChat. And it works amazingly. I bet some people here already got good results too.

    If your Permissions folder is named "Permissions" all you need to do is remove the Permissions.jar, and paste GroupManager.jar with FakePermissions.jar.
    GroupManager should automatically copy your Permissions/config.yml to GroupManager/data.yml

    Otherwise, you can copy yourself.
    --- merged: Feb 19, 2011 3:22 AM ---
    Version 0.6b out. Fixed a little mistake I made braking inheritance while loading files. (And saving the file without inheritance then, later)
    Please rollback to your most recent backup, if needed.

  29. Soooo, I upgraded to 0.6b... and now my server console gets spammed with "WIN!" with every action and movement.
    Criptonix100 likes this.
  30. Offline


    I was trying to trace the problems with inheritance on 0.6 I caused, which is a critical error, and used those debugging messages whenever a permissions is tested. If you use a plugin wich verifies your permission when you walk you will get this.

    I know. it's very bad. I'm going to post a small fix now(it means next few minutes).

    Any suggestions are still appreciated.
    --- merged: Feb 19, 2011 7:27 AM ---
    All clear now. No debugging messages.
Thread Status:
Not open for further replies.

Share This Page