[Outdated Use Ore Topic] ProtectionPerms | Control Breaking Blocks, Damaging Mobs, and More!

##ProtectionPerms - Player Protection and Control Github All Releases GitHub issues license

#About:
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.

#Downloads:
You can grab the latest build off of GitHub here!

#Github Repository:
You can view the GitHub repository of ProtectionPerms here!

##Permssions:
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. Currently, permissions come in three flavors:

###Block Permissions:

  • protectionperms.block.interact.<blockID>.primary - Player can primary interact (left-click) on blockID.

    • Example: protectionperms.block.interact.minecraft:stone.primary
  • protectionperms.block.interact.<blockID>.secondary - Player can secondary interact (right-click) on blockID.

    • Example: protectionperms.block.interact.minecraft:dirt.secondary
  • protectionperms.block.break.<blockID> - Player can break blockID.

    • Example: protectionperms.block.break.minecraft:stone
  • protectionperms.block.place.<blockID> - Player can place blockID.

    • Example: protectionperms.block.place.minecraft:stone

###Entity Permissions:

  • protectionperms.entity.interact.<entityID>.primary - Player can primary interact (left-click) on enityName.

    • Example: protectionperms.entity.interact.minecraft:zombie.primary
  • protectionperms.entity.interact.<entityID>.secondary - Player can secondary interact (right-click) on enityName.

    • Example: protectionperms.entity.interact.minecraft:pig.secondary
  • protectionperms.entity.tame.<entityID> - Player can tame enityName.

    • Example: protectionperms.entity.tame.minecraft:wolf
  • protectionperms.entity.breed.<entityID> - Player can breed enityName.

    • Example: protectionperms.entity.breed.minecraft:cow
  • protectionperms.entity.mount.<entityID> - Player can mount enityName.

    • Example: protectionperms.entity.mount.minecraft:entityhorse
  • protectionperms.entity.damage.<entityID>.deal - Player can deal damage to enityName.

    • Example: protectionperms.entity.damage.minecraft:skeleton.deal

###Item Permissions:

  • protectionperms.item.use.<itemID>.on.self - Player can use (right-click) with itemID on themselves (Example: eating bread).

    • Example: protectionperms.item.use.minecraft:bread.on.self
  • protectionperms.item.use.<itemID>.on.<ID>.primary - Player can primary use (left-click) with itemID on the block or entity ID.

    • Example: protectionperms.item.use.minecraft:diamond_sword.on.minecraft:zombie
  • protectionperms.item.use.<itemID>.on.<ID>.secondary - Player can secondary use (right-click) with itemID on the block or entity ID.

    • Example: protectionperms.item.use.minecraft:iron_hoe.on.minecraft:grass
  • protectionperms.item.drop.<itemID> - Player can drop itemID on the ground.

    • Example: protectionperms.item.drop.minecraft:diamond_sworld

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. :wink:

#Suggestions:
ProtecitonPerms is still under heavy development and I am completely open to suggestions as to how it should function. As the implementation continues to become fleshed out I intend to add more permission nodes, most notably with items when the Inventory API is released, but do let me know if you can think of any more!

6 Likes

New release ProtectionPerms v0.1.1!
Changes:

  • This release brings compatibility with Sponge Beta Build 3.0.0

Enjoy!

Can you add system permission per world ? ^^
Thanks and nice plugin !

That may be better handled by your permissions plugin itself, I believe (though I have not confirmed), that PEX 2.0 supports per-world permissions.

1 Like

New release ProtectionPerms v0.2.0!
Changes:

  • This release brings compatibility with Sponge API 4.0

Enjoy!

New release ProtectionPerms v0.3.0!
Changes:

  • This release brings compatibility with Sponge API 5.0.0-SNAPSHOT

Enjoy!

1 Like

I installed the plugin but i don’t know how to use it. Pls help

Well to start off you will need a permissions plugin like PermissionsEx or SimplePermissions. Then, simply give players permission to perform the actions you would like them to be able to do. So for example if you want players to be able to break stone blocks on your server you would give them the permission protectionPerms.block.break.minecraft:stone. If players don’t have the appropriate permission for an action they won’t be able to perform it!

1 Like

error in spongeforge-API5.0 with pixelmon mod.

Could you post a link to a pastebin of the stacktrace? It’s a bit hard to fix if I can’t see the error :stuck_out_tongue:

Link error code : http://pastebin.com/1wmYKS83

error spongeforge-API5.0-1.10.2-1709 with pixelmonmond 4.3.0 beta 7

Can you add permission nodes for dropping and picking up items?

#Permission Naming Convention, What Convention? Github Releases (by Release)

Release v0.4.0

Minecraft 1.10.2 - Tested on spongevanilla-1.10.2-5.0.0-BETA-138

Changes:

  • Changed permissions prefix from protectionPerms to protectionperms to match naming convention
  • Fixed java.lang.NoClassDefFoundError: org/spongepowered/api/event/entity/MountEntityEvent
  • Added protectionperms.entity.breed.<entityName> permission
  • Added protectionperms.entity.mount.<entityName> permission
  • Swapped entity names to entity IDs in permissions, meaning entities now have a minecraft: prefix, example: minecraft:cow instead of cow

Enjoy!

@11115 Should be fixed now, sorry for the delay
@Tarnadas I plan to add dropping/picking up item permission nodes once the Inventory API is complete

Have I understood your plugin correctly? In order to play the game, a player would need a permission node for every block and item times two (for primary, secondary & break, place)?

Or is there some kind of wildcards or regex available? I didn’t see anything in the listeners’ code.

Hello Monotonehell!

You are correct, in order to play the game you would need permission for every action. The reason there is no wildcard or regex support directly in ProtectionPerms is because that is typically the domain of the the permissions plugin you are using. Pex for example has regex support :slight_smile:

#Let Them Eat Cake! Github Releases (by Release)

Release v0.5.0

Minecraft 1.10.2 - Tested on spongevanilla-1.10.2-5.1.0-BETA-359

Update for stable release of API 5.0

Changes:

  • Removed protectionperms.entity.breed.<entityName> permission as it was broken, for now just rely on the item interact permission: protectionperms.item.use.<itemID>.on.<enityID>.secondary
  • Added on.self node to item use permissions to prevent the player from using an item on themselves, (Ex: eating cake)
    • protecitonperms.item.use.minecraft:cake.on.self
  • Added protectionperms.item.drop.<itemID> permission to control players dropping items on the ground

Enjoy!

Is it feasible to add a config option (and a config itself I guess :stuck_out_tongue: ) so that this functions as a blacklist rather than a whitelist?

Based on the nature of permissions not really, however if your permission plugin supports regex you could simply give all players permission to protectionperms.* and then explicitly remove permissions for actions you don’t want the player to perform, essentially giving you the blacklist functionality you desire. :slight_smile:

1 Like

ProptectionPerms now has an Ore project page here! Please continue any discussion of ProtectionPerms there! :slight_smile:

Please use the Ore page for further discussion :slight_smile: