This is a discussion topic for the Ore project, ProtectionPerms. View the full project on Ore for downloads and more information.
ProtectionPerms
ProtectionPerms is a simple player protection and control plugin inspired by plugins like ModifyWorld or NoItem. It’s aim is to provide an easy, permissions-based way of preventing players from performing certain actions on your server, such as breaking blocks, damaging entities, or using items.
Permissions
At this time, ProtectionPerms is completely based off permissions. Without a given permission, players will not be able to perform the action the permission specifies (unless the inversion flag is set as described below). Currently, permissions come in three flavors:
Block Permissions
Primary Interaction
-
protectionperms.block.interact.<blockID>.primary
- Player can primary interact (left-click) onblockID
.- Example:
protectionperms.block.interact.minecraft:stone.primary
- Example:
Secondary Interaction
-
protectionperms.block.interact.<blockID>.secondary
- Player can secondary interact (right-click) onblockID
.- Example:
protectionperms.block.interact.minecraft:dirt.secondary
- Example:
Breaking
-
protectionperms.block.break.<blockID>
- Player can breakblockID
.- Example:
protectionperms.block.break.minecraft:stone
- Example:
Placing
-
protectionperms.block.place.<blockID>
- Player can placeblockID
.- Example:
protectionperms.block.place.minecraft:stone
- Example:
Entity Permissions
Primary Interaction
-
protectionperms.entity.interact.<entityID>.primary
- Player can primary interact (left-click) onenityName
.- Example:
protectionperms.entity.interact.minecraft:zombie.primary
- Example:
Secondary Interaction
-
protectionperms.entity.interact.<entityID>.secondary
- Player can secondary interact (right-click) onenityName
.- Example:
protectionperms.entity.interact.minecraft:pig.secondary
- Example:
Taming
-
protectionperms.entity.tame.<entityID>
- Player can tameenityName
.- Example:
protectionperms.entity.tame.minecraft:wolf
- Example:
Breeding
- Currently preventing entities from breeding is not functioning, in the meantime you can use the item interact event permissions to prevent players from right-clicking on entites with the item that makes them breed
Mounting
-
protectionperms.entity.mount.<entityID>
- Player can mountenityName
.- Example:
protectionperms.entity.mount.minecraft:entityhorse
- Example:
Dealing Damage
-
protectionperms.entity.damage.<entityID>.deal
- Player can deal damage toenityName
.- Example:
protectionperms.entity.damage.minecraft:skeleton.deal
- Example:
Hook (Fishing)
-
protectionperms.entity.hook.<entityID>
- Player can hookenityName
with a fishing pole.- Example:
protectionperms.entity.hook.minecraft:sheep
- Example:
Item Permissions
General Usage
-
protectionperms.item.use.<itemID>
- Player can useitemID
(Example: casting a fishing rod)- Example:
protectionperms.item.use.minecraft:fishing_rod
- Example:
Usage on Self
-
protectionperms.item.use.<itemID>.on.self
- Player can use (right-click) withitemID
on themselves (Example: eating bread).- Example:
protectionperms.item.use.minecraft:bread.on.self
- Example:
Primary Usage on Subject
-
protectionperms.item.use.<itemID>.on.<ID>.primary
- Player can primary use (left-click) withitemID
on the block or entityID
.- Example:
protectionperms.item.use.minecraft:diamond_sword.on.minecraft:zombie
- Example:
Secondary Usage on Subject
-
protectionperms.item.use.<itemID>.on.<ID>.secondary
- Player can secondary use (right-click) withitemID
on the block or entityID
.- Example:
protectionperms.item.use.minecraft:iron_hoe.on.minecraft:grass
- Example:
Equipping
-
protectionperms.item.equip.<itemID>
- Player can equipitemID
to an armor slot.- Example:
protectionperms.item.equip.minecraft:iron_chestplate
- Example:
Picking Up
-
protectionperms.item.pickup.<itemID>
- Player can pickupitemID
from the ground.- Example:
protectionperms.item.pickup.minecraft:diamond
- Example:
Dropping
- Not Recommended. See issue #13
-
protectionperms.item.drop.<itemID>.dispense
- Player can dropitemID
on the ground.- Example:
protectionperms.item.drop.minecraft:diamond_sword.dispense
- Example:
Drop on Death
- Not Recommended. See issue #13
-
protectionperms.item.drop.<itemID>.death
- Player can dropitemID
on death.- Example:
protectionperms.item.drop.minecraft:diamond.death
- Example:
Crafting
-
protectionperms.item.craft.<itemID>
- Player can craftitemID
.- Example:
protectionperms.item.craft.minecraft:torch
- Example:
Smelting
-
protectionperms.item.smelt.<itemID>
- Player can smeltitemID
in a furance.- Example:
protectionperms.item.smelt.minecraft:iron_ore
- Example:
Use as Fuel
-
protectionperms.item.fuel.<itemID>
- Player can useitemID
as fuel in a furance.- Example:
protectionperms.item.fuel.minecraft:coal
- Example:
A Note on BlockStates
Whenever a permission requires a blockID you can optionally include BlockState
information. For example if I wanted to give the player permission to break Andesite but not regular stone I could give them the permission protectionperms.block.break.minecraft:stone[variant=andesite]
. Giving the player the protectionperms.block.break.minecraft:stone
permission still allows them to break all variants of stone as normal.
Conflicts
When creating your permission nodes you may run into situations where you have conflicting permissions. For instance, you may not be able to place a block even though you have the place permission because you don’t have the corresponding use permission for the block as an item, in this case pay attention to the message ProtectionPerms gives you when you try to execute an action, it should point you toward the permission node you need.
Inverting Permissions
ProtectionPerms runs in “whitelist” mode, where players cannot perform any actions that have not been granted to them. You can change this behavior by changing the mode in the config file at ~/config/protectionperms.conf
.
Whitelist mode prevents players from performing any action unless the according permission node is granted to them.
Blacklist mode allows players to perform all actions, unless the according permission node is granted.
Default Config
# ProtectionPerms
# The mode the plugin runs in.
# Whitelist mode prevents players from performing any action unless the according permission node is granted to them.
# Blacklist mode allows players to perform all actions, unless the according permission node is granted.
# Values: whitelist or blacklist
# Default: whitelist
mode = whitelist
Migrating to v1.4.0
ProtectionPerms v1.4.0 changed the configuration file, and it must be migrated. The easiest way to do this is to delete the current configuration file.
See above for the default configuration file for v1.4.0.
If you set invert=true
in the current config, change the mode to blacklist
in the new config. (mode = blacklist
)
If you never made any changes to the old config file, just delete the old config file. ProtectionPerms will generate a new one for you.
If you have any questions, feel free to open an issue.
Support Me
I will never charge money for the use of my plugins, however they do require a significant amount of work to maintain and update. If you’d like to show your support and buy me a cup of tea sometime (I don’t drink that horrid coffee stuff :P) you can do so here