YAPP (Yet Another Permissions Plugin)
There are many permission plugins available to choose from. This is yet another one.
Introduction
The aim of this plugin is to make managing permissions as user-friendly as possible. It has an easy to use in-game menu system for making permission modifications, as well as fairly easy to understand commands. The files it creates are also very user-friendly, as they are not as strict as YAML files. Indentation and whitespace are not a concern.
Features
- Server-wide permissions
- Per-world permissions
- Inherit multiple groups
- Chat prefixes and name colors
- Promote and demote players
- Rename and delete groups
- Complete in-game menu system
Guide
The full guide to this plugin can be found here:
What Are Permissions?
If you have never used a permissions plugin before, you may not know exactly how they work or what they are used for. If that is true, then this section is for you. If you are already familiar with other permissions plugins, you can skip this section.
A permissions plugin allows you to have detailed control over what kinds of things your players can do. Each plugin can define certain permission "nodes" that control certain actions from that plugin. A node generally takes the form of pluginname.command or pluginname.feature.something. In order for a player to use that command or feature, they must have the associated permission node. Each plugin should have a list of permission nodes somewhere on its project page or website.
This plugin allows you to assign permission nodes directly to players. It also allows you to set up permission groups. You can then assign permission nodes to groups instead of to the players. Then you can put a player in the groups they belong in, and they will inherit the permissions of the group.
In addition, groups can be members of other groups. So for example, you could have an "admins" group, that inherits (is a member of) the "moderators" group, which inherits the "members" group. If a player is placed in the "admins" group, then they will get those permissions, as well as the "moderators" and "members" permissions.
This plugin also allows you to set up server-wide permissions and world-specific permissions. For example, you could give a certain permission node to a group, but then remove that permission node for that group in a specific world. Or you can ignore server-wide permissions all together and put all permission data in each individual world. How you set it up is your choice.
Installation and Configuration
Simply download the file and drop it into your plugins folder to install. If you are converting from another permissions plugin, there are some conversion commands available.
When you start your server for the first time after installing, a config.txt file will be created in your plugins/YAPP folder. An important thing about this configuration file (and all files this plugin creates) is that they are much more friendly than yml files. It is okay to add extra whitespace, including both tabs and spaces.
The names of the config values are fairly self-explanatory, but a full description can be found in the config section of the plugin guide.
Permissions
This plugin uses several permission nodes. The important ones are:
- yapp.admin - Only those with this permission can use the in-game commands to modify permission settings. Defaults to op-only.
- yapp.build - A player must have this permission to interact with the world. This permission can be disabled in the configuration file. Defaults to false.
There are also permissions for the promote and demote commands, as well as permissions that can control a player's ability to interact with the world. A full list can be found in the permissions section of the plugin guide.
Usage
The methods for modifying permission settings are designed to be very easy to use and easy to remember. There are actually three ways to make changes to the permission system.
Remember when making changes with any of these methods you will need to reload for the changes to take effect. In the menu, the option to reload is in the main menu, option '5' or 'S' or 'R'. The command to reload is /yapp @ or /yapp reload. You can also reload just a specific player's permissions with the command /yapp @ player. Note that this will only reload simple changes, like adding or removing permission nodes or groups directly to the player (if you add or remove permissions to a group, reloading the player will not reload the group changes).
Menu
The main command in this plugin is /yapp. The aliases /perm and /perms are also available. If you use this command on its own without any arguments, it will open a guided menu system. The menu is the easiest way to make simple modifications to permission and group information.
While you are in the menu system, there are a few options that are always available to you.
- < will return you to the previous menu
- ! will return you to the main menu
- ? will tell you your current selection, and will sometimes give help about the current screen
- q or quit will exit the menu
Many of the menu screens will have a list of numbered options with highlighted words. To select an option, you can either type the number, type the highlighted word, or just type the highlighted letter within the word.
Commands
Changing settings with normal commands will require multiple commands in sequence. These commands can be used both in-game (with the yapp.admin permission node) and on the command line. In general, your commands will use the following pattern:
- Select something (a player or group, and world if desired)
- Make changes to the selected object
- Save the settings and reload the permission data
You can look at some examples to help you understand how it works.
There are also commands for promoting and demoting players.
Files
The file storage system for this plugin is designed to be very easy to read and understand. It is whitespace-friendly, meaning you can add extra spaces, tabs, and line breaks without problem. The one disadvantage is that the information is spread into many different files. However, this can also be seen as an advantage, as you don't have to scroll through huge files to find what you're looking for.
For further information, please see the files section of the plugin guide.
Source
The full source can be found on my repository on Google Code:
http://code.google.com/p/nisovin-minecraft-bukkit-plugins/source/browse/trunk/YAPP/
Question and Answers
Why create another permission plugin?
Partly to learn. Partly because I wanted to make a better plugin. And because I just felt like it. Some may hate me for adding yet another permission plugin to the pool, but I personally think I've created something useful.
Does this support Vault?
It should fully support Vault, including any plugins that depend on Vault.
Can I use the '*' node?
Special wildcard nodes are supported, but they have some restrictions. See the wildcard information in the guide.
Why so many files?
Why so few? I know a lot of people prefer to have their permission data crammed into just a couple files, but I personally think it's nice to have it spread out. Digging through a massive file for a specific user or group is just annoying. This way, you can easily see all the files, probably in alphabetical order, and find exactly what you're looking for fairly quickly.
-
View User Profile
-
Send Message
Posted Jan 14, 2013There seems to be two problems.
1) Yapp is not recognized as a permissions plugin. 2) The ladders do not seem to work therefore one group cannon inherit from the other.
Any suggestions or help?
-
View User Profile
-
Send Message
Posted Jan 9, 2013@nisovin
Modifying chat colors, messages, & bracket choices seems to be limited. I tried nearly all of the 3rd party chat plugins and none of them register with Yapp groups.
Yapp also doesn't allow essentials to interact with it when it comes to chat formatting, which is the program I need the most.
I am aware that you can customize the %GroupName right before the %DisplayName, but you cant change the %DisplayName color or the %Message bracket that follows for 'specific groups'
@nisovin
-
View User Profile
-
Send Message
Posted Jan 9, 2013@sandal25
It looks like your vip group file has some weird characters in it.
As for your player's ranks getting reset, I don't know what is causing that. I'll need more information.
-
View User Profile
-
Send Message
Posted Jan 8, 2013Hey nisovin,
I get this warning error in my console while loading the server: " 01:49:32 [WARNING] [YAPP] group 'vip' has orphan line: == PERMISSIONS == "
Also, every once in a while, one of my player's ranks (group) will be defaulted back to the default group, rank 1, and i'll have to re-promote them. What's the cause of this??
-
View User Profile
-
Send Message
Posted Jan 8, 2013Hey there, so I am using Heroes, and I want to use the permissions-skills ability that they offer. This allows for me to give a node to a certain class, not just a group. Could you put in the ability for other plugins to add nodes? Thanks.
-
View User Profile
-
Send Message
Posted Jan 2, 2013@sandal25
My testing shows that Vault seems to work fine.
As for specifying a rank in the promote command, I'll think about it. It's not a high priority though. You can easily just set their group if you need to promote through multiple ranks, instead of using the promote command.
-
View User Profile
-
Send Message
Posted Jan 1, 2013"Nisovin, got a question for you.
Is it possible and if not, can you modify yapp so that we can promote to specific ranks. Ex. /promote user rank15 (from rank2)
And also, is Vault fully compatible with yapp on grabbing groups, etc?"
-
View User Profile
-
Send Message
Posted Jan 1, 2013@SrgWallopy
If Towny provides a towny.wild.* node, then it will work fine. This plugin makes no attempt to force star nodes to work, however.
-
View User Profile
-
Send Message
Posted Jan 1, 2013How does this plugin "stack up" against other plugins such as pex? And about the "*" node does that mean that you can't use just the "*"? Or does that mean you can't use something like lets say for towny "towny.wild.*" ?
By the "*" thing does that mean i would have to add in the other nodes instead such as "towny.wild.build towny.wild.destroy " ect.. Or is the "*" Enabled for the end of nodes such as those?
As much as i love pex, they usually are very slow to update -_- xD. either making my own soon. or looking for something similar and just as easy to use.
-
View User Profile
-
Send Message
Posted Dec 31, 2012@sandal25
I know...
I'm not even commenting to make niso change the plugin or anything.
All i commented was that i love this permissions and that it's a great plugin.
I know there are alternatives that have just files where all users are stored in.
I only said why i'm not using it and not really requesting changed or anything.
I'm using this on one of my servers and it working great and it has been working great for months.
But for my other servers i can't use this and i explained why below.
-
View User Profile
-
Send Message
Posted Dec 29, 2012@Dinastya
If the plugin that you're using requires you to edit each player's file on a regular basis.. you're doing something wrong or using the wrong plugin (=
On another note. Nisovin, got a question for you.
Is it possible and if not, can you modify yapp so that we can promote to specific ranks. Ex. /promote user rank15 (from rank2)
And also, is Vault fully compatible with yapp on grabbing groups, etc?
-
View User Profile
-
Send Message
Posted Dec 29, 2012@nisovin
I know that but i have like professions and classes etc and they are for each user different and also mana ranks for magic etc if i make changes to that i would have to do each user 1 by 1 :p
-
View User Profile
-
Send Message
Posted Dec 29, 2012@Dinastya
That's what groups are for. You shouldn't have to make a change to every user.
-
View User Profile
-
Send Message
Posted Dec 29, 2012Yeah i agree with sandal it's indeed a really good permission plugin.
Only reason i'm not using it is because the huge amount of txt files.
Like if i want to make a change to all users i would have to download all files from my server and edit them all 1 by 1 etc.
Just got a lot more negative then positive things in my opinion the huge amount of files.
But yeah other then that it's the best permissions plugin i think :D
-
View User Profile
-
Send Message
Posted Dec 27, 2012Version 1.0 can be found here: http://nisovin.com/yapp/YAPP.jar
It will show up in the files list once it gets approved. Change log:
@sandal25
I'm glad you appreciate it. I've put a lot of work into making it easy to use, yet powerful enough to do anything you may want to do.
@bloodraptorZ93
I'd rather not add a full chat system into this plugin. This is really a permissions plugin, I just added the simple chat features as a convenience.
-
View User Profile
-
Send Message
Posted Dec 27, 2012Hello, Is it possible to add a prefix which affects the colour of the entire name? for example right now if i add a prefix with blue at the beginning : &3<Owner> this shows up as &3<Owner>< in blue but bloodraptor> (message) in white. can I change the colour for all of it and not just the prefix?
Like homeskooler24 said.
-
View User Profile
-
Send Message
Posted Dec 23, 2012BEAUTIFUL PLUGIN !!!
I've personally tested them all, you name it I've tried it, and I rank PEX under this.
The most stripped down, simple, easy-to-use, most visually appealing and most forgiving Permissions Plugin to date, maybe EVER.
Nothing comes close to this. Nothing. Give it a whirl and I promise that you'll leave all that other crap (bP, zP, P, Pex) behind. Ty for your hard work, beats those disgusting looking YML files anyday.
-
View User Profile
-
Send Message
Posted Dec 20, 2012@BobRosemont
That is indeed a bug. Try this new version: http://nisovin.com/yapp/YAPP.jar
-
View User Profile
-
Send Message
Posted Dec 20, 2012I LOVE this plugin. I think it's the best permisions plugin out there. But one thing that i have an error with is when i try to add an inherited group to something, i get kicked with the error "Internal exception: java.net.SocketException: Connection reset" Like when i hit modify a group, then add an inherited group (4) I get the error and get kicked. Then it does nothing. Is this a bug with the plugin, or am i doing something wrong? Please Help,
Bob
-
View User Profile
-
Send Message
Posted Dec 17, 2012This plugin is great for setting up permissions! There's a few things that I'd like it to have: being able to make the chat colored for certain groups, not just names/prefixes, and a way to remove the <> things in the names. It'd be awesome if you're still working on the plugin :)