AntiBuild

From Essentials

Jump to: navigation, search

EssentialsAntiBuild is a fairly new plugin, it is the result of pulling out the antibuild feature from EssentialsProtect and adding better support for blocking certain actions.

Contents

Overview

The functionality moved to AntiBuild is the following:

  • Block place blacklist
  • Block break blacklist
  • Item use blacklist
  • Piston block move blacklist
  • Permission system based place protection
  • Permission system based break protection
  • Permission system based use protection

Old system support

EssentialsAntiBuild still supports the old EssProtect blacklist system syntax, where you list types of blocks to be blocked server wide.

This system allows you to list items by id or name with the following config settings:

 blacklist:

   # Which blocks should people be prevented from placing
   placement: 10,11,46,327

   # Which items should people be prevented from using
   usage: 327

   # Which blocks should people be prevented from breaking
   break:

   # Which blocks should not be pushed by pistons
   piston:

You can exempt players from these limits by using the following permissions:

 essentials.protect.exemptplacement
 essentials.protect.exemptusage
 essentials.protect.exemptbreak

Build Alert System

Essentials still supports the old alert system, where you list item id's which will trigger staff alerts when placed/broken/interacted with.

This system allows you to list items by id or name with the following config settings:

 alert:
   on-placement: 10,11,46,327
   on-use: 327
   on-break:

People with the following permission will get notified whenever a user triggers these alerts:

 essentials.protect.alerts

You can also exempt players from triggering these alerts by giving the player:

 essentials.protect.alerts.notrigger

AntiBuild

Legacy Support

In many permissions systems, you will find support for build toggles, or have build permissions intended to be given to allow people to build. If a user has building enabled in one of these systems or has the following opt out permission, they will be exempt from the following permissions checks.

Global opt out

If you have a player who you don't want to perform build checks on. I.e. You want them to be able to build with any non blacklisted block. Give the player the following permission. This is recommended where possible as it reduces the number of checks the server needs to make every time a player places/breaks a block.

 essentials.build

Permission control

Assuming a player doesn't have 'essentials.build' permission or 'build: true' in their permissions file, they will be checked for item based permissions whenever they try to place, interact with or break a block.

The permissions follow the following syntax:

 essentials.build.place.<id>
 essentials.build.place.<id>:<data>
 essentials.build.break.<id>
 essentials.build.break.<id>:<data>
 essentials.build.interact.<id>
 essentials.build.interact.<id>:<data>
 essentials.build.craft.<id>
 essentials.build.craft.<id>:<data>
 essentials.build.pickup.<id>
 essentials.build.pickup.<id>:<data>
 essentials.build.drop.<id>
 essentials.build.drop.<id>:<data>


These permissions can be given directly or be given using wildcards, so for example its possible to do the following:

 permissions:
 - essentials.build.*
 - -essentials.build.place.29

Which would allow a user to place/break every type of block except for placing pistons.

Caveats

PEX

PEX not following superperms rules properly will behave slightly different in that the '<id>' perms will not work. You can still use the '<id>:<data>' perms however. If you need to whitelist/negate all datavalues for a single block, instead use: '<id>:*'. For example:

 permissions:
 - -essentials.build.place.54:*
 - essentials.build.*

Alternatively you can use the modifyworld plugin that ships with PermissionsEx.

Interacting

When a user tries to place a block, they will also be 'interacting' with the block they try to place it on. So if a player tries to place a block of dirt on sand, they will need both the interact permission for sand, and the place permission for dirt. The 'interact' check is based on the item for which the user clicks on, not always the block below. Generally if you want a user to be able to build, it would be best to give them 'essentials.build.interact.*' or 'essentials.build.*' or the global opt out permission above.