Group Based Permissions
GBP: Group Based Permissions
"Because what Bukkit really needs is another permissions plugin"
Permissions plugin for bukkit focussed around defining group membership as the core activity.
The basic idea is that to add a user foo to group bar, instead of going to users.yml and adding
foo:
- groups:
- bar
...you'd simply go to the bar.txt file and add "foo" to the end of it, just like you'd do with ops.txt or white-list.txt etc.
frymaster
foo
notch
Why might this be useful? Because it's a lot easier to integrate with external scripts if they have to simply output a list of names rather than generate a YAML structure. This important if you want to automatically assign group memberships based on your forum permissions, for example.
Features
- Flatfile group membership lists that work like the built-in ops.txt file
- Assign permissions and negative permissions to groups
- A group can inherit permissions from other groups (which can have their own parent etc.) - these will be overridden by the explicitly set permissions
- Meta-groups called all and ops which represent everyone and ops, funnily enough
- Can define "default" groups which people will be added to if and only if they have no explicit group memberships
- Group priorities to determine what permissions take priority if someone is a member of many groups
- Still features a conventional users.yml file where you can override group memberships (both add and negate) and permission nodes
What the plugin doesn't do
This plugin is in early stages of development. There are several standard features it doesn't yet support - implementing these will result in the project moving to "release" status
- In game commands - the only way to alter the configuration is to edit the files directly. The group membership testfiles are read every time a player joins, but you will have to do /gbp reload if you make changes to the .yml files
- Vault API integration
- Time-limited permissions
Future Features
Ultimately the aim of this plugin is to read, and hopefully write, from arbitrary mySQL databases. This would mean it could, for example, query your forum directly to determine group membership. Optionally you would be able to write memberships as well, and in the far future perhaps store most config items in a database as well, for distributed setups.
Configuration
The groups.yml and users.yml files should be fairly self-explanatory. If not, you should let me know what's confusing and I'll add more documentation
Stats collection
To determine popularity and usage of the plugin, installs are automatically tracked by the Metrics plugin tracking system in 1.0.2 and higher. If you don't want this tracking, set opt-out to true in plugins/PluginMetrics/config.yml to disable it.
Currently only the default stats are sent, which include:
- Player count
- OS Type
- Java version
- Server version
- Plugin version
Github
The github repository is at https://github.com/frymaster/fry-gbp and the issue tracker is also there (though the links from this project should go direct to the issue tracker). While I'll try to answer comments on this page, if you find any bugs the tracker is a much more reliable solution
Development Builds
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
http://ci.frymaster.127001.org/
IRC
I idle in #bukkit and in my personal channel #frymaster on Espernet. I am in the UK and are unlikely to respond immediately to queries except in the evening, UK time, but I log all messages and I will get back to you eventually.
@nitemare5x
I'm assuming by rank you mean group. In your group definition, make sure you have a "file:" section (e.g. for a group called "builders" you might have "file:builders.txt"
When you restart (or do /gbp reload) you should see a file called "builders.txt" - just put their names in that file, one name per line
Im confused on how to assign a certain player a certain rank please help
@darknuju
Hi,
You can leave users.yml totally blank if you want - I do - it's just there as an option to override the group-based stuff. Can you paste your groups.yml file into this or something similar and tell me what permission you think a group should be getting but isn't?
Hey I tried it but 1# txt files when i put file: example.txt 2# even if i allow myself and my rank permission to something it wont let me 3# i dont understand how or why in the users pad we need to add more perissionsbut i dunno im prbably using it horribly wrong.
@Joeyanez97
Hi,
Thanks for trying it out!
Can you paste your groups.yml file into http://dev.bukkit.org/paste/ and give me the link please?
I don't get it I go into the groups.yml file I go under the all tab because I want every guest to have some permissions and I type the permissions I want sg.arenas.join.<#> sg.arena.join sg.arena.vote sg.arena.spectate sg.lobby.join I put the - mark before it and I don't know whats wrong plz help this is the only thing gstoping me I don't know If im doing it right or wrong plz help