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 Nov 13, 2012Does this support Vault?
You'll need to add a connector for any of the advanced features to be supported into Vault (groups, prefixes, adding/removing permissions etc). We accept PRs on the github project if you'd like to do this, or can help out with making one and you're interested in Vault supporting your plugin.
-
View User Profile
-
Send Message
Posted Oct 16, 2012Please update the plugin , i love it! :D
-
View User Profile
-
Send Message
Posted Oct 7, 2012I'm getting an error when trying to add an inheritance to a group PasteBin
-
View User Profile
-
Send Message
Posted Sep 23, 2012@4am
http://code.google.com/p/nisovin-minecraft-bukkit-plugins/source/browse/trunk/YAPP/#YAPP%2Fsrc%2Fcom%2Fnisovin%2Fyapp
-
View User Profile
-
Send Message
Posted Sep 23, 2012@craftycreeper
There is no pre-set .* in any plugin. Plugins can define a .*, but it can mean whatever they want. .* isn't a wildcard in any way. I could also use .% or .giveMeAllPermissions and it would be the exact same thing.
What is awful is an entire year of plugin authors failing to comprehend how permissions work.
-
View User Profile
-
Send Message
Posted Sep 23, 2012Your info says that your software is licensed under the GPL, and you have already distributed it. Therefore, you are required to also make availible a copy of the source code for free. Please post a link to the source code, or let me know how I can obtain a copy. Thanks.
-
View User Profile
-
Send Message
Posted Sep 5, 2012@emzone
@Technodude255
Wa if you want to make groups type in console yapp yu choose to modify a group that you want to make like Helper,after go to plugins and u find gruops and there you make u want helper want tu have ,have with + and that they don't have -
or yu dirrvt to the plugin folder , and in grops type this
INFORMATION
color : "black"
PERMISSIONS
yapp.*[this is for MY OwNeR_PRO folder, and yapp.* mean u have all acces
-
View User Profile
-
Send Message
Posted Aug 28, 2012i wanna now how i can give player permissions of essential permissions like essentials.spawn how to @ them to the groups
-
View User Profile
-
Send Message
Posted Aug 27, 2012Is this plugin on github? I really like the look of the feature set and command structure, but honestly I prefer a single file (or perhaps a single file of groups and players global and per-world), and I like to have everything YAML so there is a standardized format (working on my own custom tool for config management). Since i understand the fact you'd probably have no interest in adding YAML as an option, I wanted to take a crack at it myself.
-
View User Profile
-
Send Message
Posted Aug 26, 2012Is It Possibal To Create Groups? If So Could Someone Reply And Tell Me The Command / Permission? And If That Is Not Possibal Can You Guys Please Add That Feature In The Plugin, That Would Be AWESOME!!!!!!!!!!
-
View User Profile
-
Send Message
Posted Aug 24, 2012@Scottwears
this will add the builder group to the player. you may need to remove the old group if you have different permissions for the group they are currently in.
/yapp -g groupnametoremove
just add this command before the
/yapp @
and it should remove them from that group.
-
View User Profile
-
Send Message
Posted Aug 24, 2012ok this might sound stupid but how to I switch a user to a different rank ladder ingame ( need to know since in the one one with file access.
the ladders look like this:
main : Member,Moderator, Co-Owner, Owner
Build : Builder, Architect
I want to know how to promote say a member to a builder ?
Thanks In advance
-
View User Profile
-
Send Message
Posted Aug 21, 2012@hobby203
From what i have seen with this plugin, it is very mutliworld compatible. you do not need to create separate group and player files for each world. you set up the global groups and global players. then if you have a specific need to negate or add permissions for a separate world you do that and it will override the global group or player. by this I mean you just have to add or negate the individual permission you want for that world, you do not have to duplicate the entire txt file for the group or player.
so if i have all the essentials permissions in the global group file and i want to remove the spawn permission from the nether all you have to do is:
this will remove the spawn permission from groupname for world_nether only and then reload the files.
to negate a permission for a world you must use the "- -" method as the regular - method does not allow you to negate the permission for a world.
-
View User Profile
-
Send Message
Posted Aug 21, 2012Hi, i'd like to use this plugin with multiple worlds, but all the files would be difficult for me if i wanted to change a permission for a group, that would affect all worlds. What i'd like to know is if you can set worlds to inherit permissions from other worlds, and if not, would i be able to symlink the files, and the plugin still recognise them?
thanks again,
hobby203
-
View User Profile
-
Send Message
Posted Aug 19, 2012First off I love the idea of this. Plugins with a little chat added, and the files look simple. However I'm brand spanking new to permissions and just learning my stuff so I was wondering if you would happen to know or have heard if this is compatible with my plugins before I spend a bunch of time trying to get them to all work together.
So far I have LagMeter, mcMMO, Residence, ClayGen, Minequery, NoCheatPlus, CompatNoCheatPlus, and DeathChests, and YAPP of course.
Any help is appreciated but I know this plugin is still fairly young so I know there is alot of testing to do. I wish I had a bit more knowledge on permission and plugins so I could test them myself and give you some feedback :\
-
View User Profile
-
Send Message
Posted Aug 19, 2012Why do you always have to write the good plugins? Shopkeepers and now this!
-
View User Profile
-
Send Message
Posted Aug 18, 2012@Streamliner97
http://www.minecraftwiki.net/wiki/Formatting_codes
here are the color names and codes.
-
View User Profile
-
Send Message
Posted Aug 18, 2012Hi I'm doing prefixes and chat colors for the group and cant figure out what the name for light blue is under " Color : "<insert color here>" " it'd be nice if you had a list posted
-
View User Profile
-
Send Message
Posted Aug 13, 2012You, my good sir, are a god.
-
View User Profile
-
Send Message
Posted Aug 13, 2012is there an easy way to add in entity interactions such as player damage and mob targeting as well as starvation, drowning, falldamage etc. to the deny permissions as well?