ClientPermissions
About ClientPermissions
Note
Unless otherwise indicated, this plugin will work with all versions of Bukkit and all permissions plugins that support SuperPerms.
Introduction
ClientPermissions is a lightweight plugin which allows supported client mods to be controlled using ordinary bukkit permissions. It is designed to provide a more powerful and manageable alternative to "block codes" (special colour code strings added to the server MOTD to disable certain client mods), allowing client mod permissions to be granted per-group or per-user... in fact exactly like plugin permissions, but for mods!
The plugin uses plugin channel messages to communicate with supported client mods, and everything else is handled by whichever bukkit permissions system you have installed.
Requirements
You will require a functioning permissions plugin already installed to be able to use this plugin, and should be familiar with how to configure permissions.
Installation / Setup Tutorial Video
Setting up the plugin
To get started using the plugin you will need to add one or more mods to the plugin. Each supported mod provides a short name which is used by the plugin to identify the mod and map its permissions. The easiest way to find out a mod's identifier is to install it yourself and connect to your server, then type the command
/clientperms query
This will report the short names and versions of all permissible mods you have installed:
Player: Mumfrey Mods: Examplemod 1.5
To add permissions support for this mod to your server, issue the command
/clientperms add examplemod
Depending on your permissions plugin, by default adding a mod will DENY all that mod's permissions. You can then selectively grant permissions to players or groups using your permissions plugin. For example if you are using PermissionsEx you could use:
/pex user Mumfrey add mod.examplemod.somepermission
The mod's supported permissions can be found in the mod's documentation, or see the section below on discovering supported permissions. As a convention most mod permissions will take the form "mod.<modname>.<permission>", so for example to grant full access to all of a mod's functionality to the group "moderators", you could use:
/pex group moderators add mod.examplemod.*
Again this example assumes you are using PermissionsEx, change the command to the syntax used by the permissions plugin you are using.
Additional Information
- Here you can find out about commands supported by the plugin
- See also, how to discover supported permissions for client mods
Supported mods
At the current time the following mods are known to support ClientPermissions for controlling features:
- The Macro / Keybind Mod versions 0.9.4 and later by Mumfrey
- VoxelPlayer version 0.9.7 and later by Mumfrey
- VoxelMap for version 1.6.2 and later by MamiyaOtaru
- AutoFish by troyboy50
- VoxelVision by anangrybeaver
For mod authors
If you want to add ClientPermissions support to your own projects, contact Mumfrey or you can check out the source on GitHub
This appears to work fine for 1.12, though I am getting the permissions nodes for VoxelMap so I can do some explicit testing to verify.
This works for me in Spigot 1.8.9 and 1.10.2.
Note that you need to do /clientperms add {modname} for the plugin to do anything.
With no perms set, it will block all registered actions (in modinfo.yml), for your added mods. You can then allow actions using perms.
Omnisicence v1.1.0 is also supported. Tested, works
This updated for 1.9.4?
@HeroCC
Download the mod you want to block player to enter, then open with winrar/winzip and see the "ID" of mod on "mcmod.info".
With the name "id" of mod, you can set a fake version of this mod necessary to player use to join on server! If you a fake verison like "999999" the player with that mod cannot join on server ;)
It's a shame this does not work with 1.8. This is a very useful mod for server owners, could literally be the best anti-cheat plugin available if it were kept update. Every cheat mod is detectable, this is proven by the fact that the mods check the current version for an update. For example, if you run xray and a new version is released, you will see a nag notice that stays on your screen until you update or remove xray. This same concept can be used by servers to check a client for xray.
Can you post an example mod, saying how to include it?
what are the ClientPermissions Permissions to alow a specefic rank to work on the ClientPermissions commands?
Doing /clientperms query doesnt show any of the mods that i have that are supposed to be known for supporting this plugin.
Your very own Macro Mod doesnt show up, and voxelmap doesnt show.
Hello thanks to update :)
With your work on sponge, i don't know how you find time to update
your many useful plugin ! Many thanks !
I have try last version with last spigot 1.8 and modinfo.yml is'nt created ?
Permissions working, and the plugin work (i try with Voxelmap and autofish)
But we don't know what permissions are created.
I have a problem with adding voxelmap, I have added voxelmap, voxel, voxelradar, voxelplayer but nothing worked. And players are still able to use the radar option. And other mods are working fine. However on shotbow is the radar disabled somehow. Help please
Awesome work, Mumfrey!
@veteranmina
No, only actions which can be used for cheating can be controlled via permissions. ENCODE and DECODE don't come under this category since all they do is base64 encode an input value, this is used for example to allow users to create scripts that can communicate with each other via /msg without worrying that values will be corrupted in transit. The values aren't encrypted, just encoded.
If you want to see the contents of these messages, just base64-decode them, in fact it's probably better to leave the user access to the command as they will essentially draw attention to their clandestine intentions by using ENCODE, but the messages are easily convertible back to plain text for you. In fact, you can even use macros itself to do the decoding within minecraft!
If you have further questions about this please PM me on Minecraft Forums because I don't check bukkitdev very often and this site still doesn't provide email notifications (grrr).
Thank you mumfrey for answering, next question.
With your macros mod, is there a way to disable the permission to use "Encode" (or any other that is not in the list already) as it seems there is a way to encode messages on our server that renders our socialspy and server console unable to read chat from that person, very unlikely someone will use it, but we don't want to take a chance someone is.
@veteranmina
If you're having issues with a particular mod please contact the mod author as I am not able to do anything about bugs in specific mods.
Issue here, I am not sure if it is due to client's voxelmap version is, but it seems it did not disable the cave/radar ability. Although on my test-alt account it has disabled both. I know he is receiving clientperms as his macros have been disabled as needed.
I have entered: /clientperms addmod voxelmap /clientperms addmod voxel /clientperms addmod macros
I have also done a refresh and query and it seems to not see his voxelmap at all while it works with my alt.
We are using spigot 1.7.9 and he is using voxelmap 1.7.2-1.0
I use this with voxelmap 1.7.10 in 1.7.9R3 spigot and that working good
just put a "/clientperms addmod voxelmap" on server and now
Radar & cave are disable if i don't use node to bring up !!!
@godgodgodgo
I use spigot and is not working too, but only the permission! To work, i have changed the version needed to use on my server version(in config file) to an inexistent version of macros, and the player always receive the message "Outdated version of macros" and is forced to remove then ;)
@godgodgodgo
That is a known issue with MCPC-Plus and nothing to do with the plugin itself.
@andrewkm
No, it's not really necessary for a plugin which is compatible with all versions of bukkit and never changes.
Do you have a jenkins for this?