Introduction
Polygon based area protection, with child zones, permissions inheritance, and map border protection. Lead Developer jblaske
Features
- Polygonal area creation. (Not just cuboids!)
- In-game zone creation.
- Provide a Circular border to your map.
- Hierarchical Permissions with Child and Parent Zones.
- Display Entering and Exiting messages in chat.
- Enhanced /who
- Advanced control of zone based regeneration
- Many zone specific controls for things like Fire, Explosions and Mob spawning control
Creating Zones
Use the /zone command at any time for in game help. This requires that you have the epiczones.admin permission.
The following is an example for creating a PVP enabled arena zone in game:
/zone create arena
You are then put into draw mode, use the zoneTool in your config (Default is Stick) to right click and set points. When you are done drawing, enter the command:
/zone save
When a zone is created, its Name is defaulted to the tag, and its world is defaulted to the world you are in. Both can be changed after drawing your polygon.
/zone name PVP Arena //Sets name to 'PVP Arena'
/zone flag pvp true //Enables PVP
/zone message enter PVP is enabled, beware! //Sets the enter message to a informative warning
/zone message exit You are no longer in a PVP zone, you can relax now. //Sets the exit message to let players know they are save.
/zone save //Saves the zone to file.
And your zone is done!
Child/Parent Zones
If your zone is within the borders of another zone, you will want to make sure it is a child of that zone.
These commands will show you how to set a zone as a child to another zone:
/zone edit bigcity
/zone addchildren arena
/zone save
Next you will want to set some permissions on your zone. In these next commands we will make it so that only members of our server can enter the arena.
/zone edit arena
/zone perm default entry deny
/zone perm member entry allow
/zone save
More information on Permissions can be found below.
Now you are all set, you have a basic PVP arena zone that is a child to the big city!
NOTE: You must have only 1 point selected when you save your zone, to make your zone a circle. NOTE: You must have at least 3 points selected when you save your zone, to make your zone a polygon.
Map Radius
Map radius, when enabled, will prevent players from traveling outside of the fixed range from 0,0 on the map.
To allow a player to ignore the map radius add this to their permissions in your permissions plugin configuration.
epiczones.ignoremapradius
Permissions
EpicZones handles its zone based permissions internally. Each zone controls who can do what within it. There are also default settings for when no zone can be found where a player is located. These are the "default..." options in the config file.
To give a player permissions to do things in a zone, you add that player, or their group (if you are using a permissions plugin that has grouping) into the zone's permissions.
Permissions are set while in edit mode on a zone.
If you want to deny all players in the default group, the ability to build within a zone. You would use the following command:
/zone perm default build deny
If you would like a member to be able to ignore all zone permissions add this to their permissions in your permissions plugin configuration.
epiczones.ignorepermissions
Possible Permission Nodes
- build
- The placement of blocks and pouring of buckets
- destroy
- The destruction of blocks and the scooping of buckets
- entry
- Player walk or teleport within a zone.
Permission Hierarchy
These are the steps permission checks when seeing if a user has permission to perform an action. If the answer is 'no' the logic progresses deeper.
- Is player explicitly denied?
- Is player explicitly allowed?
- Is player explicitly denied in parent?
- Is player explicitly allowed in parent?
- Is player allowed by default config?
- Is player explicitly allowed?
Flags
PVP
ValuesZone level control to dictate weather player versus player damage is allowed.
- True A setting of true, means that players will be able to damage each other with weapons and fists.
- False A Setting of false, means that players will not be able to damage each other with weapons and fists.
- You must have PVP enabled in your server.properties file.
- When checking for pvp allowance, it checks the zone of the player being damaged, not the player dealing the damage. Syntax
/zone flag pvp <true/false>
Regen
ValuesZone level control that dictates the regen or degen of health when a player is inside the zone.
- Amount the amount the players health is modified by each regen tick (can be negative). A value of 1 equals half a heart.
- Delay (optional) Amount of time a player must be within the zone
- Interval (optional) Frequency of regen tick for that zone in miliseconds.before regen ticks apply to them
- MaxRegen (optional) The maximum amount the zone will regen a player's health.
- MinDegen (optional) The minimum amount the zone will degen a player's health.
- RestDelay (optional) A length in time that a user must hold still before the regen/degen effects will take place.
- BedBonus (optional) The amount of bonus regen if a player is in a bed.
- Currently, you cannot modify MaxRegen, MinDegen, RestDelay nor BedBonus in game. These values must be changed manually in the zone's yml file.
- Moving the mouse to look around still counts as moving, and will prevent a player from entering 'rest' mode. This will be changed in the future.
/zone flag regen <amount> [Delay] [Interval] [MaxRegen] [MinDegen] [RestDelay] [BedBonus]
Mobs
ValuesZone level control of the mobs allowed to spawn within.
- none
- all
- animals
- monsters
- squid
- chicken
- cow
- sheep
- pig
- wolf
- creeper
- zombie
- ghast
- giant
- skeleton
- slime
- spider
/zone flag mobs [value] [value] [value]
Fire
ValuesZone level control of fire Flag use: /zone flag fire ignite spread
- True A setting of true, means that fire will be allowed within the zone.
- False A Setting of false, means that fire will be extinguished within the zone.
- Setting the value to false, will not prohibit mobs from catching fire within a zone. To prevent this, you must also set up the Fire Burns Mobs flag.
/zone flag fire <true/false> [true/false]
Explode
ValuesZone level control of terrain destruction and damage from explosions. Flag use: /zone flag explode tnt creeper ghast
- True A setting of true, means that explosions will be allowed within the zone.
- False A Setting of false, means that explosions and damage caused by them will be blocked within the zone.
/zone flag explode <true/false> [true/false] [true/false]
Fire Burns Mobs
ValuesZone level control to dictate weather or not fire will kill mobs. This can be used to keep mobs from dyeing during the day, or to keep your pigs from roasting when they walk over your lit netherrack.
- True A setting of true, means that fire will damage mobs.
- False A Setting of false, means fire will not damage mobs.
- In order to utilize this flag, you must also set the value of the fire flag to false.
/zone flag fireburnsmobs <true/false>
Commands
All commands can be accessed with the ez prefix, to circumnavigate command conflicts, and have other aliases to allow easy use of the commands.
Zone
Permissions Required: epiczones.admin
AliasesThe zone command is the core of EpicZones, its how you define and manage all of your zones in game.
- ezzone
- zone
- create
- save
- flag
- radius
- floor
- ceiling
- child
- owner
- message
- name
- draw
- confirm
- edit
- world
- cancel
- delete
- list
- info
- perm
You can color code your zone messages and names with the following color key:
&0 BLACK
&1 DARK_BLUE
&2 DARK_GREEN
&3 DARK_AQUA
&4 DARK_RED
&5 DARK_PURPLE
&6 GOLD
&7 GRAY
&8 DARK_GRAY
&9 BLUE
&A GREEN
&B AQUA
&C RED
&D LIGHT_PURPLE
&E YELLOW
&F WHITE
/zone <sub-command> [parameter] [parameter]
Who
Permissions Required: epiczones.who
AliasesGives a list of players and the zones that they are in, if they are in a zone.
- ezwho
- who
- online
- whois
/who [all]
Reload
Permissions Required: epiczones.admin
AliasesReloads all of the EpicZones configurations and zones into server memory.
- ezreload
- reload
/ezreload
Hero Chat Integration
Enable hero chat in your EpicZones config file. Make sure you have a channel in your HeroChat config that has the same name as your zone's tag. That's it! EpicZones will auto leave or join any channels that match up to your zones. Enter a child zone that doesn't have a channel? no worries, EpicZones checks for parent channels.
Example Files
Default Config.yml
defaultEnter: true
defaultDestroy: true
defaultBuild: true
mapRadius: 1000
enableRadius: true
* Default permissions are used, when nothing is specified for any given user/group.
Example Zone Config
ceiling: 128
childzones: []
entertext: Entering Test Zone 1...
exittext: Leaving Test Zone 1...
explode: false
fire: false
fireburnsmobs: false
floor: 0
mobs:
- all
name: Test Zone 1
owners:
- jblaske
permissions:
default:
destroy: deny
build: deny
entry: deny
points: '-20:20 20:20 20:-20 -20:-20 '
pvp: false
radius: 0
regen:
amount: 0
bedbonus: 0
delay: 0
interval: 500
maxregen: 20
mindegen: 0
restdelay: 0
sanctuary: false
type: POLY
world: world
Changelog
- Version 0.25
- Enhanced Explode flag
- Explode now tracks TNT, Creeper and Ghasts all separately.
- Enhanced Fire flag
- Fire now tracks Ignite and Spread separately.
- Fixed some bugs with /who reporting funky information
- Fixed a bug that allowed players to use buckets when entering minecarts
- Fixed a bug with Min/Max De/Regen.
- Enhanced Explode flag
- Version 0.22.1
- Fixed a bug causing mobs not to spawn
- Cleaned out a bunch of old commented out code
- Version 0.22
- Brand New Zone Detection Algorithm, much more efficient and properly works with Global zones now.
- Permissions now will no longer duplicate
- Permissions detection is now more efficient
- Block break permissions are now more efficient
- Other minor bug fixes found along the way
- Version 0.21
- Fixed bug causing mob flags to not work properly.
- Fixed bug causing PVP zones to not function properly.
- Fixed a bug where signs and pictures could be placed with out permissions.
- Fixed a bug that didn't let you override inheriting group permission denies.
- When in edit mode, 3 block tall pillars of bedrock will be generated at the zone points, for easy identification of zone borders
- Default global zones now replace the old map radius logic.
- Fixed a bug in regen
- Other things I can't remember at the moment.
- Version 0.20.1
- Bug fix causing groups to not work properly
- Version 0.20
- Zone based permissions
- Enhanced Regen
- Refined Ownership
- Bug Fixes
- Code Cleanup
- Version 0.19
- Added Sanctuary flag
- Added Owners
- Improved Fire Suppression
- You will no longer take damage from an explosion if a zone is marked for no explosions
- You will no longer take burning damage in a zone that is marked for no fire
- Lots of other little things I can't remember.
- Version 0.18
- Multiworld bug fixes
- Version 0.17
- Support for GroupManager 1.0
- HeroChat 4.1.0 Support
- Permissions Check for /who
- PreLoads multi world plugins
- EpicGates
- MultiVerse
- A few other bug fixes
- Version 0.16
- fixed a bug causing EZ to improperly detects movement in world, outside of zones
- fixed a few bugs with HeroChat integration
- Version 0.15
- Verified support for CB 440
- Some more help message coloring.
- Version 0.14
- Fixed Permissions 2.5 support
- Fixed /zone command issues
- Added world based default permissions. (
epiczones.<worldname>.<flag>.[deny]
)
- Version 0.13.1
- Support for Permissions 2.4
- Version 0.13
- Removed support for Permissions 2.0
- Updated for new bukkit versions
- Added multi world map radius border
- Lots of code refactoring.
- Version 0.12
- Zone Based Fire Suppression
- Zone Based Explosion Suppression
- Zone Based Mob Lists
- Zone List command
- Zone Info command
- Several Stability Fixes
- /reloadez now works properly
- Setting flags in-game should now work properly
- Version 0.11.1
- Critical Fixes - Do not use Version 0.10 or 0.11
- Version 0.10
- Cleanup for newer versions of bukkit
- Circular Zone support.
- Version 0.9
- Added HeroChat support
- Version 0.8
- Fixed a bug when setting PVP flag
- Enhanced Border Protection
- Will now notify players with ignoremapradius when they enter/exit the radius.
- Border prevents Build/Destroy actions.
- Border properly blocks vehicles.
- Enhanced Zones
- Zones properly watch Vehicles now.
- Added regen flag to zones
- Flag template: regen:interval:amount:delay
- Interval: Frequency of regen tick for that zone.
- Amount: the amount the players health is modified by each regen tick (can be negative)
- Delay: Amount of time a player must be within the zone before regen ticks apply to them
- Version 0.7
- Fixed a bug in permissions where child explicit deny was being overridden by the parent zone.
- Fixed a bug where permissions were not properly refreshing when using /reloadez
- Version 0.6
- Added In-Game Zone Creation
- Added Multi-World Suport
- Refined "Point Within Zone" detection even further.
- Added permissions to /zone, /reloadez and /who commands.
- Version 0.5
- Added PVP flag support.
- Fixed bug with default permissions overriding explicit deny.
- Fixed a bug that would cause a border preventing movement to lock a player within it.
- Made movement checking more efficient.
- Version 0.4
- Fixed some issues in map radius
- Fixed bucket zone detection
- Added Distance to /who
- Version 0.3
- Revamped permissions
- Revamped parent/child relationships
- Refined "Point Within Zone" detection
- Reloading the server won't cause a crash now
- Ability to ignore permissions
- Ability to ignore map radius
- Version 0.2
- Fixed map radius detection
- Made map radius use configurable
- Fixed group based permissions checking to work a little better.
- Version 0.1
- Initial Release