Domain - Land Claiming & Protection icon

Domain - Land Claiming & Protection -----

Highly configurable land claiming, grief protection & protection fields for 1.14-1.20




Change Log

This update addresses changes made to Myriad Clans

If you use Myriad Clans and Domain, please be sure to update both at the same time
----------, Aug 23, 2024

Change Log 1.10.2

This update addresses a bug on startup when trying to connect to bstats
----------, Jul 15, 2024

Change Log

This update makes a very small change in removing the collation for the shared Ibex MySQL table

The collation was causing issues with some older versions of MariaDb

If you aren't using MariaDb, or a database at all, then you won't need to update this time around.
----------, Mar 22, 2024

Change Log 1.10.0

This is a fairly large change with a fairly small (but long requested) new feature list.

Before we go any further..

BACK UP YOUR DOMAIN FOLDER BEFORE UPDATING
I will provide whatever support I can via Discord if you're having issues, but if you don't back up the folder, I may be limited in what I can do to help.


New Features

MySQL support has been added

To use this, you MUST add the following to your config, and then alter to suit your requirements

Code (YAML):
  # If you wish to save to MySQL database instead of file, make sure to fill this section in with the appropriate
    # information, and set use = true
    # If you have use set to true, your MySQL database MUST be accessible or Domain will error out
    # If you do not wish to use MySQL, leave use = false, and the Domain data will be saved in your data folder
    mysql
:
  # If true, Bazaar will attempt to use the database
    use
: false
    # Your hostname/IP address
    host
: "your_host"
    # Your MySQL port (default is 3306)
    port
: 3306
    # Your database name, defaults to "ibex" but can be any existing database
    # Database MUST exist before running
    database
: "ibex"
    # Your username and password must have permission to your database
    username
: "your_username"
    password
: "your_password"
If your database is not accessible, Domain WILL error out.

With MySQL comes two new commands which can be run from console only.

/domain transfer_to_mysql

This will take all the currently loaded fields and save them to the database (assuming it is accessible), it does NOT remove the files from the Data folder.

After you run it, you should be able to stop the server, change the config to use mysql, and it will read from database on next startup.

NOTE: THIS WILL DELETE ANY ENTRIES FROM THE ibex_plugin TABLE IN THE DATABASE FOR DOMAIN BEFORE SAVING THE FIELDS

/domain transfer_to_file

This command does the opposite of above, it reads all the currently loaded fields and saves them to file. It does NOT remove the entries from the database.

NOTE: THIS WILL DELETE ANY DATA FILES FROM THE Data FOLDER BEFORE SAVING THE FIELDS

This command however could be useful for backing up the data from the database, or if you decide to stop using MySQL.

bStats Added

bStats collects anonymous usage data - and you can turn it off using the bStats config file, or, you can add the following to the Domain config.yml

Code (YAML):
allow_bstats : false
This will default to allowing bStats.

Other Updates

The package has changed from work.torp.domain to com.ibexmc.domain - If you are using the API, please make appropriate changes

I have stripped out most of the generic functions from Domain, including things like localization, sending messages, various string and number functions, inventory/item functions, etc.

These have all been moved to an internal library which is shared across all Ibex plugins moving forward.

This update necessitated MAJOR internal changes, and while I do not anticipate any issues, please let me know if something seems to work a little differently.

Domain Blueprints - The blueprint was the internal configuration for your blocks (griefprevent, city, etc.) - This has been retired and replaced with a LegacyFileConfig - note the use of the word Legacy here - as of this update, the old format is considered legacy - a new version will be coming in a future update. You won't need to worry about it as Domain will do all the conversions for you, but if you're hooking into Domain, you may see changes.

Having trouble?

Come speak to us on Discord! https://discord.ibexmc.com
----------, Oct 24, 2023

Change Log 1.9.20

Fun little update this time around.

Dynmap Support!

This has been one that has been requested a fair bit over the past few years, and finally added now. You can display the fields on your Dynmap with a custom icon and name, as well as field type specific overrides for color and opacity

[​IMG]

This requires a new flag

SHOW_ON_DYNMAP

And will require some config.yml changes as outlined below (copy and paste into your existing file)

Code (YAML):

# Dynmap Support
# enabled: true/false - If true, dynmap support is enabled if it exists on the server
# line_hex_color: This is the default color of the outline for domain fields
# fill_hex_color: This is the default color of the fill for domain fields
# fill_opacity: This is the opacity of the fill for domain fields, from 0.0 to 1.0 with higher being more opaque
# To get hex color codes, you can use a site such as https://htmlcolorcodes.com/
# show_marker: true/false - If true, will show a marker with the field name
# marker_icon: The icon to use for the field - the marker will always show at the block location
# To get valid icon names, see the Dynmap Wiki - https://github.com/webbukkit/dynmap/wiki/Using-Markers
dynmap
:
  enabled
: true
  line_hex_color
: 8B589C
  fill_hex_color
: F7E6FC
  fill_opacity
: 0.5
  show_marker
: true
  marker_icon
: default
 
The notes in the config file should explain it, but briefly, this is the default for all fields that have the SHOW_ON_DYNMAP flag - the line hex color is the outline color, fill hex color is the shading color, and fill opacity is how see-through or not shading is. Show marker will display an icon where the block itself is, and will include the name of the field when hovered over (see the image above), and the marker icon is the icon being used, the full list of which can be pulled from the Dynmap Wiki

You can also add the following to each block yml file if you want to, but you do not HAVE to - if you don't, the defaults from config.yml will be used

Code (YAML):
# Dynmap Support
# These values are overrides from the entries in config.yml - If they are not included, the defaults will be used
# To disable the field from showing on Dynmap, remove the SHOW_ON_DYNMAP flag
# line_hex_color: This is the default color of the outline for domain fields
# fill_hex_color: This is the default color of the fill for domain fields
# fill_opacity: This is the opacity of the fill for domain fields, from 0.0 to 1.0 with higher being more opaque
# To get hex color codes, you can use a site such as https://htmlcolorcodes.com/
# show_marker: true/false - If true, will show a marker with the field name
# marker_icon: The icon to use for the field - the marker will always show at the block location
# To get valid icon names, see the Dynmap Wiki - https://github.com/webbukkit/dynmap/wiki/Using-Markers
dynmap
:
  line_hex_color
: "FF9730"
  fill_hex_color
: "FCD1A5"
  fill_opacity
: 0.4
  show_marker
: true
  marker_icon
: "house"
 
As stated above, these are overrides - so if they exist, they will be used, if you leave them out, the defaults will be used. Don't forget to set the SHOW_ON_DYNMAP flag on each block type you want listed


Other Changes

Player interaction lookups have been cleaned up and no longer rely on version specific functions - this should make things a little more efficient

Cleaned up a bug where Vault wasn't installed was throwing a null error in console

As always - any issues or concerns, please reach out on Discord
----------, Jul 6, 2023

Change Log 1.9.19

Added 1.20 support
New flag:
PREVENT_INTERACT_BOOKSHELF_BY_NONALLOWED - Prevents you placing books into, or removing books from a bookshelf
Added support for Bamboo and Cherry doors/signs/pressure plates etc.
Added support for Camel and Sniffer spawn eggs
Removed warning when a flag is not included in flags.yml (default values are used)
Bug fixes:
- Fixed support for CRIMSON and WARPED doors that were not working

Add the following to flags.yml
Code (YAML):
 PREVENT_INTERACT_BOOKSHELF_BY_NONALLOWED:
    name
: "&bPrevent Bookshelf Access"
    lore
: "&fPrevents a Non-Allowed player from|&faccessing bookshelves"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
----------, Jun 12, 2023

Change Log 1.9.18

This update addresses the deprecation of the TNTPrimed event in Paper - for versions 1.19+, Domain will use the Bukkit version of this event regardless. This deprecated (but working) event was causing warnings to appear in console
----------, May 24, 2023

Change Log 1.9.17

This update includes a couple of bug fixes provided to members of the Discord, as well as a new flag

Bugs squashed include (but not limited to) being able to open a protected chest by throwing an enderpearl at the same moment

New flag:

PREVENT_GROW_ALL

This flag rolls up all the other PREVENT_GROW_* flags into a single handy flag

Add the following to flags.yml

Any questions or concerns, please reach out on Discord!
----------, May 9, 2023

Change Log 1.9.14

This update is the start of a larger shift towards Domain 2.0, with a large amount of code starting to be deprecated and replaced with new. In coming versions, this WILL impact the API, but, not today!

This update adds:

  • 3 new flags
  • PlaceholderAPI support
  • Particle visualizations
  • Default naming for new fields
  • Bug fixes

New Flags

We have 3 new flags:

PREVENT_SPAWN_WARDEN - Which is pretty self explanatory - it prevents a warden being spawned in the field

ANIMAL_MAGNET and MONSTER_MAGNET

The magnet flags pull either animals or monsters towards a fixed point - This will help greatly with things like mob grinders - instead of using complex water traps, you can instead drop a magnet location to where your pit-drop or other is, or even just to gather them together to make it easier to kill them.

To use it, add either flag as needed to the field, and then right click the block with an open hand, go to Edit Field > Admin Commands > Magnet

upload_2023-1-4_12-47-56.png

This will give you a magnet wand

upload_2023-1-4_12-48-14.png

Left click the spot you want the mobs drawn to with the wand, then left click the Domain block with the wand to set

upload_2023-1-4_12-49-0.png

The mobs will be drawn to that spot continually (they MAY try and wander off, but they won't get far)

This can be especially powerful if you add the magnet flags to a Spawner block

Here is a cow spawner with magnet attached being used as a grinder:
https://torpkev.github.io/domain_docs/assets/cow_spawner_grinder.mp4

And a simple one of some pigs being pulled to a single point by the magnet
https://torpkev.github.io/domain_docs/assets/animal_magnet.mp4

PlaceholderAPI Support

You can now use %domain_total_blocks% and %domain_current_field% - these will update every x number of seconds as laid out in the config (more on that at the end of the update)

Particle Visualizations

Some people don't like the glass visualizations, some do. You can now have the best of both worlds and choose

upload_2023-1-4_12-52-26.png

This can be set in the block config (changes listed at end of update)

Default Naming for new fields

Previously, fields were automatically created using <player name>'s <type> field

You can now set a default name in the block config

Instructions VERY IMPORTANT!

These updates will require additional changes to your config files - none will be mandatory, but you're MUCH MUCH better off getting the changes in now

Add the following to flags.yml

Code (YAML):
 PREVENT_SPAWN_WARDEN:
    name
: "&bPrevent Warden Spawning"
    lore
: "&fPrevents Warden from spawning in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  ANIMAL_MAGNET
:
    name
: "&dAnimal Magnet"
    lore
: "&fSets a point in the field as an animal magnet"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  MONSTER_MAGNET
:
    name
: "&dMonster Magnet"
    lore
: "&fSets a point in the field as a monster magnet"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

Add the following to gui.yml

Code (YAML):

magnet
:
  material
: IRON_INGOT
  name
: "&bMagnet"
  lore
: "&fGives a magnet wand to set the|&fmagnet location of the field"
  enabled
: true
magnet_disabled
:
  material
: BARRIER
  name
: "&4Magnet disabled - Flag not set"
  lore
: "&fYou must set a Magnet flag|&fin order to access the|&fmagnet to command"
  enabled
: true
 

Add the following to lang.yml

Code (YAML):

saved_magnet_domainblock
: "&aSUCCESS &f- Your magnet location has been set to <%location%>"
magnet_set_cancel
: "&4Magnet location setting has been cancelled"
magnet_set_notset
: "&4Magnet location has not been set.  To cancel, right click the Domain Block with an open hand"
magnet_set_ok
: "&4Magnet location set.  Left click the Domain Block with the wand to save"
magnet_wand_given
: "&aYou have been given a magnet wand.  Left click the block you wish to set as the magnet.  When selected, left click the Domain block with the wand to set the location"
magnet_wand_lore
: "&f&lInstructions|&fLeft click the location you wish to set as magnet|&fthen left click the Domain Block to save|&fRight click the Domain Block with an empty hand to cancel"
magnet_wand_name
: "&bDomain Magnet Wand"
magnet_wand_not_given
: "&cFAILED &f- Your main hand must be empty"
 

Add the following to config.yml

Code (YAML):

# PlaceholderAPI update time is the number of seconds that elapse between checking
# for updated values.  For example, if set to 10, every 10 seconds, every online
# player will have their values updated for PlaceholderAPI enabled plugins to pull
# from.
# Default is 10 (seconds), if you don't use PlaceholderAPI, set to -1 or remove.
papi_update_time
: 10

# This is the number of blocks in which a magnet will pull from
# This is the RADIUS - it will pull these blocks in all directions
magnet_range
: 5
 

Add the following to each block yml file (example. city.yml) be sure to set the visualization type you want.

Code (YAML):


# Visualization type.  Only the following options will work, if none of these are selected, CUBE is chosen as default
# CUBE, RING, CORNERS, PARTICLE_CUBE, PARTICLE_RING
visualization
: PARTICLE_CUBE

# Default name for new field.  You can use & color codes, and can (but do not have to) use the following placeholders:
# <%player%> - Player name of who created the field
# <%type%> - The field type (from display_name above)
default_new_name
: "<%player%>'s <%type%> field"
 
In each file, you can now remove
visualize_corners
visualize_ring

They no longer do anything
----------, Jan 4, 2023

Change Log 1.9.13

Max volume size could return as 0 in some cases, this prevented proper resizing of field

Debug mode went full on Hotel California and you could check out any time you like, but you can never leave. This has been addressed and turning off debug mode now turns off debug mode.
----------, Dec 28, 2022

Change Log 1.9.12

Fairly significant changes in 1.9.12

Vouchers!

Vouchers have been in the pipeline for a while, and are intended as a way to improve a Domain field without having to replace the entire block.

Here is a brief Vouchers FAQ

What are they?
Vouchers are a piece of paper that you can right click a Domain block with, and the properties of the voucher are applied to the Domain block

What kind of properties?
Vouchers can currently do two things
  1. They can add additional space to a field - Each field has a maximum volume that your user can resize - with a voucher, you can apply additional space, either as a reward, or as a purchase the player makes.
  2. Additional flags can be applied to a field - Each field is set up with a base set of flags, such as PREVENT_BREAK etc. You can apply additional flags with a voucher, so for example, if you wanted to give the a no-pvp option, you could give them the base field, and provide them an additional, voucher for PREVENT_PVP. You can apply multiple flags to a single voucher.

What if they already have that flag?
If the field already has the flag, the voucher is applied, but that flag will not be impacted

What if they break the field?
Vouchers are set as either single use, or not single use. If single use, they can be applied once only and if the field is broken, they lose the voucher. If not single use, when the field is broken, the voucher is put in their inventory (or dropped on the ground if the inventory is full)

How do you set them up?
Vouchers are very simple to set up, you simply need to create a yml in the Vouchers folder for it

Example:

Code (YAML):
# Name can use color, spaces, special characters. It is what the voucher item will be called
# * REQUIRED FIELD
name
: "&fMiners haste"

# Lore is displayed when hovering over the voucher. Use | for a new line, and you can use colors and special characters
lore
: "&fA sample voucher that provides|&fminers haste in the field"

# Volume is how many blocks should be ADDED to the field when applied.  If your field currently has a volume of 5000, setting to 1000 would give a total of 6000
volume
: 0

# A list of flags that will be available on the block (defaulted to turned off, but available to the field owner to turn on)
# If the field already has the flag, no changes are applied
flags
:
 - EFFECT_MINERS_HASTE_ALLOWED

# If true, when the block is removed, the voucher is destroyed.  If false, removing the block will return the voucher to the user
single_use
: true
How do I get a voucher?
As an admin, you can type
/domain voucher <voucher key>

Where <voucher key> is the name of the yml file without the .yml (for example, if you have minershaste.yml, the key is minershaste)

Can I remove a voucher without destroying the block?
Not currently - that is planned for the future

Can I add multiple vouchers of the same type?
No - This is deliberate in order to prevent out of control sized fields. However, depending on interest, I may add a max uses field

Do I HAVE to use vouchers?
No - If you don't want to use them, just don't provide them to your players!

Can I as the admin disable a voucher?
To remove a voucher from EVERYONE, simply remove the voucher from your Vouchers folder, when you reload, the benefits of the voucher will not be applied. However, any resize the player has done will NOT roll back, but they will be limited if they resize again.

Falling out of the world

An option has been added to the config which, if enabled, will prevent players from falling out of the world if they go below bedrock (not that they SHOULD be going beneath bedrock!) - This is a GLOBAL option, and is not applied by Domain field. If they drop outside the upper/lower height limits for the world, they will be teleported. You can specify where they teleport to in the config, if that is not a safe location, they will teleport to their bed, and if that is not available, will teleport to world spawn. The player will receive feather falling and slowness for 3 seconds in order to offset any potential downwards velocity that might make them go splat.

To enable this feature, add the following to your config.yml (with your own void_location)

Code (YAML):
# If true, when a player goes outside the upper and minimum heights of the world, they will be teleported
# away.  Either to void_location (below) if it is set, or their bed spawn if it exists, otherwise to
# to the world spawn
void_check
: true

# Location to teleport the player to if they leave the upper/lower bounds of the world
# MUST be in the format "WORLDNAME:X:Y:Z" for example: "world:-83:100:77"
void_location
: "world:-83:90:77"
Additional 1.19 Support

  • Added support for Mangrove doors, gates, trapdoors, buttons, and pressure plates
  • Added support for Tadpole buckets

Cleanup

- Removed deprecated command functions
- Removed deprecated API calls from 1.9.11
- Removed deprecated Vault functions
- Removed unused functions
- Corrected documentation of API functions

Finally..

If you use lang.yml to translate Domain, please add the following in the language of your choice

Code (YAML):
voucher_saved : "&2SUCCESS &f- Your voucher has been applied"
voucher_invalid
: "&4ERROR &f- Invalid voucher key"
voucher_exists
: "&4Sorry, this voucher is already applied"
voucher_error
: "&4Sorry, this voucher cannot be applied"
voucher_singleuse
: "&4You have not received your <%voucher%> back as it was single-use only"
command_voucher_get_usage
: "/domain voucher &b<key> &4- Gets the voucher with key specified"
----------, Nov 29, 2022

Change Log 1.9.11

It has been a while since I've released an update due to some real-world issues, and wanted to start off with some significant code cleanup.

I'm planning on releasing further updates soon that will focus around features.

Changes for this version:
  • Bug fixes (multiple)
  • Significant code cleanup, including removing duplicate functions, inconsistent logging, removing deprecated, unused functions
  • debug_to_file has been removed - having it in the config file will no longer do anything - (it already saves to latest.log)
  • Deprecated API calls have been removed
  • Current API calls have now been deprecated and will be removed in an upcoming version and have been moved to Domain.instance().api().<function name>
----------, Nov 28, 2022

Change log 1.9.10

This update adds a new flag, alters behavior or two others, and includes some bug fixes.

New Flag:
PREVENT_CROP_PLANTING_BY_NONALLOWED

This flag will prevent non-allowed players from planting crops in the field

If updating, please add the following to flags.yml

Code (YAML):
 PREVENT_CROP_PLANTING_BY_NONALLOWED:
    name
: "&bPrevent Crop Planting"
    lore
: "&fPrevents Non-Allowed Players from planting crops"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
And the following to lang.yml

Code (YAML):
crop_planting_refused : "&4You cannot plant crops here"
With this change, PREVENT_BREAK no longer protects harvesting crops (use PREVENT_CROP_HARVEST_BY_NONALLOWED) and PREVENT_BUILD will no longer prevent crops from being planted (use PREVENT_CROP_PLANTING_BY_NONALLOWED)

Bug fixes include, but are not limited to console log spamming when working with permissions.
----------, Jun 27, 2022

Change Log 1.9.9

Domain is now supported for 1.19!

Added a new flag
PREVENT_CROP_HARVEST_BY_NONALLOWED

This flag prevents players who are not allowed in the field from harvesting crops. This differs from PREVENT_CROP_DAMAGE_BY_NONALLOWED which prevents them from stomping on the crops.

If you're updating, please add the following to your flags.yml
Code (YAML):
PREVENT_CROP_HARVEST_BY_NONALLOWED
crop_break_refused
: "&4You cannot harvest crops in this field"
  PREVENT_CROP_HARVEST_BY_NONALLOWED
:
    name
: "&bPrevent Crop Harvesting"
    lore
: "&fPrevents Non-Allowed Players from harvesting crops"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
----------, Jun 15, 2022

Change Log 1.9.8

This update addresses some bug fixes that caused skipping some interactions if the Spigot version number does not match exactly.
----------, Jan 19, 2022

Change Log 1.9.7

This update contains a single change - it adds a new API function that is required by Bazaar 1.2.0

FlagFunctions.flagAllowed(Player player, Location location, String flag)

If the flag exists at the location and the player has access to the field, will return true.

If the flag exists at the location and the player does not have access to the field, will return false

If the flag does not exist at the location, will return true.

No need to update unless you need access to the function, or if you're using Bazaar and intend to upgrade to 1.2.0

Any questions or concerns, please reach out and let me know.

Thanks
----------, Jan 6, 2022

Change Log 1.9.6

New Commands

Domain Open
Opens the current field the player is standing in if they are the owner

/domain open

Domain Resize
Gives the player the resize wand for the field they are standing in if they are the owner (also puts the field into resize mode)

/domain resize

Domain Expand
Expands the current field in the direction specified by the number of blocks requested Direction can be: north, east, south, west, up, down (or alternately: n, e, s, w, u, d) Blocks is the number of blocks in that direction the field will expand to, keeping in mind that the field is a cuboid, so it will expand for full width/height Note: Standard resize rules apply (block in field, max volume etc.)

/domain expand <direction> <blocks>

Domain Shrink
Shrinks the current field in the direction specified by the number of blocks requested Direction can be: north, east, south, west, up, down (or alternately: n, e, s, w, u, d) Blocks is the number of blocks in that direction the field will shrink to, keeping in mind that the field is a cuboid, so it will shrink for full width/height Note: Standard resize rules apply (block in field, max volume etc.)

/domain shrink <direction> <blocks>

Bug Fixes
  • Unexpected error would occur in rare cases where the player was unable to open a domain block they own
  • Removed unnecessary looping within block checks
  • Minor code cleanup
Update Language File
Add the following to lang.yml
Code (YAML):
usage_expand : "Usage: /domain expand &b <direction> <blocks>&r\nDirection is: north/east/south/west/up/down"
usage_shrink
: "Usage: /domain shrink &b <direction> <blocks>&r\nDirection is: north/east/south/west/up/down"
no_field
: "&4No Domain field found"
unable_give_resize_wand
: "&4Sorry, you must have an open inventory slot to get the resize wand"
Full details here: https://torpkev.github.io/domain_docs/changelog/update196

Full documentation here: https://torpkev.github.io/domain_docs/

And as always, if you have any questions or concerns, please reach out on Discord: https://discord.gg/7a47xSX
----------, Dec 28, 2021

Change Log 1.9.5

This update allows Domain to play nicely with WorldGuard, in that when you try to place a Domain block in a WorldGuard protected region, it will not create the field even though the block is prevented.

Domain is, and will continue to be non-reliant on WorldGuard, however, this change has been requested by those who use both (remember - you can use Domain to protect your spawn areas too!)
----------, Dec 20, 2021

Change Log 1.9.4

This update adds a new option in the block configuration

Code (YAML):
snap_to_chunk : true
If true, snap to chunk will default the field to the dimensions of the chunk it is placed in. It is HIGHLY recommended that you set visualize_ring = true and visualize_corners = false in order to avoid lag displaying the field.

When snap to chunk is true, the default_radius, default_height_up, default_height_down, and ignore_y_axis will be disregarded.

Note that if you wish to retain this ONLY to the chunk it is placed in, also set prevent_resize = true.

An example of how to use this block is available in the miningrights.yml file https://torpkev.github.io/domain_docs/resources/blocks/miningrights.yml

See the documentation for further details ( https://torpkev.github.io/domain_docs/) or come talk to me on Discord!
----------, Dec 14, 2021

Change Log 1.9.3

This update addresses a bug where when crafting a Domain block, you may receive an error message stating that you can't craft WITH a domain block.

I've also added an additional command

/domain cancel

This command can be called while resizing a field, and will cancel the resize, remove the visualization and remove any resize wands you happen to have in your inventory.

We have a couple of new entries for the lang.yml file

Code (YAML):
command_resize_cancel : "&2Resize has been cancelled"
command_resize_cancel_na
: "&4You are not currently resizing a field"
----------, Dec 7, 2021

Change Log 1.9.2

The good news..
Domain should now work on 1.18 - I have not added any new flags for 1.18 at this time, these will be coming soon, and preferably by request via Discord.

The bad news..
Domain no longer supports 1.13 as of version 1.9.2 - Any critical bug fixes for 1.13 will be distributed via Discord upon request. I hate to remove support, but I've moved the Domain specific data from NBT tags to Persistent Data Containers, which has required me to bump it to 1.14.

Versions of Domain prior to 1.9.2 will still work on Minecraft 1.13, and I will continue support for a limited time. If you require a 1.13 working version of Domain, please contact me via Discord.

Discord: https://discord.gg/7a47xSX
----------, Dec 3, 2021

Change Log 1.8.8 - 1.9.0

CAUTION: 1.9.0 REQUIRES Java 16.
Do not update to 1.9.0 unless you have Java 16 installed.
1.8.8 is included in the zip file with this release which does not support 1.17 and does not require Java 16. This is the final non-Java 16 version that will be released, other than bug fixes - These will remain in the 1.8.* version numbers and will be available via Discord and will NOT be uploaded to spigot.org

Version 1.8.8 -
This update contains bug fixes which prevented the 'ring' visualization working, as well as turning field visualization off on new fields.

Version 1.9.0 -
This update marks Domain as 1.17 compatible
Also contains the fixes listed in 1.8.8
----------, Jun 26, 2021

Change Log 1.8.3

Full change log available here

This update brings Idle kicking, the ability to kick players from the field, a new command to see your own fields, and the potential to teleport back to your own fields. It also includes an assortment of bug fixes.

Idle Kicking

If the config is set up to allow idle kicking,then having the
KICK_OUT_IDLE_NONALLOWED flag in the field will kick non-allowed players from the field.

You can force it to kick directly to spawn by setting
field_kick_direct_to_spawn to true in the config, if it is not set to true, then it will find the nearest corner of the field to the player and attempt to teleport them somewhere safe within a range of that corner that is NOT inside the field.

If for whatever reason it can't find a safe teleport location, it will try to send them to their last bed spawn, if that is not safe, it will revert to spawn.

In order to prevent players abusing this, the
new_field_kick_cooldown config option is available. This will prevent kicks if the field is less than that many minutes old (we don't want players placing a block down so they can bounce an idle player around)

To disable idle kicking completely, set idle_cycle_seconds to 0 in the config.

Who else is in field

This button in your Domain block previously displayed who was in the field and where. It has been expanded to show allowed players in green, not-allowed players in red. Location and distance from block is displayed in a hover-over, and if enabled in the block (allow_who_in_kick: true) - you can kick not-allowed players from the field. It uses the same rules as idle kicking above.

New Commands

/domain back

This command will teleport a player back to the field they were idle kicked from. It requires the domain.idle.back permission. It only works if they have been idle kicked, and only if they have not moved from where they were kicked to.

/domain me

This will display all the fields belonging to the player, and if allow_self_teleport_to_field is set to true in the config, will allow the player to teleport to the nearest safe location by the Domain Block

Bug Fixes
  • File generation errors on startup have been removed (‘Unable to create flags.yml as it already exists’ etc.)
  • When a block has the same base type and name, it will no longer default to the wrong block, instead it will use the NBT tag to determine type
  • Null error when players break blocks in an admin block area has been corrected
  • Other not player facing fixes

Finally..

As always - if you have any issues with Domain after this update, please reach out on Discord or via message in Spigot. Discord WILL be faster - I don't check messages here every day.

Please note that this will be the last feature update of Domain until after the 1.17 Spigot release. Bug fixes may be released still as needed.
----------, Jun 10, 2021

New Commands

Two new commands that will remain undocumented and unsupported. They toggle whether the events run or not. You must either have domain.admin permission or run from console

Toggle Creature Spawn Event

/domain spawnevent​

Toggle Player Move Event

/domain playermove​

Bug Fixes
  • Data files with worlds that no longer exist will NOT load and will generate an error on startup
  • The cow.yml file was not being included in the jar file which caused issues when the config.yml file did not exist. The missing file is now included, and additional checks are put in place to generate the default resource files as needed.
Update Language File
Add the following to lang.yml

Code (YAML):
spawn_event_disabled : "Spawn event is disabled"
spawn_event_enabled
: "Spawn event is enabled"
move_event_disabled
: "Player Move event is disabled"
move_event_enabled
: "Player Move event is enabled"
----------, Apr 3, 2021

Change Log 1.8.1

Two new flags and bug fixes

New Flags!

It seems I've missed a couple of fairly obvious flags for a while now

PREVENT_ENDERMAN_AGGRESSION

This will prevent an enderman becoming hostile towards a player when they look at it (if the player is in the field, the enderman does NOT have to be in the same field at the time)

PREVENT_ENDERMAN_GRIEF

This will cancel the event if it is an enderman is changing the state of a block (picking it up)

Make the following additions to your flags.yml file:

Code (YAML):

PREVENT_ENDERMAN_AGGRESSION
:
  name
: "&bPrevent Enderman Aggression"
  lore
: "&fPrevents an enderman from becoming|&fhostile when a player looks at them"
  icon_on
: LIME_STAINED_GLASS_PANE
  icon_off
: RED_STAINED_GLASS_PANE
  locked
: false
PREVENT_ENDERMAN_GRIEF
:
  name
: "&bPrevent Enderman Grief"
  lore
: "&fPrevents an enderman from picking|&fup a block in the field"
  icon_on
: LIME_STAINED_GLASS_PANE
  icon_off
: RED_STAINED_GLASS_PANE
  locked
: false
 
Bug Fixes
  • Missing entries in flags.yml was causing an error on startup, replaced with a Warning message
  • No additional flags in a Domain field would cause a "not a config section" error on startup
  • Expiration checking was using not getting the time from the OfflinePlayer correctly (seems to be only an issue when using Spigot rather than Paper, but resolved)
  • Custom flag.yml files were not loading materials in correctly and were reverting to lime/red stained glass
----------, Mar 29, 2021

Change Log 1.8.0

This is a massive update for Domain - roughly 70% of the code has been rewritten from scratch, including the core DomainBlock classes, visualization, reading/writing from the yml files, and removal of a lot of duplicated code and classes.

Due to the extent of the change, please note the following:
BACKUP YOUR DOMAIN FOLDER AND JAR FILE NOW

If you have any issues with 1.8.0 please revert back to your backup. I may not be able to support issues caused by upgrading if there is not a backup available.

Now that is out the way.. on to the changes.

1) There is a whole new set of documentation: https://torpkev.github.io/domain_docs please review this before upgrading to 1.8.0

2) Massive amounts of back-end changes and bug fixes. You should see an increase in performance and things should generally run a lot nicer

3) Commands have been rewritten and some have been removed, refer to documentation. In particular, /domain locate has been removed and is replaced with an expanded /domain search as it was already doing the same work.

4) Some 'staff' commands will not work and will not show in tab completions unless you are in domain bypass mode

5) Renting was rewritten from the ground up. You can read more about the renting process here but the long and short of it is that any field with the config set to cost and days > 0 are rentable, there is a new gui in the menu where players can set the rent cost/days. Rent signs no longer need any interaction and will self-populate. Rented fields have their own name, welcome/farewell message and allowed lists. When the rent period is up, these get removed and it reverts the name/messages/allowed list back to what it was before renting.

6) Spawner Fields! - These are special types of Domain fields that can be used to spawn mobs, much like using a Mob spawner. You can read all about Spawner fields here - but they're really cool and have some great advantages over using a spawner block

7) Members Only fields have been created, this is not documented or easily accessible in game, but, you can create a field where only those with a particular permission can enter. To apply, simply add:

Code (YAML):
members_only_perm : YOUR_PERMISSION_HERE
It works like a PREVENT_ACCESS_TO_NONALLOWED but is permission based.

8) When converting a field to an Admin Block, then owner field is now removed completely. You can now also convert an admin block back to a player block

Support Changes

It is worth mentioning changes to the support system.
Due to a number of charge-backs and paypal disputes, I've had the Discord modified to only show the #domain channel for registered buyers. Everyone can still talk in #general and can request help there, but will need to present their spigot username in order to receive any help from the development team. Trial copies are still available and will be supported as previously.

Changes to Domain files

Add or modify the following entries to the respective files:

Code (YAML):

admin_delete_block_success
: "&aSUCCESS &f- Field has been &4removed"
admin_disable_block_success
: "&aSUCCESS &f- Field has been &4disabled"
allow_player_alert_added
: "&cYou have been given access to the <%name%> field by <%player%>"
break_item_frame
: "&cYou cannot break that here"
clan_add_already_in
: "&cUnable to add <%clan%> to this field, as it is already allowed"
clan_remove_not_in
: "&cUnable to remove <%clan%> from this field, it is not currently allowed"
command_adminblock_back_success
: "&2SUCCESS - Block has been converted from an Admin block"
disallow_player_alert_removed
: "&cYou have been removed from access to the <%name%> field by <%player%>"
disallow_player_not_found
: "&4Unable to disallow player.  Player not found"
disallow_player_not_found1
: "&4Player disallow cancelled.  You are now returned to chat."
find_title
: "<%player%> Owned Fields"
gui_rent_title
: "Rent"
members_only
: "&cSorry, this area is for members only"
merge_error
: "&4Unexpected error - Unable to merge field"
remove_player_fail_not_allowed
: "Unable to remove player, they are not allowed to the field"
remove_wand
: "&cWand not in use, removing it from inventory"
rent_confirm
: "Are you sure you want to rent this field? It costs &b$<%cost%> &rfor &b<%days%>&r days"
rent_confirm_info
: "&4Clicking YES will rent the field and debit your funds"
rent_confirm_yes
: " &f[&2YES - Rent the field&f]"
rent_info_available
: "Not currently rented out"
rent_info_cost
: "Cost $<%cost%> for <%days%> days"
rent_info_na
: "&4Field is not currently set as rentable"
rent_info_rented
: "Currently rented to <%renter%> until <%expires%>"
rent_info_title
: "\n&b************************************************\n&fRent Info\n&b************************************************"
rent_na
: "&4N/A"
rent_own
: "&4You cannot rent your own field"
rent_set_cost
: "Rent for this <%blocktype%> field has been set to $<%cost%>"
rent_set_cost_info
: "&eEnter the new rent cost in the chat.  It must be a valid number and will not be visible to other players.  Right click the Domain Block to cancel"
rent_set_cost_zero
: "This <%blocktype%> field is no longer available to rent.  Set the cost to at least $1 to make available"
rent_set_days
: "Number of days in the rent period for this <%blocktype%> field has been set to <%days%>"
rent_set_days_info
: "&eEnter the new rent days in the chat.  It must be a valid number and will not be visible to other players.  Right click the Domain Block to cancel"
rent_set_days_zero
: "This <%blocktype%> field is no longer available to rent.  Set the number of days in the rent period to at least 1 to make available"
rent_unexpected_error
: "Unable to rent field - Unexpected Error, please contact a member of staff"
resize_wand_lore
: "&f&lInstructions|&fLeft click corner 1 of desired field|&fRight click corner 2 of desired field|&fRight click domain block with wand to save"
resize_wand_name
: "&bDomain Resize Wand"
search_hover_text
: "Owner: <%owner%>\nType: <%blocktype%>\nLocation: <%location%>"
sign_cost
: "&lCost: &b&l$<%cost%>"
sign_days
: "&lDays: &b&l<%days%>"
sign_rent
: "&0&l[&d&lRent&0&l]"
sign_rented
: "&0&l[&b&lRented&0&l]"
teleport_set_cancel
: "&4Teleport location setting has been cancelled"
teleport_set_notset
: "&4Teleport location has not been set.  To cancel, right click the Domain Block with an open hand"
teleport_set_ok
: "&4Teleport location set.  Left click the Domain Block with the wand to save"
teleport_set_unsafe
: "&4Unable to set this location, it is unsafe for teleporting to"
teleport_unsafe
: "&4Unable to teleport.  Location is unsafe"
teleport_wand_lore
: "&f&lInstructions|&fLeft click the location you wish to teleport to|&fthen left click the Domain Block to save|&fRight click the Domain Block with an empty hand to cancel"
teleport_wand_name
: "&bDomain Teleport Wand"
usage_allow
: "Usage: /domain allow &b<player name>&r"
usage_clan
: "Usage: /domain clan &ballow&f|&bdisallow &6<clan tag>"
usage_disallow
: "Usage: /domain disallow &b<player name>&r"
usage_display
: "Usage: /domain display &bclear&f|&bcorners&f|&bcube&f|&bring"
usage_get
: "Usage: /domain get &6<block type>"
usage_give
: "/domain give &6<player name> &6<block name>"
usage_search
: "Usage: /domain search &bowner&f|&btype&f|&bworld &6<search term>&r"
version
: "<%name%> - Version <%ver%>"

 

Code (YAML):

  adminblock_set
:
    material
: PLAYER_HEAD
    name
: "&4Admin Block"
    lore
: "&fConvert back to a player block"
    enabled
: true
  flag_add
:
    material
: LIME_CONCRETE
    name
: "&aAdd Flag"
    lore
: "&fAdds a new flag to the field"
  rent_info
:
    material
: BOOK
    name
: "&bRent Info"
    lore
: "&fDisplays rent information for this field"
  rent_cost
:
    material
: GOLD_INGOT
    name
: "&bRent Cost"
    lore
: "&fSets the rent cost"
  rent_days
:
    material
: CLOCK
    name
: "&bRent Days"
    lore
: "&fSets the rent days"
 

Code (YAML):

  SPAWN
:
    name
: "&dMob Spawning"
    lore
: "&fEnables mob spawning in the field"
    icon_on
: SPAWNER
    icon_off
: BARRIER
    locked
: false
  MEMBERS_ONLY
:
    name
: "&bMembers Only Area"
    lore
: "&fPrevents access to players without a set permission"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BREAK_PAINTING_BY_NONALLOWED
:
    name
: "&bPrevent Break Painting"
    lore
: "&fPrevents paintings being broken by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BREAK_ITEM_FRAME_BY_NONALLOWED
:
    name
: "&bPrevent Break Item Frame"
    lore
: "&fPrevents item frames being broken by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
 
----------, Mar 23, 2021

Change Log 1.7.8.1

Bug fixes:
  • Flag selection page now goes up to 5 pages (previously if you put enough flags on to go beyond 3 pages, they wouldn't be accessible)
  • Flag enabled/Flag disabled in lore was not showing after page 1
  • Adding a player to a field now ignores color on names (or data entry)
  • Hourly reminder that data has saved has been moved into debug logging
----------, Feb 19, 2021

Change Log 1.7.8

New Mechanic

If you set the field_display_secs value in your block config to -1, the field will NOT display when a new block is placed, but will default to 30 seconds when a resize is clicked.

Bug Fixes

Clicking a disabled gui function could still allow it to work even when it shows as disabled. For example, clicking who is in field, while disabled would still show who was in the field.

Not really a bug, but unintended lack of usage that is corrected. Using /domain allow <player name> only worked for the players Name, but not the display name (colored nicks etc.) - if the player is online, you can now use either to add them to the field.

API Access

The getAPI() call now exposes access to the new functions which replace the deprecated APIResponse calls.
----------, Feb 13, 2021

Change Log 1.7.7

This update corrects a bug where the amount of blocks available in /domain buy could increment if you bought one then merged and took the block back.
----------, Jan 23, 2021

Change Log 1.7.6

Purge Command
[USE WITH CAUTION]

Currently, if you have expire_blocks: true in your config file and a valid number in the block config for number of days, after the owner has been offline for that number of days, the field is deactivated, leaving a plain block. If the player rejoins, on the next reload, the field should mark as active again. However, with many players never coming back, there is the potential on busy servers for a large number of expired fields being read on startup.

As a player (with domain.admin permission) or console, you can now use:

/domain purge_list

This will output a list of fields that are not currently active into the console, like so:

upload_2020-12-31_9-32-58.png

You can then manually remove them if you feel you want to.

From the console however, you can use

/domain purge

This will automatically delete the files without further confirmation. This can ONLY be run from console, and CAN NOT BE UNDONE! It'll look something like this, so you'll have a log of what was removed.

upload_2020-12-31_9-36-23.png

I would very much recommend backing up your Domain folder before running either command. (Actually, I'd recommend pushing it out to a zip file or similar about once a week anyway)

Once the files are deleted, there is no going back, so if a player comes back 2 minutes after you purge.. their field will be gone.

Bug Fixes

While using a helpful servers Domain folder for my purge testing, I came across several errors during the load process where the world the field was created in doesn't exist. In this case, they have a world called spawn, and my test server did not, which resulted in numerous null errors. These have all been tightened up, if you delete a world and you had a field there, you'll now receive an error that looks like this, instead of a random null error

upload_2020-12-31_9-38-35.png

Locked_to was sometimes throwing an error as well, this was due to an invalid type cast, that has been corrected.

Finally, with debug mode on, rent_until was throwing an error if the field was not rentable, if it isn't rentable, it just won't add the fields now and the debug message is gone.

Upgrade Instructions:

Backup your Domain jar and your Domain folder (seriously, do it)

Replace your jar with the new copy, and add the following to the lang.yml file

Code (YAML):
command_purge_none : "&4There are no fields to purge"
command_purge_list
: "&4List of fields that can be purged has been sent to console"
command_console_only
: "&4Command can only be called from the console"
----------, Dec 31, 2020

Change Log 1.7.5

New API call available in api\PlayerFunctions

getPlayerDomainFields(UUID)

This returns List<DomainBlock> for with one entry for every Domain field owned by the player (regardless of whether they are online or not).

If they do not own any fields, it will return an empty list.
----------, Dec 30, 2020

Change Log

This update addresses an issue with adding players.
If you select to add a player to the field, and opt to type their name in, there was a chance you could be stuck in the add player option until you right clicked a player or typed in the valid name of a player, if neither happened, you could be locked out of chat.

Now when entering in an add player option, if you enter the name incorrectly, the add player entry will be canceled. You can then try again by going back into the Domain block.

Update instructions:
Enter the Domain_1_7_4.jar
Add the following to lang.yml
Code (YAML):
allow_player_not_found1 : "&4Player add cancelled.  You are now returned to chat."
----------, Dec 16, 2020

Change Log 1.7.3

New permission: domain.staff

This permission is for staff that you don't want to have domain.admin permissions - currently it is used only for the /domain locate command, but will be expanded in future updates to allow lesser staff access

/domain locate <player name> now requires domain.locate and domain.admin OR domain.staff

The [TP] [Delete] [Disable] buttons will only be accessible to those with domain.admin

Other changes: Several translation issues from lang.yml have been resolved, If you translate Domain, please add the following to your lang.yml if you do not already have them in there.


Code (YAML):
interact_nonallowed_bypass : "Access to <%blocktype%> at <%location%> allowed due to bypass mode"
teleport_wand_given
: "&aYou have been given a teleport wand.  Left click the block you wish to teleport to with the wand.  When selected, left click the Domain block with the wand to set the location"
teleport_wand_not_given
: "&cFAILED &f- Your main hand must be empty"
gui_command_onenter_enter
: "&eEnter your command in the chat - The command will not be displayed to any other player but will be saved to the field.  Do not include / in the command.  Example: &5mvtp @p world_nether"
saved_tpto_domainblock
: "&aSUCCESS &f- Your teleport location has been set to <%location%>"
cancel_tpto_domainblock
: "&cCANCELLED &f- You have cancelled setting the Teleport location.  Any existing teleport location has been cleared"
invalid_tpto_domainblock
: "&cERROR &f- You cannot set a Domain block as a teleport location"
invalid_wand_tpto_domainblock
: "&cInvalid Wand &f- You don't have a Domain block opened for setting the teleport location"
sign_rented
: "Rented"
sign_rent
: "Rent"
sign_cost
: "Cost: $"
sign_days
: "Days: "
----------, Dec 3, 2020

Change Log 1.7.2

This update contains a few minor fixes and debug logging.
----------, Nov 7, 2020

Change Log 1.7.1

This update addresses the ability for players to abuse any server lag to glitch through doors/gates/trapdoors by spamming right clicks.

When being refused interaction, the player will be teleported back to the location where they began the interaction immediately if the location changes prior to end of processing.
----------, Sep 3, 2020

Change Log 1.7.0

This update has been a long time coming, in that I've implemented a big back-end change that I've been waiting to do for a while (which may not make a huge amount of difference to you guys, but will make coding a lot easier).

The other BIG change is that Domain is now based on Paper rather than spigot jar - Spigot users will still be able to use it of course, and the bulk of all future changes will remain Spigot safe, however I'll be using some Paper features for some flags.

New Flags:

PREVENT_TNT_PRIMING [PAPER ONLY]
This flag prevents TNT from being primed at all, no matter what the source of the priming is. You can set the TNT on fire, you can shoot fire arrows at it, or you can even explode creepers next to it and it will not explode. As this flag is Paper supported only, setting this flag on your field will not do anything if you're running Spigot.

PREVENT_HEAL_ZOMBIE_VILLAGER_BY_NONALLOWED
This flag prevents non-allowed players in the field from converting zombie villagers into villagers.

Fixes:

PREVENT_INTERACT_SWEET_BERRY_BUSH_BY_NONALLOWED should now work to stop players from interacting with sweet berry bushes in fields they don't belong to

Add new flag screen should now work past page 4 (it had been replacing page 5 entries with page 6 entries)

Custom icons in flags.yml should now display properly in the flags page

Armor stands no longer get destroyed by explosions when you're preventing explosion damage

Crimson trapdoors are now included in PREVENT_INTERACT

Players can no longer saddle animals by right clicking them with a lead

Placed leads are now protected from other players if you have PREVENT_LEAD_BY_NONALLOWED turned on

Add the following to flags.yml
Code (YAML):

  PREVENT_HEAL_ZOMBIE_VILLAGER_BY_NONALLOWED
:
    name
: "&bPrevent Heal Zombie Villager by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from healing|&fzombie villagers in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

PREVENT_TNT_PRIMING
:
    name
: "&bPrevent TNT Priming"
    lore
: "&fPrevents TNT from priming to explode in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

The API has been updated significantly - no more confusing APIResponse return values, so all old api functions have been deprecated and all but 2 have been replaced. Details as below:

Below is a list of old API functions on the left, and their replacements:

APIResponse getVersion() - String MiscFunctions.getVersion()
APIResponse resizeField() - boolean FieldFunctions.resizeField()
APIResponse flagAtLocation() - boolean FlagFunctions.flagAtLocation()
APIResponse flagFromName() - Flag.Type FlagFunctions.flagFromName()
APIResponse getFlags() - List<Flag.Type> FlagFunctions.getFlags()
APIResponse getDomainBlockItemStack() - ItemStack ItemFunctions.getDomainBlockItemStack()
Player playerFromUUIDString() - Player PlayerFunctions.playerFromUUIDString()
APIResponse getAllBlocksInField() - List<Block> FieldFunctions.getAllBlocksInField()
APIResponse playerAllowedAtLocation() - boolean PlayerFunctions.playerAllowedAtLocation()
APIResponse locationInField() - boolean FieldFunctions.locationInField()
APIResponse getPlacedDomainBlockByID() - DomainBlock FieldFunctions.getPlacedDomainBlockByID()
APIResponse getPlacedDomainBlocksSearch() - List<DomainBlock> FieldFunctions.getPlacedDomainBlocksSearch()

The following will NOT be replaced:

APIResponse checkPlayerFlag() - You can use FlagFunctions.flagAtLocation() for same functionality, just pass player Location instead of UUID
APIResponse playerAllowedAtLocation() - You can use PlayerFunctions.playerAllowedAtLocation and pass Player rather than UUID

As always, if you have any questions, concerns, bug reports, suggestions or whatever, pop on to the Discord (link is in my signature) and give me a shout.
----------, Aug 3, 2020

Change Log 1.6.4

This update addresses some bug fixes and adds some new flags to the plugin.

Fish buckets not working in PREVENT_SPAWN_EGG fields - This has been modified so buckets and spawn eggs have been separated.
Armor stands can no longer be broken in PREVENT_BUILD fields

New Flags:
  • PREVENT_SPAWN_FISH_FROM_BUCKET_BY_NONALLOWED - Prevents non-allowed players from placing fish buckets down
  • PREVENT_PROJECTILE_PAINTING - Prevents projectiles from breaking paintings
  • PREVENT_MOUNT_ANIMAL_BY_NONALLOWED - Prevents players from mounting animals
  • PREVENT_LEAD_BY_NONALLOWED - Prevents players from placing animals on a lead, or, attaching a lead that is already on an animal onto a fence
  • PREVENT_SADDLE_BY_NONALLOWED - Prevents players from saddling pigs
You can add any of these flags to your existing fields by updating the block config.

If you are not using a new install, you will need to update your lang.yml file and flags.yml file

Add the following to lang.yml
Code (YAML):
armorstand_break_deny : "&4You cannot break armor stands here"
armorstand_break_deny_bypass
: "&4You cannot break armor stands here, but have bypass mode enabled"
armorstand_place_deny
: "&4You cannot place armor stands here"
armorstand_place_deny_bypass
: "&4You cannot place armor stands here, but have bypass mode enabled"
fishbucket_place_deny
: "&4You cannot place fish here"
fishbucket_place_deny_bypass
: "&4You cannot place fish here, but have bypass mode enabled"
vehicle_break_deny
: "&cYou cannot break this vehicle here"
vehicle_break_deny_bypass
: "&cYou should not be able to break this vehicle here, but can due to Domain Bypass mode"
lead_deny
: "&4You cannot use a lead here"
lead_deny_bypass
: "&4You cannot use a lead here, but have Domain bypass enabled"
mount_animal_deny
: "&4You cannot mount animals here"
mount_animal_deny_bypass
: "&4You cannot mount animals here, but have Domain bypass enabled"
saddle_deny
: "&4You cannot use a saddle here"
saddle_deny_bypass
: "&4You cannot use a saddle here, but have Domain bypass enabled"
Add the following to flags.yml
Code (YAML):
 PREVENT_SPAWN_FISH_FROM_BUCKET_BY_NONALLOWED:
    name
: "&bPrevent Spawn Fish by Non-Allowed"
    lore
: "&fPrevents fish buckets being used|&fby non-allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PROJECTILE_PAINTING
:
    name
: "&bPrevent Projectile/Painting Interaction"
    lore
: "&fPrevents projectiles from damaging paintings"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOUNT_ANIMAL_BY_NONALLOWED
:
    name
: "&bPrevent Non-Allowed from Mounting Animals"
    lore
: "&fPrevents Non-allowed players from mounting animals"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_LEAD_BY_NONALLOWED
:
    name
: "&bPrevent Non-Allowed from using Leads"
    lore
: "&fPrevents Non-allowed players from using Leads"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SADDLE_BY_NONALLOWED
:
    name
: "&bPrevent Saddle by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from|&fusing a saddle"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
----------, Jul 9, 2020

Change Log 1.6.3

The most pointless thing I ever type is "no more feature updates until.." as I tend to ignore my own rules.

This update has a new flag and mechanic, plus a couple of minor bug fixes.

Bug Fixes:
Clicking to make a field an Admin block will no longer just tell you it is already an Admin block when it isn't.

locked_to code in the blocks is now more robust (less chance of a null error popping up if not set)

New Flag/Mechanic: PREVENT_BUILD_EXCEPT_DOMAINBLOCK

This flag allows you to prevent building in a field UNLESS what you're placing is a Domain block. This is intended and supported ONLY for admin fields and overrides PREVENT_BUILD.

The most obvious use for this would be to allow players to place their own field (for example, a shop field) down inside of a larger protected area (for example, your shopping district).

Example:

Create a shopping district field with a key of "shopping_district" that you do not want preset shop fields in. Right click the block, go to Edit, then Admin commands and select Admin block - this will convert the shopping district into an admin field. Add PREVENT_BUILD_EXCEPT_DOMAINBLOCK: true to the field, this will prevent players from building in the shopping district, but will allow them to place a Domain field.

Players can now be given or buy a shop Domain block - in the config for this block, set the locked_to: "shopping_district" and set the field_order to a higher number than the shopping district (if the shopping district field_order = 3, then you must choose a field order > 3).

This shop field can now ONLY be placed inside a shopping_district field. As the players place this field, they'll be able to build inside of their shopping field, but will still not be able to build outside of that.

Modify your files (if not a new install):

Add the following to flags.yml

Code (YAML):
 PREVENT_BUILD_EXCEPT_DOMAINBLOCK:
    name
: "&bPrevent Build Except Domain Block"
    lore
: "&fPrevents Non-Allowed players from building|But allows them to place Domain fields"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false  
----------, Jul 8, 2020

Change Log 1.6.2

Small feature update (which I wasn't going to do until 2.x. but here we are)

We have 4 new flags and 1 new command

New Flags:
PREVENT_BREAK_PAINTING_BY_NONALLOWED
- Prevents non-allowed players from breaking paintings in the field
PREVENT_INTERACT_CAKE_BY_NONALLOWED
- Prevents non-allowed players interacting (eating) cake in the field
PREVENT_INTERACT_REDSTONE_REPEATER_BY_NONALLOWED
- Prevents non-allowed players from modifying redstone repeaters in the field
PREVENT_VEHICLE_PLACE_BY_NONALLOWED
- Prevents non-allowed players from placing vehicles in the field

If you have an existing install, add the following to flags.yml
Code (YAML):
 PREVENT_BREAK_PAINTING_BY_NONALLOWED:
    name
: "&bPrevent Break Painting"
    lore
: "&fPrevents paintings being broken by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_REDSTONE_REPEATER_BY_NONALLOWED
:
    name
: "&bPrevent Redstone Repeater Interaction "
    lore
: "&fPrevents redstone repeaters|being broken by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_CAKE_BY_NONALLOWED
:
    name
: "&bPrevent Cake Interaction"
    lore
: "&fPrevents Non-Allowed players from |interacting/eating cakes|&fin the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_PLACE_BY_NONALLOWED
:
    name
: "&bPrevent Vehicle Place By Non-Allowed"
    lore
: "&fPrevents Non-Players from placing vehicles"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

Add the following to lang.yml
Code (YAML):
break_painting : "&cYou cannot break paintings here"
cake_interact_nonallowed
: "&cYou cannot eat cake here"
cake_interact_nonallowed_bypass
: "Access to <%blocktype%> at <%location%> allowed due to bypass mode"
glow_no_player
: "&cInvalid Player"
glow_set_off
: "&aGlow disabled for <%player%>"
glow_set_on
: "&aGlow enabled for <%player%>"
redstone_repeater_interact_nonallowed
: "&cYou cannot access redstone repeaters here"
redstone_repeater_interact_nonallowed_bypass
: "Access to <%blocktype%> at <%location%> allowed due to bypass mode"
vehicle_place_deny
: "&cYou cannot place vehicles here"

And a new command which may or may not be helpful. It isn't actually a "Domain" function, but can help prevent issues caused by PVP Glowing

/domain glow <player name>

This command requires domain.admin (or op/console access) and will turn glow effect on/off for players

Any questions, please let me know in the Discord channel!
----------, Jul 6, 2020

Change 1.6.1

This update addresses a bug that can cause a null error when clicking back through some menus.

Remember - if you see a 1.16 feature you'd like addressed in Domain, please let me know!
----------, Jun 29, 2020

Change Log 1.6.0

This update ensures that Domain is compatible with 1.16, and adds 2 new flags.

PREVENT_INTERACT_SMITHINGTABLE_BY_NONALLOWED
PREVENT_INTERACT_LODESTONE_BY_NONALLOWED

These flags prevent access to nonallowed players to lodestones or smithing tables in your field.

If you are just updating and not doing a new install, add the following to flags.yml

Code (YAML):
 PREVENT_INTERACT_SMITHINGTABLE_BY_NONALLOWED:
    name
: "&bPrevent Smithing-Table Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fsmithing tables in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

  PREVENT_INTERACT_LODESTONE_BY_NONALLOWED
:
    name
: "&bPrevent Lodestone Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&flodestones in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

And add the following to your lang.yml file

Code (YAML):
smithingtable_interact_nonallowed : "You cannot access smithing tables here"
lodestone_interact_nonallowed
: "You cannot access lodestones here"
interact_nonallowed_bypass
: "Access to <%blocktype%> at <%location%> allowed due to bypass mode"

This also adds warped doors, gates, pressure plates, buttons and signs to Domain, so if you are preventing access to doors, warped doors are included, if you prevent access to buttons, warped buttons are included etc.

The new nether based mobs are also added PREVENT_SPAWNER_EGG flag.

If there is some other feature to 1.16 that you'd like to see Domain expand to, join the Discord and either leave a message in the Domain channel, or, send me a message.
----------, Jun 25, 2020

Change Log 1.5.11

Update forces a save-to-file when someone rents or extends their rent on a field. This prevents the field showing as unrented after a restart if further changes didn't force the save.

Renters can no longer access the Edit button in the Domain field

Fly warnings will now be displayed in the actionbar instead of spamming your chat

Added a new command:

/domain save <block id>

This can be run from console, or if you have domain.admin permission. It will force a save of the block to the file. (You can see the block ID from field information from the GUI)
----------, Jun 24, 2020

Change Log for 1.5.10

Rent signs should now be working correctly

Permission based limits will now look at the highest number per block (if a player has domain.<blockname>.limit.2 and domain.<blockname>.limit.3 [and appropriate setup in config]), it'll now only use the 2 if it can't find a higher number. In some cases it was looping through the permissions and applying the 2 after the 3.

1.16 prep continues - I'll be working to get Domain 1.16 ready as soon as the jar drops.
----------, Jun 23, 2020

Change Log 1.5.6

This update corrects an issue with water or lava flowing into a field when the PREVENT_LAVA_FLOW_TO/PREVENT_WATER_FLOW_TO flags are enabled.

Untitled.png
----------, May 10, 2020

Change Log 1.5.5

First an update:
This is the last intended feature update for Domain 1.* for the foreseeable future. I'm currently working on a fairly major rewrite of a large portion of the code that will be released as 2.0. Bug fixes for the 1.* branch will continue.

On to the 1.5.5 Updates.

A bug fix has been put in place that corrects an issue with some item frames being accessible

The PREVENT_INTERACT_ARMOR_STAND_BY_NONALLOWED flag has been activated in the code. It will prevent non-allowed players from taking from armor stands.

Please add the following to your lang.yml file if you wish to edit the default text:

Code (YAML):
armorstand_deny : "&4You cannot access armor stands here"
armorstand_deny_bypass
: "&4You cannot interact with armor stands here, but have bypass mode enabled"
A new API event has been created that is fired when a Domain field is resized.

work.torp.domain.api.events.domain.DomainResizeEvent
Code (Text):
public DomainBlock getDomainBlock() - Gets the Domain Block that is being resized
public Location getCorner1() - Gets Corner 1 from the Domain block being resized
public Location getCorner2() - Gets Corner 2 from the Domain block being resized
 
And a new API function to set the corners of the field

work.torp.domain.api.DomainAPI.resizeField(int, Location, Location, UUID)
Code (Java):
/*
         * Name: resizeField()
         * Description: Updates the corners for a field - forces update without checks
         * Parameters:
         *  int domainBlockID - The domain block id to update
         *  Location corner1 - The corner1 location to set
         *  Location corner2 - The corner2 location to set
         *  UUID playerUUID - The player unique identifier to alert if they are online, they will
         *  also see an udpated visualization of the field.  If null, no messages or visualization
         *  will be shown to the player.
         * Return Type: void
         */
----------, Apr 28, 2020

Change Log 1.5.4

Corrects a bug that allowed blocks to be placed beyond their limit while not in bypass mode.
----------, Apr 24, 2020

Change Log 1.5.3

Fairly small update that just adds a couple of features to the API. If you do not use the API, you can skip this release.

Added new event:

work.torp.domain.api.events.domain
DomainMergeEvent

This event fires when a block is being merged.
  • getPlayer() - Gets the player who is merging the block
  • getDomainBlock() - Gets the Domain Block that is being merged
  • getCancelReason() - Get the reason for cancellation
  • isCancelled() - Get the cancellation flag
  • setCancelled(boolean cancel) - Sets the cancellation flag

Also added a new API call

work.torp.domain.api.DomainAPI
getAllBlocksInField(int domainBlockId)

Returns an APIResponse with List<Block> of all the blocks within the field. Returns null if the Domain Block ID is invalid or if no blocks are found in the field.
----------, Apr 19, 2020

Change Log 1.5.2

Small update with rentable fields. To create a rent sign for a rentable block, right click on your Domain block with a sign, you can then place the sign with the topline [Domain] which will update the sign into a rent sign.

You must right click the Domain block for each rent sign you wish to create.

upload_2020-4-12_13-37-30.png

upload_2020-4-12_13-37-48.png

This works with either free standing or wall signs

upload_2020-4-12_13-38-4.png

upload_2020-4-12_13-39-18.png
----------, Apr 12, 2020

Change Log 1.5.1

Nested fields were not always reporting the correct field

Domain bypass mode now shows the current field in the action bar
----------, Apr 9, 2020

Change Log 1.5.0

This update includes a number of under-the-hood optimizations and bug fixes

Additional API functions have been exposed

work.torp.domain.api

getVersion()
Returns the current version

checkPlayerFlag(UUID uuid, String flagName)
Returns true if the flag specified is active where the player is
This checks all Domain fields in order of inheritance
Inputs:
UUID uuid - The UUID of the Player to check
String flagName - The flag to check


locationInField(Location location)
Returns true if the location specified is in a Domain field
Inputs:
Location location - The location to check

playerAllowedAtLocation(Location location, Player player)
Returns true if the player is allowed at the location they are standing in
Inputs:
Player player - The player to check

playerAllowedAtLocation(Location location, UUID uuid)
Returns true if the player is allowed at the location they are standing in
Inputs:
UUID uuid - The UUID to convert to an online Player

playerFromUUIDString(String playerUUID)
Returns a Player object from the player ID. Added by request for Skript functionality
Inputs:
String uuidValue

flagAtLocation(Flag.Type flag, Location location)
Returns true if the flag is active at the specified location
Inputs:
Flag.Type flag - The flag type to check
Location location - The location to check

getFlags()
Gets a list of all flags

flagFromName(String flagName)
Gets a Flag.Type object from the String flag name provided
Inputs:
String flagName - The flag name to convert to a type

getDomainBlockItemStack(String blockKey)
Returns an Itemstack of the specified Domain Block. Returns AIR if invalid block key
Inputs:
String blockKey

getPlacedDomainBlockByID(int domainBlockID)
Returns a placed Domain block by its identifier. Returns null if no block exists
Inputs:
int domainBlockID - The domain block identifier to search on

getPlacedDomainBlocksSearch(String owner, String blockKey, String worldName)
Searches for placed Domain Blocks by owner name, block key or world name
Search terms can be combined. Send "" for unused search criteria
Returns null if no blocks found
Inputs:
String owner - The player name to search for
String blockkey - The block key to search for
String worldName - The world to search

API Events

work.torp.domain.api.events.block
  • BlockBreakDomainEvent - Occurs when a block is broken in a Domain field
  • BlockBurnDomainEvent - Occurs when a block is burned in a Domain field
  • BlockFromDomainEvent - Occurs when water/lava flows from a Domain field
  • BlockGrowDomainEvent - Occurs when something grows in a Domain field
  • BlockIgniteDomainEvent - Occurs when something is ignited in a Domain field
  • BlockPlaceDomainEvent - Occurs when a block is placed in a Domain field
  • BlockSpreadDomainEvent - Occurs when fire spreads, chorus plants, kelp or bamboo grow in a Domain field
  • BlockToDomainEvent - Occurs when water or lava flows to a Domain field
  • PistonExtendDomainEvent - Occurs when a piston extends in a Domain Field
  • SignChangeDomainEvent - Occurs when a sign is changed in a Domain Field
  • SpongeAbsorbDomainEvent - Occurs when a sponge absorbs water in a Domain field

work.torp.domain.api.events.domain
  • DomainBypassChangeEvent - Occurs when a player changes bypass mode
  • DomainEnterEvent - Occurs when a player enters a Domain field
  • DomainEnterOwnEvent - Occurs when a player enters a Domain field that they own
  • DomainFieldCreateEvent - Occurs when a player creates a new Domain field
  • DomainLeaveEvent - Occurs when a player leaves a Domain field
  • DomainLeaveOwnEvent - Occurs when a player leaves their own Domain field

work.torp.domain.api.events.player
  • BucketEmpty - Occurs when a bucket is emptied in a Domain field
  • BucketFill - Occurs when a bucket is filled in a Domain field
  • CommandPreprocess - Occurs when a command is entered by a player in a Domain field
  • PlayerDrop - Occurs when a player drops an item in a Domain field
  • PlayerInteract - Occurs when a player interacts with something in a Domain field
  • PlayerInteractEntity - Occurs when a player right clicks entity in a Domain field
  • PlayerJoin - Occurs when a player joins the server (changes Domain bypass mode)
  • PlayerMove - Occurs when a player moves in a domain field
  • PlayerQuit - Occurs when a player quits the server (changes Domain bypass mode)
  • PlayerShear - Occurs when a player shears an entity in a Domain field
----------, Apr 6, 2020

Change Log 1.3.1

  • Corrects an issue with /domain locate that would prevent non-admin users from using the feature correctly.
  • Various performance tweaks to try to bring the overhead down (this is on-going)
No config changes necessary with this update.
----------, Feb 23, 2020

Change Log 1.3.0

My apologies for the slow updates recently, I'm a bit bogged down at work, however, after receiving some issues regarding lag, I have tweaked some code to hopefully address this.

- For most events, a list of flags at the location are now calculated a single time if multiple checks take place. Previously, I was checking the flags at location each time (so if prevent phantoms, or prevent creepers or prevent skeletons etc.) which was adding a fair bit of overhead. Now it will pull the list of flags at the event once, and then check each condition without pulling the list again.

- A number of events will not be checked if the location of the event is not in a field

I've added a few new flags as well:

  • PREVENT_GROW_BAMBOO - Prevents bamboo growing in the field
  • PREVENT_GROW_CHORUS_PLANT - Prevents the chorus PLANT from growing, does not stop the flowers. PREVENT_GROW_CHORUS_FLOWER does that. Note: These are two different fields as PREVENT_GROW_CHORUS_FLOWER already exists, and I don't want to change the behavior in case it causes issues for anyone.
  • PREVENT_GROW_KELP - Prevents kelp from growing in the field

Please add the following to your flags.yml file (or if you don't have any translation, just delete the flags.yml file and it will automatically regenerate)

Code (YAML):

  PREVENT_GROW_BAMBOO
:
    name
: "&bPrevent Bamboo Growing"
    lore
: "&fPrevents bamboo from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_CHORUS_PLANT
:
    name
: "&bPrevents Chorus Plant Growing"
    lore
: "&fPrevents Chorus Plant from|&fgrowing in the field|&fDoes not stop the flower, just the plant"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_KELP
:
    name
: "&bPrevents Kelp Growing"
    lore
: "&fPrevents Kelp from|&fgrowing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
 

As always, please let me know if you run into any issues!
----------, Jan 30, 2020

Change Log 1.2.6

Domain is now 1.15 ready!

Domain will run on 1.13, 1.14 and 1.15+​

New Flags:

If updating instead of a new install add the following to flags.yml
Code (YAML):
 PREVENT_INTERACT_BEEHIVE_BY_NONALLOWED:
    name
: "&bPrevent Bee Hive Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fbee hives in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_BEENEST_BY_NONALLOWED
:
    name
: "&bPrevent Bee Nest Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fbee nests in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

And the following to lang.yml

Code (Text):
beehive_interact_nonallowed: "You cannot access beehives here"
beehive_interact_nonallowed_bypass: "Access to <%blocktype%> at <%location%> allowed due to bypass mode"
beenest_interact_nonallowed: "You cannot access bee nests here"
beenest_interact_nonallowed_bypass: "Access to <%blocktype%> at <%location%> allowed due to bypass mode"

If this is a new install, these entries will automatically be entered

Other changes:

ShopChest support has been removed - Bazaar ( https://www.spigotmc.org/resources/bazaar-player-admin-clan-shops.70293/) is now the only supported OPTIONAL shop plugin.
----------, Dec 11, 2019

Change Log 1.2.5

Welcome and Farewell messages will no longer clog up the chat window, and will instead be listed in the Action Bar

2019-12-02 11_13_45-Minecraft 1.14.4.png
----------, Dec 2, 2019

Change Log 1.2.4

This update fixes a bug that prevents a rent sign being placed. This issue caused a null error to appear in console and has been corrected.
----------, Nov 30, 2019

Change Log 1.2.3

Following on from the positive potion effects in the last update, version 1.2.3 now includes 6 potion effects that will be applied to unwanted visitors.
  • Hunger (EFFECT_HUNGER_NONALLOWED) - Adds Hunger III
  • Weakness (EFFECT_WEAKNESS_NONALLOWED) - Adds Weakness III
  • Confusion (EFFECT_CONFUSION_NONALLOWED) - Adds Confusion III
  • Blindness (EFFECT_BLINDNESS_NONALLOWED) - Adds Blindness I
  • Slow Digging (EFFECT_SLOW_DIGGING_NONALLOWED) - Adds Slow Digging I
  • Wither Effect (EFFECT_WITHER_NONALLOWED) - Adds Wither I
These are applied to anyone who enters the field that is not allowed.

If not a new install, add the following to your flags.yml:

Code (YAML):
 EFFECT_HUNGER_NONALLOWED:
    name
: "&bHunger"
    lore
: "&fApplies Hunger potion effect to a|&fplayer not allowed to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_WEAKNESS_NONALLOWED
:
    name
: "&bWeakness"
    lore
: "&fApplies Weakness potion effect to a|&fplayer not allowed to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_CONFUSION_NONALLOWED
:
    name
: "&bConfusion"
    lore
: "&fApplies Confusion potion effect to a|&fplayer not allowed to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_BLINDNESS_NONALLOWED
:
    name
: "&bBlindness"
    lore
: "&fApplies Blindness potion effect to a|&fplayer not allowed to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_SLOW_DIGGING_NONALLOWED
:
    name
: "&bSlow Digging"
    lore
: "&fApplies Slow Digging potion effect to a|&fplayer not allowed to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_WITHER_NONALLOWED
:
    name
: "&bWither Effect"
    lore
: "&fApplies Wither potion effect to a|&fplayer not allowed to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
----------, Nov 26, 2019

Change Log 1.2.2

I've added 4 new flag types - all potion effects.

  • EFFECT_MINERS_HASTE_ALLOWED - Adds Miners Haste to any player allowed to the field
  • EFFECT_LEVITATION_ALLOWED- Adds Levitation to any player allowed to the field (careful - once levitation runs out, you may hit the ground before it kicking back in)
  • EFFECT_NIGHT_VISION_ALLOWED- Adds Night Vision to any player allowed to the field
  • EFFECT_WATER_BREATHING_ALLOWED- Adds Water Breathing to any player allowed to the field
flags.yml update is in the spoiler below - add these entries for language specific add-flag functionality

Code (YAML):
 EFFECT_MINERS_HASTE_ALLOWED:
    name
: "&bMiners Haste"
    lore
: "&fEnables Miners Haste for an allower player to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_LEVITATION_ALLOWED
:
    name
: "&bLevitation"
    lore
: "&fEnables Levitation for an allower player to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_NIGHT_VISION_ALLOWED
:
    name
: "&bNight Vision"
    lore
: "&fEnables Night Vision for an allower player to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EFFECT_WATER_BREATHING_ALLOWED
:
    name
: "&bWater Breathing"
    lore
: "&fEnables Water Breathing for an allower player to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false  
----------, Nov 14, 2019

Change Log 1.2.1

This update adds a new flag:

PREVENT_SPAWN_PHANTOM

This prevents phantoms from spawning inside your field - please note it does not stop them entering the field after spawning outside of it.

Add the following to your flags.yml file

Code (YAML):

  PREVENT_SPAWN_PHANTOM
:
    name
: "&bPrevent Phantom Spawning"
    lore
: "&fPrevents Phantoms from spawning in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
 

We also have a new permission

domain.flag.add

This allows players to add unused flags to their field and should be treated as an admin level permission. domain.admin will also work as normal

Finally, there is a bug fix for overlapping fields

Any questions, please let me know
----------, Oct 7, 2019


Change Log 1.2.0

This is the largest single update to Domain so far, there are a lot of changes (listed below) - If you are upgrading from an existing version, please be sure to backup your Domain folder before upgrading.
  • A LOT of under-the-hood changes to improve stability
  • Domain will no longer use a SQLite database for storing data, it will instead move to yml files in the Data folder
  • Domain.db data will automatically convert to the yml files - however, any blocks saved where the world no longer exists or some other important issue (missing required fields) may cause a conversion failure. It is VITALLY important that the Domain folder is backed up prior to the update. If you run into issues with some fields not updating, then roll back the change and contact me via Discord for assistance.
  • Once the server stops after first run after the update the Domain.db file will be renamed to prevent the plugin from attempting to re-convert the fields.
  • The users data is now saved to users.yml
  • The gui section of the config.yml has been moved to gui.yml in order to prevent the config.yml file from being cluttered
  • The flags section of the config.yml has been moved to flags.yml for the same reason
  • gui.yml and flags.yml will auto-generate on startup, if you have any translations in the existing config.yml file, you will need to manually copy these changes over
  • debug_log and debug_to_file have been removed from the default config.yml file. /domain debug is the preferred method for entering debug mode.
  • The blocks section has been removed from the config.yml file - instead all block configuration files in the Blocks folder will be loaded on startup
  • The Domain menu > Edit > Open for commands has been removed and replaced with Administrator commands. These commands require domain.admin permission. These options include, setting Teleport location, making the Domain block into an admin block, and setting enter/leave run commands.
  • /domain admin_block, /domain flag *, /domain enter_command, /domain leave_command, /domain tpto have all been disabled
  • /domain flag add * has been removed, instead admins can add new flags to a field by using the Add Flag button in the flag menu. This is the preferred method for creating custom blocks for administrator usage (ie. portals)
  • The following flags have been added:
    *
    PREVENT_SPAWN_HOSTILE - Prevents hostile mobs from spawning inside the field (zombies, skeletons etc.)
    *
    PREVENT_SPAWN_NONHOSTILE - Prevents non-hostile mobs from spawning inside the field (cows, pigs etc.)
    *
    PREVENT_SPAWN_PILLAGER - Prevents Pillagers from spawning inside the field
    *
    PREVENT_SPAWN_RAVAGER - Prevents Ravagers from spawning inside the field
    *
    PREVENT_SPAWN_EVOKER - Prevents Evokers from spawning inside the field
    *
    PREVENT_SPAWN_ILLUSIONER - Prevents Illusioners from spawning inside the field
    *
    PREVENT_SPAWN_VEX - Prevents Vexs from spawning inside the field
    *
    PREVENT_SPAWN_VINDICATOR - Prevents Vindicators from spanwing inside the field
    *
    PREVENT_SPAWN_WANDERING_TRADER - Prevents wandering traders & their llamas from spawning inside the field
    *
    PREVENT_BAZAAR_BUY_BY_NONALLOWED - Prevents non-allowed players buying from Bazaar chests inside the field
    *
    PREVENT_BAZAAR_CREATE_BY_NONALLOWED - Prevents non-allowed players creating new Bazaar chests inside the field
    *
    PREVENT_BAZAAR_REMOVE_BY_NONALLOWED - Prevents non-allowed players removing existing Bazaar chests inside the field
    *
    PREVENT_BAZAAR_SELL_BY_NONALLOWED - Prevents non-allowed players from selling to a Bazaar chest inside the field
    *
    HEAL_ALL_PLAYERS - Heals any player inside the field
  • Changes to any Domain fields will be saved immediately instead of waiting for the hourly check for edited fields
  • This is the final feature update that will include ShopChest integration, any future feature updates will support Bazaar for shop integration only
Update FAQ

I'm new to Domain, do I have to do anything with this change to .yml files?
- No, this is just for existing users. New users will just automatically use the flat file storage

What is this yml file thing?
- It is just a way to store files in a structured way, if you don't know what it is, don't worry about it

Why the change to .yml files?
- The Domain.db file could get stuck into a persistently locked state which could cause the server to crash as Domain was unable to write to the database. This became more urgent in 1.2.0 when immediate saves of the domain block changes was implemented (rather than startup + 1hr cycle).

Why not move to MySQL?
- Not everyone wants to use MySQL

But I do want to use MySQL!
- MySQL support IS coming, but not in this update. Future versions will support flat file and MySQL only.

What if the conversion from database file to flat-file doesn't convert all my blocks?
- It should, with a few notable exceptions. For example, any invalid block, such as those created in a world that doesn't exist will NOT copy over.

But I'll lose all those blocks that didn't convert if you stop using the Domain.db file, can't you just leave it?
- No, just so we don't keep trying to convert already converted data. This is why it is VERY important to backup your folder first. If you have issues with the conversion, roll the change back and let me know and I'll help with getting the files generated.

I can read and edit .yml files, right? So I can make changes directly in the file!
- You can, but I will not support manually edited files
- I'll answer that a second time in bold just so it really sinks in.. I will NOT support manually edited files. If you break a file by editing it, your best bet is to delete the file and recreate the block in-game.

This is too complicated!
- Feel free to join the Discord and I'll be happy to try and help you out with the update

I used ShopChest, what happens in the next feature update?
- The next feature update will remove the SHOPCHEST_* flags - the blocks that have them will continue to work but will not actually do anything with those flags. Your shops will continue to work, but without the Domain restrictions for buying/selling etc.

Why are you removing ShopChest in the next feature release?
- Supporting third-party plugins adds complexity and increases development time. As Bazaar is now released, there is no need to support multiple shops.

I don't have Bazaar and I don't want to pay for it!
- Bazaar is NOT required for Domain, it is an optional extra only. Not sure that Bazaar is for you, contact me on Discord and I'll be happy to let you try it out

I don't want to install Domain as I'm not sure it is right for me!
- You can contact me on Discord for a free copy to test with (this is at my discretion and I reserve the right to refuse to provide a copy - test copies do NOT mean you are added to the Buyers list)

I found a bug!
- Please contact me with a message on Spigot or on Discord and I'll do my best to help you out.

Want to try Domain?
You can test Domain on play.ibexmc.com - the official showcase for Domain, Bazaar and Myriad Clans - you might find some surprising uses for Domain that you've never really considered (portals, healing monuments, catching falling players, paying players for reaching an area etc.)
----------, Sep 24, 2019

Change Log 1.2.0

This is the largest single update to Domain so far, there are a lot of changes (listed below) - If you are upgrading from an existing version, please be sure to backup your Domain folder before upgrading.
  • A LOT of under-the-hood changes to improve stability
  • Domain will no longer use a SQLite database for storing data, it will instead move to yml files in the Data folder
  • Domain.db data will automatically convert to the yml files - however, any blocks saved where the world no longer exists or some other important issue (missing required fields) may cause a conversion failure. It is VITALLY important that the Domain folder is backed up prior to the update. If you run into issues with some fields not updating, then roll back the change and contact me via Discord for assistance.
  • Once the server stops after first run after the update the Domain.db file will be renamed to prevent the plugin from attempting to re-convert the fields.
  • The users data is now saved to users.yml
  • The gui section of the config.yml has been moved to gui.yml in order to prevent the config.yml file from being cluttered
  • The flags section of the config.yml has been moved to flags.yml for the same reason
  • gui.yml and flags.yml will auto-generate on startup, if you have any translations in the existing config.yml file, you will need to manually copy these changes over
  • debug_log and debug_to_file have been removed from the default config.yml file. /domain debug is the preferred method for entering debug mode.
  • The blocks section has been removed from the config.yml file - instead all block configuration files in the Blocks folder will be loaded on startup
  • The Domain menu > Edit > Open for commands has been removed and replaced with Administrator commands. These commands require domain.admin permission. These options include, setting Teleport location, making the Domain block into an admin block, and setting enter/leave run commands.
  • /domain admin_block, /domain flag *, /domain enter_command, /domain leave_command, /domain tpto have all been disabled
  • /domain flag add * has been removed, instead admins can add new flags to a field by using the Add Flag button in the flag menu. This is the preferred method for creating custom blocks for administrator usage (ie. portals)
  • The following flags have been added:
    *
    PREVENT_SPAWN_HOSTILE - Prevents hostile mobs from spawning inside the field (zombies, skeletons etc.)
    *
    PREVENT_SPAWN_NONHOSTILE - Prevents non-hostile mobs from spawning inside the field (cows, pigs etc.)
    *
    PREVENT_SPAWN_PILLAGER - Prevents Pillagers from spawning inside the field
    *
    PREVENT_SPAWN_RAVAGER - Prevents Ravagers from spawning inside the field
    *
    PREVENT_SPAWN_EVOKER - Prevents Evokers from spawning inside the field
    *
    PREVENT_SPAWN_ILLUSIONER - Prevents Illusioners from spawning inside the field
    *
    PREVENT_SPAWN_VEX - Prevents Vexs from spawning inside the field
    *
    PREVENT_SPAWN_VINDICATOR - Prevents Vindicators from spanwing inside the field
    *
    PREVENT_SPAWN_WANDERING_TRADER - Prevents wandering traders & their llamas from spawning inside the field
    *
    PREVENT_BAZAAR_BUY_BY_NONALLOWED - Prevents non-allowed players buying from Bazaar chests inside the field
    *
    PREVENT_BAZAAR_CREATE_BY_NONALLOWED - Prevents non-allowed players creating new Bazaar chests inside the field
    *
    PREVENT_BAZAAR_REMOVE_BY_NONALLOWED - Prevents non-allowed players removing existing Bazaar chests inside the field
    *
    PREVENT_BAZAAR_SELL_BY_NONALLOWED - Prevents non-allowed players from selling to a Bazaar chest inside the field
    *
    HEAL_ALL_PLAYERS - Heals any player inside the field
  • Changes to any Domain fields will be saved immediately instead of waiting for the hourly check for edited fields
  • This is the final feature update that will include ShopChest integration, any future feature updates will support Bazaar for shop integration only
Update FAQ

I'm new to Domain, do I have to do anything with this change to .yml files?
- No, this is just for existing users. New users will just automatically use the flat file storage

What is this yml file thing?
- It is just a way to store files in a structured way, if you don't know what it is, don't worry about it

Why the change to .yml files?
- The Domain.db file could get stuck into a persistently locked state which could cause the server to crash as Domain was unable to write to the database. This became more urgent in 1.2.0 when immediate saves of the domain block changes was implemented (rather than startup + 1hr cycle).

Why not move to MySQL?
- Not everyone wants to use MySQL

But I do want to use MySQL!
- MySQL support IS coming, but not in this update. Future versions will support flat file and MySQL only.

What if the conversion from database file to flat-file doesn't convert all my blocks?
- It should, with a few notable exceptions. For example, any invalid block, such as those created in a world that doesn't exist will NOT copy over.

But I'll lose all those blocks that didn't convert if you stop using the Domain.db file, can't you just leave it?
- No, just so we don't keep trying to convert already converted data. This is why it is VERY important to backup your folder first. If you have issues with the conversion, roll the change back and let me know and I'll help with getting the files generated.

I can read and edit .yml files, right? So I can make changes directly in the file!
- You can, but I will not support manually edited files
- I'll answer that a second time in bold just so it really sinks in.. I will NOT support manually edited files. If you break a file by editing it, your best bet is to delete the file and recreate the block in-game.

This is too complicated!
- Feel free to join the Discord and I'll be happy to try and help you out with the update

I used ShopChest, what happens in the next feature update?
- The next feature update will remove the SHOPCHEST_* flags - the blocks that have them will continue to work but will not actually do anything with those flags. Your shops will continue to work, but without the Domain restrictions for buying/selling etc.

Why are you removing ShopChest in the next feature release?
- Supporting third-party plugins adds complexity and increases development time. As Bazaar is now released, there is no need to support multiple shops.

I don't have Bazaar and I don't want to pay for it!
- Bazaar is NOT required for Domain, it is an optional extra only. Not sure that Bazaar is for you, contact me on Discord and I'll be happy to let you try it out

I don't want to install Domain as I'm not sure it is right for me!
- You can contact me on Discord for a free copy to test with (this is at my discretion and I reserve the right to refuse to provide a copy - test copies do NOT mean you are added to the Buyers list)

I found a bug!
- Please contact me with a message on Spigot or on Discord and I'll do my best to help you out.

Want to try Domain?
You can test Domain on play.ibexmc.com - the official showcase for Domain, Bazaar and Myriad Clans - you might find some surprising uses for Domain that you've never really considered (portals, healing monuments, catching falling players, paying players for reaching an area etc.)
----------, Sep 24, 2019

Change Log 1.2.0

This is the largest single update to Domain so far, there are a lot of changes (listed below) - If you are upgrading from an existing version, please be sure to backup your Domain folder before upgrading.
  • A LOT of under-the-hood changes to improve stability
  • Domain will no longer use a SQLite database for storing data, it will instead move to yml files in the Data folder
  • Domain.db data will automatically convert to the yml files - however, any blocks saved where the world no longer exists or some other important issue (missing required fields) may cause a conversion failure. It is VITALLY important that the Domain folder is backed up prior to the update. If you run into issues with some fields not updating, then roll back the change and contact me via Discord for assistance.
  • Once the server stops after first run after the update the Domain.db file will be renamed to prevent the plugin from attempting to re-convert the fields.
  • The users data is now saved to users.yml
  • The gui section of the config.yml has been moved to gui.yml in order to prevent the config.yml file from being cluttered
  • The flags section of the config.yml has been moved to flags.yml for the same reason
  • gui.yml and flags.yml will auto-generate on startup, if you have any translations in the existing config.yml file, you will need to manually copy these changes over
  • debug_log and debug_to_file have been removed from the default config.yml file. /domain debug is the preferred method for entering debug mode.
  • The blocks section has been removed from the config.yml file - instead all block configuration files in the Blocks folder will be loaded on startup
  • The Domain menu > Edit > Open for commands has been removed and replaced with Administrator commands. These commands require domain.admin permission. These options include, setting Teleport location, making the Domain block into an admin block, and setting enter/leave run commands.
  • /domain admin_block, /domain flag *, /domain enter_command, /domain leave_command, /domain tpto have all been disabled
  • /domain flag add * has been removed, instead admins can add new flags to a field by using the Add Flag button in the flag menu. This is the preferred method for creating custom blocks for administrator usage (ie. portals)
  • The following flags have been added:
    *
    PREVENT_SPAWN_HOSTILE - Prevents hostile mobs from spawning inside the field (zombies, skeletons etc.)
    *
    PREVENT_SPAWN_NONHOSTILE - Prevents non-hostile mobs from spawning inside the field (cows, pigs etc.)
    *
    PREVENT_SPAWN_PILLAGER - Prevents Pillagers from spawning inside the field
    *
    PREVENT_SPAWN_RAVAGER - Prevents Ravagers from spawning inside the field
    *
    PREVENT_SPAWN_EVOKER - Prevents Evokers from spawning inside the field
    *
    PREVENT_SPAWN_ILLUSIONER - Prevents Illusioners from spawning inside the field
    *
    PREVENT_SPAWN_VEX - Prevents Vexs from spawning inside the field
    *
    PREVENT_SPAWN_VINDICATOR - Prevents Vindicators from spanwing inside the field
    *
    PREVENT_SPAWN_WANDERING_TRADER - Prevents wandering traders & their llamas from spawning inside the field
    *
    PREVENT_BAZAAR_BUY_BY_NONALLOWED - Prevents non-allowed players buying from Bazaar chests inside the field
    *
    PREVENT_BAZAAR_CREATE_BY_NONALLOWED - Prevents non-allowed players creating new Bazaar chests inside the field
    *
    PREVENT_BAZAAR_REMOVE_BY_NONALLOWED - Prevents non-allowed players removing existing Bazaar chests inside the field
    *
    PREVENT_BAZAAR_SELL_BY_NONALLOWED - Prevents non-allowed players from selling to a Bazaar chest inside the field
    *
    HEAL_ALL_PLAYERS - Heals any player inside the field
  • Changes to any Domain fields will be saved immediately instead of waiting for the hourly check for edited fields
  • This is the final feature update that will include ShopChest integration, any future feature updates will support Bazaar for shop integration only
Update FAQ

I'm new to Domain, do I have to do anything with this change to .yml files?
- No, this is just for existing users. New users will just automatically use the flat file storage

What is this yml file thing?
- It is just a way to store files in a structured way, if you don't know what it is, don't worry about it

Why the change to .yml files?
- The Domain.db file could get stuck into a persistently locked state which could cause the server to crash as Domain was unable to write to the database. This became more urgent in 1.2.0 when immediate saves of the domain block changes was implemented (rather than startup + 1hr cycle).

Why not move to MySQL?
- Not everyone wants to use MySQL

But I do want to use MySQL!
- MySQL support IS coming, but not in this update. Future versions will support flat file and MySQL only.

What if the conversion from database file to flat-file doesn't convert all my blocks?
- It should, with a few notable exceptions. For example, any invalid block, such as those created in a world that doesn't exist will NOT copy over.

But I'll lose all those blocks that didn't convert if you stop using the Domain.db file, can't you just leave it?
- No, just so we don't keep trying to convert already converted data. This is why it is VERY important to backup your folder first. If you have issues with the conversion, roll the change back and let me know and I'll help with getting the files generated.

I can read and edit .yml files, right? So I can make changes directly in the file!
- You can, but I will not support manually edited files
- I'll answer that a second time in bold just so it really sinks in.. I will NOT support manually edited files. If you break a file by editing it, your best bet is to delete the file and recreate the block in-game.

This is too complicated!
- Feel free to join the Discord and I'll be happy to try and help you out with the update

I used ShopChest, what happens in the next feature update?
- The next feature update will remove the SHOPCHEST_* flags - the blocks that have them will continue to work but will not actually do anything with those flags. Your shops will continue to work, but without the Domain restrictions for buying/selling etc.

Why are you removing ShopChest in the next feature release?
- Supporting third-party plugins adds complexity and increases development time. As Bazaar is now released, there is no need to support multiple shops.

I don't have Bazaar and I don't want to pay for it!
- Bazaar is NOT required for Domain, it is an optional extra only. Not sure that Bazaar is for you, contact me on Discord and I'll be happy to let you try it out

I don't want to install Domain as I'm not sure it is right for me!
- You can contact me on Discord for a free copy to test with (this is at my discretion and I reserve the right to refuse to provide a copy - test copies do NOT mean you are added to the Buyers list)

I found a bug!
- Please contact me with a message on Spigot or on Discord and I'll do my best to help you out.

Want to try Domain?
You can test Domain on play.ibexmc.com - the official showcase for Domain, Bazaar and Myriad Clans - you might find some surprising uses for Domain that you've never really considered (portals, healing monuments, catching falling players, paying players for reaching an area etc.)
----------, Sep 24, 2019

Change Log 1.1.46

This update corrects a bug in the code that prevented players from changing the enabled status on flags that were on the second page of the flags available.

Thank you @Fluxty for bringing that one to my attention!
----------, Aug 21, 2019

Change Log 1.1.45

This update includes an optimization to the field visualization. Fields should display quicker and with less lag.
----------, Aug 15, 2019

Change Log 1.1.44
Opt-In Change - Feature update only

Bazaar Integration
Bazaar is a new premium shop plugin that is designed to integrate with Domain & Myriad Clans - you can create player, admin or even clan shops.

ShopChest integration is now deprecated, and while there are no current plans to remove it from Domain, it will no longer receive feature updates within Domain.

Change adds 4 new flags:
  • PREVENT_BAZAAR_BUY_BY_NONALLOWED
  • PREVENT_BAZAAR_CREATE_BY_NONALLOWED
  • PREVENT_BAZAAR_REMOVE_BY_NONALLOWED
  • PREVENT_BAZAAR_SELL_BY_NONALLOWED
The following should be added to config.yml in the flags section:

Code (YAML):
 PREVENT_BAZAAR_BUY_BY_NONALLOWED:
    name
: "&bPrevent Bazaar Shop Buy"
    lore
: "&fPrevents Non-Allowed players from buying from Bazaar shops"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BAZAAR_CREATE_BY_NONALLOWED
:
    name
: "&bPrevent Bazaar Shop Create"
    lore
: "&fPrevents Non-Allowed players from creating Bazaar shops"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BAZAAR_REMOVE_BY_NONALLOWED
:
    name
: "&bPrevent Bazaar Shop Remove"
    lore
: "&fPrevents a Non-Allowed player from removing Bazaar shops"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BAZAAR_SELL_BY_NONALLOWED
:
    name
: "&bPrevent Bazaar Shop Sell"
    lore
: "&fPrevents a Non-Allowed player from selling to Bazaar shops"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

And the following should be added to the lang.yml file:

Code (YAML):
 
bazaar_prevent_buy
: "&4ERROR &r- You cannot buy items here"
bazaar_prevent_buy_bypass
: "&4BYPASS WARNING &r- You are not allowed to buy items here, but have bypass enabled"
bazaar_prevent_sell
: "&4ERROR &r- You cannot sell items here"
bazaar_prevent_sell_bypass
: "&4BYPASS WARNING &r- You are not allowed to sell items here, but have bypass enabled"
bazaar_prevent_create
: "&4ERROR &r- You cannot create a Bazaar shop here"
bazaar_prevent_create_bypass
: "&4BYPASS WARNING &r- You are not allowed to create a Bazaar shop here, but have bypass enabled"
bazaar_prevent_remove
: "&4ERROR &r- You cannot remove a Bazaar shop here"
bazaar_prevent_remove_bypass
: "&4BYPASS WARNING &r- You are not allowed to remove a Bazaar shop here, but have bypass enabled"
 

Bazaar is currently awaiting moderation on Spigot so is not available for public downloads - contact me on Discord re: beta program.
----------, Aug 12, 2019

Change Log 1.1.43

/domain buy now needs the domain.field permission

Various non-critical bug fixes
----------, Aug 1, 2019

Change Log 1.1.42

This update contains a bug fix for teleport blocks.

When teleporting to a world created with Multiverse etc., Domain might record a null world name in the teleport to location when restarting the server.

This was caused by Domain running before Multiverse, so the world not existing in-game when the Location was set, causing the null error.

When a null world is found now, it will refer back to the tp locations original entry and pull the world name from there instead. If the world is still not found, the current world is expected.
----------, Jul 30, 2019

Change Log 1.1.40

This update brings a number of changes.

SimpleClans
Domain no longer supports SimpleClans - Myriad Clans is the supported clan plugin for Domain. It is available here [ https://www.spigotmc.org/resources/myriad-clans.68461/] and is free for anyone who has purchased Domain - just send me a message to be added to the buyers list. If you are relying on SimpleClans support, do NOT update.

Domain Block Store

A Domain block store has been added - accessible via /domain buy

NOTE: You must have Vault and a Vault supported Economy plugin enabled to use the store.

2019-07-22 09_49_48-Minecraft 1.14.3.png

The store defaults to being available, but can be turned on/off in the config file

Code (YAML):
# If domain_shop = true, then /domain buy will work, if domain_shop = false, then it will be disabled.  If this entry is not included in the config file, it will default to true.
domain_shop
: true

The shop however will not include any blocks unless you add a cost to the block configuration files - in this way you can only include certain types of blocks as you wish.

Code (YAML):
# cost_to_buy is the price of the block in the Domain store (accessible via /domain buy) - if this is missing, the block will not be included.
cost_to_buy
: 500

Search
A simple search function has been added for anyone with domain.admin permissions.

/domain search owner:<owner> type:<block type> world:<world>

You can include only the search item you want, or you can combine them, for example:

/domain search owner:torpkev world:world_nether

Would search for any blocks owned by torpkev in the nether

/domain search type:city

Would search for any city blocks, regardless of owner or world.

2019-07-22 09_48_17-Minecraft 1.14.3.png

Auto-Saving
Domain field changes will be saved to the database every hour as well as when the server shuts down.

PREVENT_INTERACT Changes
PREVENT_INTERACT now includes the 114 items that were previously accessible via their own flags, such as PREVENT_INTERACT_GRINDSTONE_BY_NONALLOWED

Teleport Blocks
Teleport blocks have been added so that when a player enters the field they will be teleported directly to another place.

To activate the teleport block, add the TELEPORT_TO flag

Code (YAML):
flags:
  TELEPORT_TO
: true

To set the teleport location, open the Domain block by right clicking it then going to Edit, then select Open for Commands

Then go to the location you wish to teleport to and enter:

/domain tpto

This will set the location.

Having Bypass mode enabled will prevent the player from teleporting.

Bug Fixes
A fix for the display_name config option which was not setting the prefix on messages correctly

As with all updates, please back up your Domain folder and jar BEFORE putting the new version in.
----------, Jul 22, 2019

Change Log 1.1.35

Further under-the-hood fixes and changes, as well as correcting some minor bugs and optimizations
----------, Jun 26, 2019

Change Log 1.1.34

Looks like my goldfish walked over my keyboard prior to the last update resulting in a few unforeseen issues:
  • Domain blocks where the name of the file (without the .yml) didn't match the key exactly caused issues loading (for example, the default of griefprevent.yml with a key of grief_prevent).
  • Visualization was attempted when a block wasn't created yet.
  • SOMEBODY left some code in so that when a new field was created, it sent a message to the player saying that an event had been called.

Please report any other issues if they come up - a copy of your config file and the block configuration files would be extremely helpful with any bug report.

Thanks!
----------, Jun 26, 2019

Change Log 1.1.33

Fairly big update this time around, it addresses a number of configuration and customization changes.

The default Config will now include comments explaining each option

pvp_seconds is being deprecated and is replaced with pvp_glow_time and pvp_no_teleport_time. pvp_seconds will still work, but may be removed in a coming version.

Code (YAML):
# pvp_seconds is deprecated, but will continue to work in the absence of pvp_glow_time and pvp_no_teleport_time
pvp_seconds
: 30

# pvp_glow_time is the amount of seconds a player will glow after engaging in PVP in a
# field with the GLOW_NONALLOWED_PLAYER_ON_PVP flag
pvp_glow_time
: 30

# pvp_no_teleport_time is the amount of seconds a player will not be allowed to teleport after engaging
# in pvp in a field with PREVENT_PVP_TELEPORT_FROM or PREVENT_PVP_TELEPORT_TO flags
pvp_no_teleport_time
: 30
You can now assign a new default name, welcome message and farewell message to your fields:
Code (YAML):
# default_name is the name applied to a new field.  You can use the following substitutions:
# <%player%> = Player Name
# <%type%> = Block Type
default_name
: "<%player%>'s <%type%> field"

# default_welcome is the welcome message applied to a new field.  You can use the following substitutions:
# <%player%> = Player Name
# <%type%> = Block Type
default_welcome
: "Entering <%player%>'s <%type%> field"

# default_farewell is the farewell message applied to a new field.  You can use the following substitutions:
# <%player%> = Player Name
# <%type%> = Block Type
default_farewell
: "Leaving <%player%>'s <%type%> field"
 
You can now assign a custom name, lore, enabled status and material to the Domain menus.

custom_gui1.png

custom_gui2.png

custom_gui3.png

Below in the spoiler tag is the full gui section to add to the config file:

Code (YAML):
# The gui options below allow you to modify the look/feel of the GUI menus
# Each isbroken out into 3-4 parts.  gui.<type>.material, gui.<type>.name, gui.<type>.lore and gui.<type>.enabled (not in all options)
# Material MUST be a valid Minecraft material.  Lore can take a new line by using the | character.  Both name and lore can use & color codes.
# The enabled option is only available on gui options that do things such as resizing, visualizing etc.
gui
:
  na
:
    material
: BLACK_STAINED_GLASS_PANE
  error
:
    material
: RED_STAINED_GLASS_PANE
  disabled
:
    material
: BARRIER
    lore
: "&fThis option is not available"
  back
:
    material
: NETHER_STAR
    name
: "&bBack"
    lore
: "&fReturn to previous page"
  display_field
:
    material
: BEACON
    name
: "&bDisplay Field"
    lore
: "&fVisualize the field"
    enabled
: true
  edit_field
:
    material
: ENCHANTING_TABLE
    name
: "&bEdit Field"
    lore
: "&fAccess the Domain Edit Menu"
    enabled
: true
  edit_name
:
    material
: NAME_TAG
    name
: "&bEdit Name"
    lore
: "&fModifies the name of the field"
    enabled
: true
  edit_welcome
:
    material
: WRITABLE_BOOK
    name
: "&bEdit Welcome Message"
    lore
: "&fModifies the welcome message for the field"
    enabled
: true
  edit_farewell
:
    material
: WRITABLE_BOOK
    name
: "&bEdit Farewell Message"
    lore
: "&fModifies the farewell message for the field"
    enabled
: true
  edit_resize
:
    material
: DAYLIGHT_DETECTOR
    name
: "&bResize"
    lore
: "&fGives a Domain Resize wand so you|&fcan resize the field"
    enabled
: true
  edit_merge
:
    material
: ANVIL
    name
: "&bMerge"
    lore
: "&fAllows you to merge multiple Domain blocks|&ftogether in order to increase max volume"
    enabled
: true
  edit_commands
:
    material
: COMMAND_BLOCK
    name
: "&bOpen for Commands"
    lore
: "&fOpens the Domain block for commands which are|&faccessible through the /domain command"
    enabled
: true
  edit_take
:
    material
: DIAMOND_PICKAXE
    name
: "&bTake"
    lore
: "&fAllows you to remove the Domain block"
    enabled
: true
  edit_status
:
    material
: LEVER
    name
: "&bEnable/Disable"
    lore
: "&fAllows you to change the status of|&fthe Domain block.  No flags will|&fbe applied if disabled"
    enabled
: true
  info
:
    material
: KNOWLEDGE_BOOK
    name
: "&bField Information"
    lore
: "&fOpens the Domain Information Menu"
    enabled
: true
  info_info
:
    material
: PAPER
    name
: "&bField Information"
    lore
: "&fDisplays information about your field"
    enabled
: true
  info_who
:
    material
: ENDER_EYE
    name
: "&bWho else is in field?"
    lore
: "&fDisplays a list of other players in your field"
    enabled
: true
  info_flags
:
    material
: YELLOW_BANNER
    name
: "&bFlags"
    lore
: "&fDisplays the flags currently assigned to this field"
    enabled
: true
  info_flags_previous
:
    material
: LIGHT_BLUE_CONCRETE
    name
: "&bPrevious"
    lore
: "&fGoes to the previous page"
    enabled
: true
  info_flags_previous_disabled
:
    material
: GRAY_CONCRETE
    name
: "&4Previous"
    lore
: "No previous pages found"
    enabled
: true
  info_flags_next
:
    material
: ORANGE_CONCRETE
    name
: "&bNext"
    lore
: "&fGoes to the next page"
    enabled
: true
  info_flags_next_disabled
:
    material
: GRAY_CONCRETE
    name
: "&4Next"
    lore
: "No more pages found"
    enabled
: true
  info_rent
:
    material
: OAK_SIGN
    name
: "&bRent Info"
    lore
: "&fDisplays any rent information for this field"
    enabled
: true
  permission
:
    material
: PLAYER_HEAD
    name
: "&bPermissions"
    lore
: "&fOpens the Domain Permissions menu|&eMay take a few moments to open"
    enabled
: true
  permission_add
:
    material
: TOTEM_OF_UNDYING
    name
: "&bAdd Player"
    lore
: "&fAllows you to add a player to the field"
    enabled
: true
  permission_make_owner
:
    material
: END_CRYSTAL
    name
: "&bMake Owner"
    lore
: "&fChanges ownership of the block to the player"
    enabled
: true
  permission_remove
:
    material
: BARRIER
    name
: "&bRemove Player"
    lore
: "&fRemoves the player from the field permissions"
    enabled
: true
  permission_previous
:
    material
: LIGHT_BLUE_CONCRETE
    name
: "&bPrevious"
    lore
: "&fGoes to the previous page"
  permission_previous_disabled
:
    material
: GRAY_CONCRETE
    name
: "&4Previous"
    lore
: "No previous pages found"
  permission_next
:
    material
: ORANGE_CONCRETE
    name
: "&bNext"
    lore
: "&fGoes to the next page"
  permission_next_disabled
:
    material
: GRAY_CONCRETE
    name
: "&4Next"
    lore
: "No more pages found"
  permission_edit_player_blank
:
    material
: YELLOW_STAINED_GLASS_PANE
    name
: ""
    lore
: ""
  permission_add_blank_1
:
    material
: GREEN_STAINED_GLASS_PANE
    name
: ""
    lore
: ""
  permission_add_blank_2
:
    material
: LIME_STAINED_GLASS_PANE
    name
: ""
    lore
: ""
  take_no
:
    material
: RED_STAINED_GLASS_PANE
    name
: "&4No"
    lore
: "&fCancels taking the Domain block"
  take_yes
:
    material
: GREEN_STAINED_GLASS_PANE
    name
: "&2Yes"
    lore
: "&fConfirms taking the Domain block"
  flag_allow
:
    material
: LIME_STAINED_GLASS_PANE
    name
: "&2Allow"
    lore
: "&fAllows this flag in the field"
  flag_deny
:
    material
: RED_STAINED_GLASS_PANE
    name
: "&4Deny"
    lore
: "&fDenies this flag in the filed"  

And you can also customize the flags to have a custom name, lore, locked status and on/off material.

custom_flags1.png
custom_flags2.png

Locked Flag:

custom_flags3.png

Below in the spoiler tag is the full flags section to add to your config:

Code (YAML):
# flags is a list of flags and replacement name, lore, locked status and icons to use in the menus
# & colors codes can be used in name and lore - if you use a new line in the lore (use a | character)
# you will need to reapply the color code for the new line
# Formatted as follows:
# flags:
#   <FLAG NAME>:
#     name: <Easy to read name>
#     lore: <Easy to read lore - use | for a new line>
#     icon_on: <the material to use for an enabled flag>
#     icon_off: <the material to use for a disabled flag>
#     locked: <true/false>
# Example:
# flags:
#   PREVENT_SPONGE_ABSORB:
#     name: "&bPrevent Sponge Absorb"
#     lore: "&fPrevents sponges from absorbing water|&fin the field"
#     icon_on: SPONGE
#     icon_off: BARRIER
#     locked: true
# In this example, the PREVENT_SPONGE_ABSORB flag would be a sponge if enabled and a barrier if disabled,
# but is locked so the user cannot change it unless they have Domain Bypass mode enabled.
flags
:
  DISPLAY_FAREWELL
:
    name
: "&bDisplay Farewell"
    lore
: "&fDisplays a farewell message when|&fa player leaves the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  DISPLAY_WELCOME
:
    name
: "&bDisplay Welcome"
    lore
: "&fDisplays a welcome message when|&fa player enters the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  DROP_ALL_ON_PVP_TELEPORT
:
    name
: "&bDrop All on PVP Teleport"
    lore
: "&fCauses a player to drop all items|&fif they teleport after PVP"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  ENABLE_FLY_FOR_ALLOWED
:
    name
: "&bEnable Fly for Allowed"
    lore
: "&fEnables fly mode in the field for allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EPIDEMIC_PREVENT_AFFLICT
:
    name
: "&bPrevent Epidemic Affliction"
    lore
: "&fPrevents a player from being afflicted|&fby Epidemic"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  EPIDEMIC_PREVENT_SYMPTOMS
:
    name
: "&bPrevent Epidemic Symptoms"
    lore
: "&fPrevents a player suffering from|&fsymptoms from Epidemic"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  FREEZE_ON_PVP_TELEPORT
:
    name
: "&bFreeze on PVP Teleport"
    lore
: "&fFreezes the player if they attempt to|&fteleport after PVP"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  GLOW_NONALLOWED_PLAYER_ON_PVP
:
    name
: "&bGlow Non-Allowed Player on PVP"
    lore
: "&fCauses a player to glow if they|&fattempt PVP while not allowed in|&fthe field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  HARM_NONALLOWED_PLAYER
:
    name
: "&bHarm Non-Allowed Player"
    lore
: "&fCauses a player not allowed in the field|&fto start taking damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  HEAL_ALLOWED_PLAYER
:
    name
: "&bHeal Player"
    lore
: "&fHeals players allowed in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  INSTANT_HEAL_ALLOWED_PLAYER
:
    name
: "&bInstant Heal Allowed Player"
    lore
: "&fInstantly heals an allowed player to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_DOOR_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Door Access"
    lore
: "&fPrevents a Non-Allowed player from accessing doors"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GATE_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Gate Access"
    lore
: "&fPrevents a Non-Allowed player from accessing gates"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_TRAPDOOR_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Gate Access"
    lore
: "&fPrevents a Non-Allowed player from accessing trapdoors"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BUTTON_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Button Access"
    lore
: "&fPrevents a Non-Allowed player from accessing buttons"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PRESSURE_PLATE_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Pressure-Plate Access"
    lore
: "&fPrevents a Non-Allowed player from accessing pressure plates"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_LEVER_BY_NONALLOWED
:
    name
: "&bPrevent Lever Access"
    lore
: "&fPrevents a Non-Allowed player from accessing levers"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Access"
    lore
: "&fPrevents a Non-Allowed player from entering a field|&frepeated attempts will cause them to return to spawn"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ALLOWED_PLAYER_CONTACT_DAMAGE
:
    name
: "&bPrevent Contact Damage"
    lore
: "&fPrevents players allowed to the field from taking|&fcontact damage (cactus, sweet berry bush etc.)"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ALLOWED_PLAYER_DROWN
:
    name
: "&bPrevent Drown"
    lore
: "&fPrevents players allowed to the field from taking|&fdrowning damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ALLOWED_PLAYER_EXPLOSION_DAMAGE
:
    name
: "&bPrevent Explosion Damage"
    lore
: "&fPrevents players allowed to the field from taking|&fexplosion damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ALLOWED_PLAYER_FALL_DAMAGE
:
    name
: "&bPrevent Fall Damage"
    lore
: "&fPrevents players allowed to the field from taking|&ffall damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ALLOWED_PLAYER_FIRE_DAMAGE
:
    name
: "&bPrevent Fire Damage"
    lore
: "&fPrevents players allowed to the field from taking|&ffire damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ALLOWED_PLAYER_WITHER_DAMAGE
:
    name
: "&bPrevent Wither Damage"
    lore
: "&fPrevents players allowed to the field from taking|&fwither damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ANIMAL_DAMAGE_BY_ALL
:
    name
: "&bPrevent Animal Damage by All"
    lore
: "&fPrevents any animal damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ANIMAL_DAMAGE_BY_ALLOWED
:
    name
: "&bPrevent Animal Damage by Allowed"
    lore
: "&fPrevents animal damage by Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ANIMAL_DAMAGE_BY_NONALLOWED
:
    name
: "&bPrevent Animal Damage by Non-Allowed"
    lore
: "&fPrevents animal damage by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ANIMAL_DAMAGE_BY_NONPLAYER
:
    name
: "&bPrevent Animal Damage by Non-Player"
    lore
: "&fPrevents Non-Players from causing animal damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ARROW_INTERACT
:
    name
: "&bPrevent Arrow Interaction"
    lore
: "&fPrevents arrows from interacting with buttons and pressure plates"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BLOCK_BURN
:
    name
: "&bPrevent Block Burn"
    lore
: "&fPrevents blocks from burning away"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BREAK
:
    name
: "&bPrevent Break"
    lore
: "&fPrevents blocks being broken by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BREAK_BOAT_BY_NONALLOWED
:
    name
: "&bPrevent Boat Breaking by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from breaking boats"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BREAK_MINECART_BY_NONALLOWED
:
    name
: "&bPrevent Minecart Breaking by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from breaking minecarts"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BREEDING
:
    name
: "&bPrevent Breeding"
    lore
: "&fPrevents mobs from breeding"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BUCKET_FILL_BY_NONALLOWED
:
    name
: "&bPrevent Bucket-Fill"
    lore
: "&fPrevents a Non-Allowed player from filling a bucket"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BUILD
:
    name
: "&bPrevent Build"
    lore
: "&fPrevents Non-Allowed players from building"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BUILD_IRON_GOLEM
:
    name
: "&bPrevent Iron Golem"
    lore
: "&fPrevents Iron Golems from being built"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_BUILD_SNOWMAN
:
    name
: "&bPrevent Snowman"
    lore
: "&fPrevent Snowmenfrom being built"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_CHORUSFRUIT_TO
:
    name
: "&bPrevent Chorus Fruit To"
    lore
: "&fPrevents Chorus Fruit teleporting to the field|&fby Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_COMMAND_CUSTOM1_BY_NONALLOWED
:
    name
: "&bPrevent Custom Commands 1"
    lore
: "&fPrevents certain commands being run in the|&ffield by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_COMMAND_CUSTOM2_BY_NONALLOWED
:
    name
: "&bPrevent Custom Commands 2"
    lore
: "&fPrevents certain commands being run in the|&ffield by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_COMMAND_CUSTOM3_BY_NONALLOWED
:
    name
: "&bPrevent Custom Commands 3"
    lore
: "&fPrevents certain commands being run in the|&ffield by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_COMMAND_CUSTOM4_BY_NONALLOWED
:
    name
: "&bPrevent Custom Commands 4"
    lore
: "&fPrevents certain commands being run in the|&ffield by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_COMMAND_HOME_BY_NONALLOWED
:
    name
: "&bPrevent Home Commands"
    lore
: "&fPrevents Home commands being run in the|&ffield by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_COMMAND_TELEPORT_BY_NONALLOWED
:
    name
: "&bPrevent Teleport Commands"
    lore
: "&fPrevents Teleport commands being run in the|&ffield by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_CROP_DAMAGE_BY_NONALLOWED
:
    name
: "&bPrevent Crop Damage"
    lore
: "&fPrevents crop damage by Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_CROP_DAMAGE_BY_NONPLAYER
:
    name
: "&bPrevent Crop Damage by Mob"
    lore
: "&fPrevents Non-Players from causing crop damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_DROP_ITEM_BY_NONALLOWED
:
    name
: "&bPrevent Drop Item"
    lore
: "&fPrevents Non-Allowed players from dropping items in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ELYTRA_GLIDING
:
    name
: "&bPrevent Elytra Gliding"
    lore
: "&fPrevents Elytra gliding in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_END_PORTAL_BY_NONALLOWED
:
    name
: "&bPrevent End Portal Use"
    lore
: "&fPrevents Non-Allowed players from using an End Portal|&fin the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ENDERPEARL_TO
:
    name
: "&bPrevent Enderpearl To"
    lore
: "&fPrevents Non-Allowed players from Enderpearl teleporting to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_EXPLOSION_DAMAGE
:
    name
: "&bPrevent Explosion Damage"
    lore
: "&fPrevents blocks in the field from taking explosion damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_FIRE_IGNITE
:
    name
: "&bPrevent Fire Ignite"
    lore
: "&fPrevents fires from being ignited"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_FIRE_SPREAD
:
    name
: "&bPrevent Fire Spread"
    lore
: "&fPrevents fires from spreading in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_FIREWORK_LAUNCH_BY_NONALLOWED
:
    name
: "&bPrevent Firework Launch"
    lore
: "&fPrevents Non-Allowed players from launching|&ffireworks in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_BEETROOTS
:
    name
: "&bPrevent Beetroot Growing"
    lore
: "&fPrevents beetroots from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_CACTUS
:
    name
: "&bPrevent Cactus Growing"
    lore
: "&fPrevents cactus from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_CARROTS
:
    name
: "&bPrevent Carrot Growing"
    lore
: "&fPrevents carrots from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_CHORUS_FLOWER
:
    name
: "&bPrevents Chorus Flower Growing"
    lore
: "&fPrevents Chorus Flowers from growing in the field|&fDoes not stop the plant, just the flower"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_COCOA
:
    name
: "&bPrevent Cocoa Growing"
    lore
: "&fPrevents Cocoa from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_MELON
:
    name
: "&bPrevent Melon Growing"
    lore
: "&fPrevents Melons from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_NETHER_WART
:
    name
: "&bPrevent Nether Wart Growing"
    lore
: "&fPrevents Nether Wart from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_POTATOES
:
    name
: "&bPrevent Potato Growing"
    lore
: "&fPrevents potatoes from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_PUMPKIN
:
    name
: "&bPrevent Pumpkin Growing"
    lore
: "&fPrevents pumpkins from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_SUGAR_CANE
:
    name
: "&bPrevent Sugar Cane Growing"
    lore
: "&fPrevents sugar cane from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_SWEET_BERRY_BUSH
:
    name
: "&bPrevent Sweet Berry Bush Growing"
    lore
: "&fPrevents Sweet Berry bushes from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_TURTLE_EGG
:
    name
: "&bPrevent Turtle Egg Growing"
    lore
: "&fPrevents Turtle Eggs from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_GROW_WHEAT
:
    name
: "&bPrevent Wheat Growing"
    lore
: "&fPrevents wheat from growing in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT
:
    name
: "&bPrevent Interact"
    lore
: "&fPrevents interaction with chests, shulker boxes, furnaces,|&fdroppers, buttons,|&fdoors, gates, switches, pressure plates, beds etc."
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_ANVIL_BY_NONALLOWED
:
    name
: "&bPrevent Anvil Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fanvils in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_ARMOR_STAND_BY_NONALLOWED
:
    name
: "&bPrevent Armor Stand Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&farmor stands in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_BARREL_BY_NONALLOWED
:
    name
: "&bPrevent Barrel Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fbarrels in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_BED_BY_NONALLOWED
:
    name
: "&bPrevent Bed Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fbeds in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_BELL_BY_NONALLOWED
:
    name
: "&bPrevent Bell Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fbells in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_BLAST_FURNACE_BY_NONALLOWED
:
    name
: "&bPrevent Blast Furnace Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fblast furnaces in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_BREWING_STAND_BY_NONALLOWED
:
    name
: "&bPrevent Brewing Stand Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fbrewing stands in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_CAMPFIRE_BY_NONALLOWED
:
    name
: "&bPrevent Campfire Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fcampfires in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_CARTOGRAPHY_TABLE_BY_NONALLOWED
:
    name
: "&bPrevent Cartography Table Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fcartography tables in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_CHEST_BY_NONALLOWED
:
    name
: "&bPrevent Chest Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fchests in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_COMPOSTER_BY_NONALLOWED
:
    name
: "&bPrevent Composter Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fcomposters in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_CRAFTING_TABLE_BY_NONALLOWED
:
    name
: "&bPrevent Crafting Table Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fcrafting tables in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_DISPENSER_BY_NONALLOWED
:
    name
: "&bPrevent Dispenser Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fdispensers in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_DROPPER_BY_NONALLOWED
:
    name
: "&bPrevent Dropper Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fdroppers in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_ENCHANTING_TABLE_BY_NONALLOWED
:
    name
: "&bPrevent Enchanting Table Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fenchanting tables in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_ENDERCHEST_BY_NONALLOWED
:
    name
: "&bPrevent EnderChest Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fenderchests in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_FLOWERPOT_BY_NONALLOWED
:
    name
: "&bPrevent Flowerpot Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fflower pots in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_FURNACE_BY_NONALLOWED
:
    name
: "&bPrevent Furnace Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&ffurnaces in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_GRINDSTONE_BY_NONALLOWED
:
    name
: "&bPrevent Grindstone Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fanvils in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_HOPPER_BY_NONALLOWED
:
    name
: "&bPrevent Hopper Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fhoppers in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_ITEM_FRAME_BY_NONALLOWED
:
    name
: "&bPrevent Item Frame Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fitem frames in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_JUKEBOX_BY_NONALLOWED
:
    name
: "&bPrevent Jukebox Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fjukeboxes in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_LECTERN_BY_NONALLOWED
:
    name
: "&bPrevent Lectern Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&flecterns in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_LOOM_BY_NONALLOWED
:
    name
: "&bPrevent Loom Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&flooms in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_SHULKERBOX_BY_NONALLOWED
:
    name
: "&bPrevent Shulker Box Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fshulker boxes in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_SMOKER_BY_NONALLOWED
:
    name
: "&bPrevent Smoker Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fsmokers in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_INTERACT_STONECUTTER_BY_NONALLOWED
:
    name
: "&bPrevent Stonecutter Interaction"
    lore
: "&fPrevents Non-Allowed players from interacting with|&fstonecutters in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ITEM_FRAME_ACCESS_BY_NONALLOWED
:
    name
: "&bPrevent Item Frame Access"
    lore
: "&fPrevents Non-Allowed players from accessing item frames in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ITEM_PICKUP_BY_NONALLOWED
:
    name
: "&bPrevent Item Pickup"
    lore
: "&fPrevents Non-Allowed players from picking up items in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_ITEM_PICKUP_BY_VILLAGER
:
    name
: "&bPrevent Villager Item Pickup"
    lore
: "&fPrevents Villagers from picking up items in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_LAVA_FLOW
:
    name
: "&bPrevent Lava Flow"
    lore
: "&fPrevents lava flow in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_LAVA_FLOW_TO
:
    name
: "&bPrevent Lava Flow Into Field"
    lore
: "&fPrevents lava from flowing into the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_LAVA_PLACE
:
    name
: "&bPrevent Lava Place"
    lore
: "&fPrevents Non-Allowed players from placing lava in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_LINGERINGPOTION_EFFECT
:
    name
: "&bPrevent Lingering Potion Effect"
    lore
: "&fPrevents lingering potion effects in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MAGIC
:
    name
: "&bPrevent Magic"
    lore
: "&fPrevents Magic in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOB_CONTACT_DAMAGE
:
    name
: "&bPrevent Mob Contact Damage"
    lore
: "&fPrevents Non-Players from taking contact damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOB_DROWN
:
    name
: "&bPrevent Mob Drown"
    lore
: "&fPrevents Non-Players from drowning"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOB_EXPLOSION_DAMAGE
:
    name
: "&bPrevent Mob Explosion Damage"
    lore
: "&fPrevents Non-Players from taking explosion damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOB_FALL_DAMAGE
:
    name
: "&bPrevent Mob Fall Damage"
    lore
: "&fPrevents Non-Players from taking fall damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOB_FIRE_DAMAGE
:
    name
: "&bPrevent Mob Fire Damage"
    lore
: "&fPrevents Non-Players from taking fire damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MOB_WITHER_DAMAGE
:
    name
: "&bPrevent Mob Wither Damage"
    lore
: "&fPrevents Non-Players from taking Wither damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MONSTER_DAMAGE_BY_ALL
:
    name
: "&bPrevent Monster Damage by All"
    lore
: "&fPrevent monsters from taking damage from anyone"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MONSTER_DAMAGE_BY_ALLOWED
:
    name
: "&bPrevent Monster Damage by Allowed"
    lore
: "&fPrevents Allowed players from damaging monsters"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MONSTER_DAMAGE_BY_NONALLOWED
:
    name
: "&bPrevent Monster Damage by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from damaging monsters"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_MONSTER_DAMAGE_BY_NONPLAYER
:
    name
: "&bPrevent Monster Damage by Non-Player"
    lore
: "&fPrevents Non-Players from damaging monsters"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_NETHER_PORTAL_BY_NONALLOWED
:
    name
: "&bPrevent Nether Portal Access"
    lore
: "&fPrevents Non-Allowed players from using Nether Portals"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PISTON_MOVE_INTO_FIELD
:
    name
: "&bPrevent Piston Move Into Field"
    lore
: "&fPrevents a piston from moving a block into the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PISTON_MOVE_OUT_FIELD
:
    name
: "&bPrevent Piston Move Out of Field"
    lore
: "&fPrevents a piston from moving a block out of the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLACE_BOAT_BY_NONALLOWED
:
    name
: "&bPrevent Boat Place"
    lore
: "&fPrevents Non-Allowed players from placing boats"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLACE_MINECART_BY_NONALLOWED
:
    name
: "&bPrevent Minecart Place"
    lore
: "&fPrevents Non-Allowed players from placing minecarts"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLACE_PAINTING_BY_NONALLOWED
:
    name
: "&bPrevent Painting Place"
    lore
: "&fPrevents Non-Allowed players from placing paintings"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_ATTACK_DAMAGE_BY_CREATURE
:
    name
: "&bPrevent Attack Damage"
    lore
: "&fPrevent a player from taking attack damage from any creature"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_CONTACT_DAMAGE
:
    name
: "&bPrevent Contact Damage"
    lore
: "&fPrevents a player from taking contact damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_DROWN
:
    name
: "&bPrevent Player Drown"
    lore
: "&fPrevents a player from taking drowning damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_EXPLOSION_DAMAGE
:
    name
: "&bPrevent Player Explosion Damage"
    lore
: "&fPrevents a player from taking explosion damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_FALL_DAMAGE
:
    name
: "&bPrevent Player Fall Damage"
    lore
: "&fPrevents a player from taking fall damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_FIRE_DAMAGE
:
    name
: "&bPrevent Player Fire Damage"
    lore
: "&fPrevents a player from taking fire damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PLAYER_WITHER_DAMAGE
:
    name
: "&bPrevent Player Wither Damage"
    lore
: "&fPrevents a player from taking wither damage"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PROJECTILE_ITEM_FRAME
:
    name
: "&bPrevent Projectile/Item Frame Interaction"
    lore
: "&fPrevents projectiles from damaging item frames"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PVP
:
    name
: "&bPrevent PVP"
    lore
: "&fPrevent a player from taking damage from another player (including projectiles)"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PVP_BY_NONALLOWED
:
    name
: "&bPrevent PVP By Non-Allowed"
    lore
: "&fPrevent a player from taking damage from another player (including|&fprojectiles) if the attacker is not allowed|&fin the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PVP_TELEPORT_FROM
:
    name
: "&bPrevent PVP Teleport From"
    lore
: "&fPrevents a player from teleporting from a field if they|&fengaged in PVP"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_PVP_TELEPORT_TO
:
    name
: "&bPrevent PVP Teleport To"
    lore
: "&fPrevents a player from teleporting to a field if|&fthey have engaged in PVP"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHEAR_BY_NONALLOWED
:
    name
: "&bPrevent Shearing"
    lore
: "&fPrevents Non-Allowed players from shearing animals"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHEEP_DYE
:
    name
: "&bPrevent Sheep Dye"
    lore
: "&fPrevents sheep from being dyed"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHEEP_REGROW_WOOL
:
    name
: "&bPrevent Wool Growing"
    lore
: "&fPrevents a sheep from regrowing its wool"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHOPCHEST_BUY_BY_NONALLOWED
:
    name
: "&bPrevent ShopChest Buy"
    lore
: "&fPrevents Non-Allowed players from buying from ShopChest chests"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHOPCHEST_CREATE_BY_NONALLOWED
:
    name
: "&bPrevent ShopChest Create"
    lore
: "&fPrevents Non-Allowed players from creating a ShopChest chest"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHOPCHEST_REMOVE_BY_NONALLOWED
:
    name
: "&bPrevent ShopChest Remove"
    lore
: "&fPrevents a Non-Allowed player from removing a ShopChest chest"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SHOPCHEST_SELL_BY_NONALLOWED
:
    name
: "&bPrevent ShopChest Sell"
    lore
: "&fPrevents a Non-Allowed player from selling to a ShopChest chest"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SPAWN
:
    name
: "&bPrevent Spawn"
    lore
: "&fPrevents mob spawning"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SPAWNER_EGG
:
    name
: "&bPrevent Spawner Eggs"
    lore
: "&fPrevents Spawner Eggs from being used"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SPLASHPOTION_EFFECT
:
    name
: "&bPrevent Splash Potion effect"
    lore
: "&fPrevents splash potion effects"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_SPONGE_ABSORB
:
    name
: "&bPrevent Sponge Absorb"
    lore
: "&fPrevents sponges from absorbing water"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_TAME_BY_NONALLOWED
:
    name
: "&bPrevent Taming"
    lore
: "&fPrevents Non-Allowed players from taming an animal"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_TELEPORT_TO
:
    name
: "&bPrevent Teleport To"
    lore
: "&fPrevents Non-Allowed players from teleporting to the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_ENTER_ALL
:
    name
: "&bPrevent Vehicle Enter for All"
    lore
: "&fPrevent anyone from entering a vehicle"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_ENTER_BY_NONALLOWED
:
    name
: "&bPrevent Vehicle Enter by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from entering vehicles"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_ENTER_BY_NONPLAYER
:
    name
: "&bPrevent Vehicle Enter By Non-Player"
    lore
: "&fPrevents Non-Players from entering vehicles"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_EXIT_ALL
:
    name
: "&bPrevent Vehicle Exit for All"
    lore
: "&fPrevent anyone from exiting a vehicle"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_EXIT_BY_NONALLOWED
:
    name
: "&bPrevent Vehicle Exit by Non-Allowed"
    lore
: "&fPrevents Non-Allowed players from exiting vehicles"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VEHICLE_EXIT_BY_NONPLAYER
:
    name
: "&bPrevent Vehicle Exit By Non-Player"
    lore
: "&fPrevents Non-Players from exiting vehicles"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_DAMAGE_BY_ALL
:
    name
: "&bPrevent Villager Damage by All"
    lore
: "&fPrevent a villager from taking damage from anyone"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_DAMAGE_BY_ALLOWED
:
    name
: "&bPrevent Villager Damage by Allowed"
    lore
: "&fPrevents a villager taking damage from Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_DAMAGE_BY_NONALLOWED
:
    name
: "&bPrevent Villager Damage by Non-Allowed"
    lore
: "&fPrevents a villager taking damage from Non-Allowed players"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_DAMAGE_BY_NONPLAYER
:
    name
: "&bPrevent Villager Damage by Non-Player"
    lore
: "&fPrevents a villager taking damage from a Non-Player"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_FIRE
:
    name
: "&bPrevent Villager Fire"
    lore
: "&fPrevents Villagers being set on fire"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_TRADE_BY_ALL
:
    name
: "&bPrevent Villager Trade by All"
    lore
: "&fPrevents anyone from trading with a villager"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_VILLAGER_TRADE_BY_NONALLOWED
:
    name
: "&bPrevent Villager Trade by Non-Allowed"
    lore
: "&fPrevents a Non-Allowed player from trading with a villager"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_WATER_FLOW
:
    name
: "&bPrevent Water Flow"
    lore
: "&f"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_WATER_FLOW_TO
:
    name
: "&bPrevents water flow"
    lore
: "&f"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  PREVENT_WATER_PLACE
:
    name
: "&bPrevent Water Place"
    lore
: "&fPrevents a Non-Allowed player from placing water in the field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  REMOVE_FIRED_ARROWS_BY_NONALLOWED
:
    name
: "&bRemove Fired Arrows by Non-Allowed"
    lore
: "&fRemoves any arrows fired by a Non-Allowed player"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  REMOVE_FIRED_FLAME_ARROWS_BY_NONALLOWED
:
    name
: "&bRemoves Flame Arrows by Non-Allowed"
    lore
: "&fRemoves flame arrows fired by a Non-Allowed player"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  REPAIR_MAIN_HAND_ITEM
:
    name
: "&bRepair Item in Main Hand"
    lore
: "&fRepairs the item in an Allowed players main hand"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  RUN_COMMAND
:
    name
: "&bRun Command"
    lore
: "&fRuns a command when a player enters or leaves a field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  SNITCH_ON_ENTER
:
    name
: "&bSnitch on Enter"
    lore
: "&fAlerts the owner (if online) if a non-allowed player enters the Domain field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false
  SNITCH_ON_LEAVE
:
    name
: "&bSnitch on Leave"
    lore
: "&fAlerts the owner (if online) if a non-allowed player leaves the Domain field"
    icon_on
: LIME_STAINED_GLASS_PANE
    icon_off
: RED_STAINED_GLASS_PANE
    locked
: false

This update also includes a large number of under-the-hood updates, removing unused code, refactored code and a number of other changes.

A full copy of the SAMPLE configuration file is below. Be sure to review and modify as needed.

----------, Jun 25, 2019

Change Log 1.1.32

This fix corrects an issue introduced in 1.1.31 ( sorry!) where a messy import caused issues for users who didn't also have Myriad Clans installed.
----------, Jun 23, 2019

Change Log 1.1.31

A new block configuration option has been added that will change the visualization method from a full cube outline to just the corners - this is intended for large fields that might otherwise cause lag on visualizing.

Code (YAML):
visualize_corners : true
2019-06-21 10_11_55-Minecraft 1.14.3 Pre-Release 4.png

The directional spurs will be green if it is a valid field and red if it is not.

This visualization defaults to false - full visualization is still the default.

Some optimizations have been put in place for regular visualizations and these will continue to be worked on in the upcoming releases.

Also disabled the merge option when prevent resize is true:

Code (YAML):
prevent_resize : true
2019-06-21 10_13_20-Minecraft 1.14.3 Pre-Release 4.png
----------, Jun 21, 2019

Change Log 1.1.30

Myriad Clans support is now here. Myriad Clans is free upon request for anyone who has purchased Domain.
myriad_logo_small.png

NOTE: Myriad Clans is the preferred Clan plugin for Domain. SimpleClans support will be removed from Domain soon!

To add a clan to your field, right click your domain block, select Edit then open for commands. You can then use the following command to add the clan:

/domain clan allow <clan tag>

Or to remove the clan from your field:

/domain clan disallow <clan tag>

A GUI menu for Myriad Clans, as well as a number of other integration features will be coming soon.

This update also contains a change to the code that handles overlapping fields, it should significantly reduce the load on the server while checking for an overlapped fields. If you experience any issues with this change, please let me know asap.
----------, Jun 18, 2019

Change Log 1.1.29

Some minor bug fixes related to null errors in console.
----------, Jun 13, 2019

Change Log 1.1.28

This update prevents Domain blocks from being broken down for parts. For example, if you had a Diamond Block as your Domain block, and you put the Diamond block on the crafting table would give you 9 diamonds.

Doing so from version 1.1.28 onwards will result in an error being sent to the player and the block being non-craftable.
----------, Jun 11, 2019

Change Log 1.1.27

This update addresses two different reported issues.

PREVENT_PROJECTILE_ITEM_FRAME flag was preventing players from being able to remove items from item frames.

/domain locate could potentially throw a null exception which was not being picked up correctly when checking if the player was the owner of the field, due to some recent changes made to accommodate admin blocks.

Both issues have been resolved.
----------, Jun 10, 2019

Change Log 1.1.26

You can now make blocks a one-time use. These blocks when placed can be destroyed, but will not return the block to the owner.

To activate this, enter the following in the block configuration file:

Code (YAML):
one_time_use : true
(Note: This defaults to false)

This update also adds some additional checks and fixes some minor issues with the admin blocks.

2019-06-04 11_59_42-Minecraft 1.14.2.png

2019-06-04 12_00_05-Minecraft 1.14.2.png

2019-06-04 12_00_14-Minecraft 1.14.2.png
----------, Jun 4, 2019

Change Log 1.1.25

This update introduces the ability to create Admin blocks. Any Domain block can be converted to an Admin block, and once it is, any player with the domain.admin permission will have access to the block as though they were the owner. It also resets the owner

To create an admin block, place the block as normal, then open the block for commands via the Edit menu and then type in:

/domain adminblock

The admin blocks will be receiving some further feature updates in the near future - if you have something specific in mind for an admin block, please let me know!
----------, Jun 3, 2019

Change Log 1.1.24

This update adds a new command: /domain list

This command will list all the fields you have access to (you are either the owner or in bypass mode) at your current location. The list includes a link to open the field.

The list is in format: * <Domain field name> - <Domain block type> [Open]

2019-05-29 11_23_55-Minecraft 1.14.2.png

Any questions or concerns with this new command, please let me know!
----------, May 29, 2019

Change Log 1.1.23

This update blocks players from seeing a player in vanish/spectator mode when they click to view players in the field. Players with bypass mode turned on will also not show in the list.
----------, May 28, 2019

Change Log 1.1.22

This update adds some new flags designed to allow more granular flags on their fields.
  • PREVENT_DOOR_ACCESS_BY_NONALLOWED
  • PREVENT_GATE_ACCESS_BY_NONALLOWED
  • PREVENT_TRAPDOOR_ACCESS_BY_NONALLOWED
  • PREVENT_BUTTON_ACCESS_BY_NONALLOWED
  • PREVENT_PRESSURE_PLATE_ACCESS_BY_NONALLOWED
  • PREVENT_INTERACT_LEVER_BY_NONALLOWED
The pressure plate event fires continually while a player stands on it - the code is set so the particle effect and message to the user will only be displayed about every 5 seconds while they stand on a pressure plate in a field with the flag. It will continue to block access to them during that time however.

This update also corrects an issue with creating new fields which might allow overlapping of fields.
----------, May 22, 2019

Change Log 1.1.21

This update corrects two issues.

PREVENT_ITEM_PICKUP_BY_NONALLOWED was ignoring if the player was allowed which was preventing item pickup.

Domain blocks with colored display names were not being placed correctly as the color code characters were not being converted to the color prior to checking.
----------, May 21, 2019

Change Log 1.1.20

A bug was found and corrected that could cause block duplication when certain events occurred together with WorldGuard regions & Domain.

When WorldGuard prevented a field from being placed, 'ghost' fields were being created (leading to orphan fields) - a change has been made to the code to run a check after the event to see if the block was actually created, only then is the field saved.

The "/domain locate" command has been updated to allow a players name to be added (for players with domain.admin permission only)

/domain locate <player name>

This will list all the fields belonging to the player, and will give you options to teleport to the block, disable the block or delete the block.
----------, May 19, 2019

Change Log 1.1.19

Domain now uses the standard color codes with the & symbol instead of the #COLOR.x# codes - they will still work, but will be phased out in future versions.

The & color codes can now be used in the welcome/farewell messages, you can also use @p for the players name that is entering/leaving the field

2019-05-16 08_53_40-Minecraft 1.14.1.png

You can now complete change the [Domain] prefix at the start of the messages by altering the display_name value in the config.yml file - This impacts the square brackets around it, it also supports the color codes.

Example:

Code (YAML):
display_name : "&4My Server &f-"
----------, May 16, 2019

Change Log 1.1.18

A request was placed to prevent a field from being resized.

This is now possible using the following in each block configuration:

<block>.yml
Code (YAML):
prevent_resize : true
This will default to false and is an opt-in change only. When prevent_resize is active, the field cannot be resized unless the player is in bypass mode.

2019-05-15 15_05_04-Minecraft 1.14.1.png
----------, May 15, 2019

Change Log 1.17.1

A request was made to allow /domain give be accessible from the console.

The following can now be called from the console or in-game:

/domain give <player or uuid> <block name>

The following can only be called from in-game:

/domain give <player or uuid>
----------, May 15, 2019

Change Log 1.1.17

This update addresses a change to the /domain give command, as well as corrects an uncaught null error that could be reported to console.

Domain Give

The "/domain give <optional block name>" has changed to:

/domain get <optional block name>

Running the command without the optional block name will open the menu just as "/domain give" did.

The "/domain give" command is now used to give blocks directly to other players.

/domain give <player name or UUID> <optional block name>


Leaving the block name off will still open the menu, but selecting the Domain block from the menu will give the block to the player specified. You can use /domain give with your own name instead of /domain get if needed.

Note: The player MUST be online to receive the block in order to make sure that they have space in their inventory etc.

The
domain.admin permission is required for both "/domain give" and "/domain get"

Bug Fix

The console could receive a null error starting like:

This issue has been resolved.
----------, May 15, 2019

Change Log 1.1.16

Reports were received about lag caused by Domain, specifically in 1.14/1.14.1. This issue appears to be caused by unloaded chunks being referenced by the orphaned field check (which was part of the cleanup process)

This feature has been disabled and is now only accessible by manually activating the check. A future release will see it become a command option only.

Some commands have been been added for troubleshooting purposes only and should NOT be used unless part of the troubleshooting process. These commands require the domain.admin permission and are are not considered part of the normal commands run, as such, are subject to change/removal
  • /domain blocklistener - Turns the listener for blocks moving from/to (for example, lava flow) on/off [default is on].
  • /domain spawnlistener - Turns the listener for mob spawning on/off [default is on]
  • /domain entitylistener - Turns the listeners for entity damage and entity interaction on/off[default is on]
  • /domain movelistener - Turns the listener for player movement on/off - with this off, welcome/farewell messages, custom commands etc. will not work.[default is on]
  • /domain flycheck - Turns on/off the automatic check to see if players are flying.[default is on]
  • /domain cleanup - Turns on/off the automated cleanup processes.[default is on]
  • /domain orphancheck - Turns on/off the orphan field check (may cause lag if activated) [default is off]
----------, May 14, 2019

Change Log: 1.1.15

The maximum number of blocks has been modified slightly to allow better control of block counts.

max_blocks in the block configuration will be taken (defaulting to 999 if no entry for max_blocks is found)

then permission based limits will be taken (defaulting to 0 if no permission found)

The higher number between these will then be taken and that will be the maximum.

Example 1:

config.yml
Code (YAML):
perm_limit_by_block : true
<block>.yml
Code (YAML):
max_blocks = 0
permission:
Would allow a maximum of 3 blocks.

Example 2:

config.yml
Code (YAML):
perm_limit_by_block : true
<block>.yml
Code (YAML):
max_blocks = 5
permission:
Would allow a maximum of 5 blocks

Example 3:

config.yml
Code (YAML):
perm_limit_by_block : false
<block>.yml
Code (YAML):
max_blocks = 1
permission:
Would allow a maximum of 3 blocks

This code change also removes LLAMA_SPIT from the events that monitor projectile hits, which should reduce the amount of console spam in debug mode when standing near a llama
----------, May 13, 2019

Change Log 1.1.14

This update addresses an issue with checking if a block is a ShopChest shop where the ShopChest plugin exists, but has failed to load correctly. When this happens, the API exposed functions returned null and caused a console error. This error is now captured and prevents the console error issue.
----------, May 10, 2019

Change Log 1.1.13

This update adds a new feature and addresses 1 bug.

Custom Commands

You can now run a custom command when a player enters or leaves a field - this could be used to set a player into creative mode, teleport them to the nether or just any other command you run on your server.

These commands run as though they are coming from console, so only players with domain.admin permission can set them.

How to use Custom Commands

Add the following flag to your block configuration:

Code (YAML):

RUN_COMMAND
: true
 
Once the RUN_COMMAND flag is in place, you can right click on your Domain block, select Edit Field, then Open the field to commands. Once that is done (the Domain block will turn into a beacon) you can set the commands. Note: Do not include the leading / in the command.

Code (Text):
/domain entercommand tp @p 200 65 100
Would teleport any player who enters the field to location 200 65 100

Code (Text):
/domain entercommand mvtp @p world_nether
Would use the Multiverse plugin to teleport a player to the nether

Code (Text):
/domain entercommand gamemode creative @p
You can set it up so anyone leaving the field has a command run with the "/domain leavecommand" command

Code (Text):
/domain leavecommand gamemode survival @p
Keep in mind, these commands are run when you move into or out of the field - they do NOT run when teleporting. (This is to reduce the chance of a teleport loop taking place)

@p = player name
@u = player UUID

Placing yourself in Domain Bypass mode (/domain bypass) will allow you to enter the field without the commands being run. This is helpful in the case where you set up an automatic teleport or similar and need to modify the block.

If you have any questions, please let me know.

Bug fix: Item frames can no longer be broken by projectiles if the PREVENT_PROJECTILE_ITEM_FRAME flag is applied to the field. This was allowing skeletons to shoot map walls.
----------, May 6, 2019

Change Log 1.1.12

Added 2 bug fixes:

1) /domain reload command broke during a previous update, it should be working as expected again now.

2) Hanging items such as item frames, paintings and banners are now protected from explosion damage if PREVENT_EXPLOSION_DAMAGE flag is active
----------, May 3, 2019

Change Log 1.1.11

Added permission based block limits.

Limits can be placed per block, or across all blocks using the new configuration option "perm_limit_by_block" - if true, it will apply permissions per block, if false, it will limit by all blocks. It will default to true if no entry is in the config.

Code (YAML):
perm_limit_by_block : true
When true, players with the permission "domain.<blockname>.limit.<number>" will be limited to the block with a maximum of the number set.

Block name is the "block_key" value in your block configuration

Code (YAML):
block_key : grief_prevent
For example, you could assign permissions to a group that allows 3 grief_prevent blocks, 1 city block but no no_fly_zone blocks.

Code (Text):
domain.grief_prevent.limit.3
domain.city.limit.1
domain.no_fly_zone.limit.0
 
Once these limits are met, the player will receive an error message when trying to place a Domain block.

If perm_limit_by_block is false, the permission "domain.limit.<number>" will limit the number of Domain blocks, regardless of type.

For example, your group might look like the below, which would limit the player to a maximum of 5 domain blocks of any type.

Code (Text):
domain.limit.5
If no permission is found, the maximum defaults to 999, so if you want to use this feature, be sure to add limits to your default/member groups.

Any questions, please reach out in discussion, private message or on the Discord
----------, May 2, 2019

Change Log 1.1.10

1.14 Ready! (as of spigot-1.14-R0.1-SNAPSHOT.jar - 2019/05/01)

Adds the following flags:

1.13 and 1.14
PREVENT_GROW_WHEAT - Prevents wheat from growing
PREVENT_GROW_SUGAR_CANE - Prevents sugar cane from growing
PREVENT_GROW_CACTUS - Prevents cactus from growing
PREVENT_GROW_MELON - Prevents melon from growing
PREVENT_GROW_PUMPKIN - Prevents pumpkin from growing
PREVENT_GROW_TURTLE_EGG - Prevents turtle eggs from growing
PREVENT_GROW_COCOA - Prevents cocoa from growing
PREVENT_GROW_CARROTS - Prevents carrots from growing
PREVENT_GROW_POTATOES - Prevents potatoes from growing
PREVENT_GROW_BEETROOTS - Prevents beetroot from growing
PREVENT_GROW_NETHER_WART - Prevents nether wart from growing
PREVENT_GROW_CHORUS_FLOWER - Prevents chorus flowers from growing (does NOT stop the plant growing, just the flowers)
PREVENT_SPONGE_ABSORB - Prevents sponges absorbing water
PREVENT_TAME_BY_NONALLOWED - Prevents animal taming by non-allowed players
PREVENT_BREEDING - Prevents animals from breeding
PREVENT_FIREWORK_LAUNCH_BY_NONALLOWED - Prevents fireworks from being launched by non-allowed players
PREVENT_SHEAR_BY_NONALLOWED - Prevents non-allowed players shearing aniamls (sheep/mooshroom)
PREVENT_SHEEP_DYE - Prevents sheep being dyed
PREVENT_SHEEP_REGROW_WOOL - Prevents sheep regrowing their wool
PREVENT_BUCKET_FILL_BY_NONALLOWED - Prevents buckets from being filled
PREVENT_PLAYER_WITHER_DAMAGE - Prevents all players taking wither damage in the field
PREVENT_ALLOWED_PLAYER_WITHER_DAMAGE - Prevents allowed players from taking wither damage in the field
PREVENT_MOB_WITHER_DAMAGE - Prevents mobs taking wither damage in the field
PREVENT_PLAYER_CONTACT_DAMAGE - Prevents all players from taking contact damage in the field (cactus, sweet berry bush)
PREVENT_ALLOWED_PLAYER_CONTACT_DAMAGE - Prevents allowed players from taking contact damage in the field (cactus, sweet berry bush)
PREVENT_MOB_CONTACT_DAMAGE - Prevents mobs from taking contact damage in the field (cactus, sweet berry bush)

1.14 only
PREVENT_GROW_SWEET_BERRY_BUSH - Prevents sweet berry bushes from growing
PREVENT_INTERACT_COMPOSTER_BY_NONALLOWED - Prevents interaction with a composter by a non-allowed player
PREVENT_INTERACT_LOOM_BY_NONALLOWED - Prevents interaction with a loom by a non-allowed player
PREVENT_INTERACT_BARREL_BY_NONALLOWED - Prevents interaction with a barrel by a non-allowed player
PREVENT_INTERACT_SMOKER_BY_NONALLOWED - Prevents interaction with a smoker by a non-allowed player
PREVENT_INTERACT_BLAST_FURNACE_BY_NONALLOWED - Prevents interaction with a blast-furnace by a non-allowed player
PREVENT_INTERACT_CARTOGRAPHY_TABLE_BY_NONALLOWED - Prevents interaction with a cartography table by a non-allowed player
PREVENT_INTERACT_GRINDSTONE_BY_NONALLOWED - Prevents interaction with a grindstone by a non-allowed player
PREVENT_INTERACT_STONECUTTER_BY_NONALLOWED - Prevents interaction with a stonecutter by a non-allowed player
PREVENT_INTERACT_BELL_BY_NONALLOWED - Prevents ringing a bell by a non-allowed player
PREVENT_INTERACT_CAMPFIRE_BY_NONALLOWED - Prevents interaction with a campfire by a non-allowed player
PREVENT_INTERACT_LECTERN_BY_NONALLOWED - Prevents interaction with a lectern by a non-allowed player
----------, May 1, 2019

Change Log 1.1.9 - Spigot 1.13.2

Added the following flags:
  • PREVENT_PLAYER_WITHER_DAMAGE - Prevents all players from taking Wither damage in the field
  • PREVENT_ALLOWED_PLAYER_WITHER_DAMAGE - Prevents allowed players from taking Wither damage in the filed
  • PREVENT_MOB_WITHER_DAMAGE - Prevents mobs from taking Wither damage in the field
  • PREVENT_PLAYER_CONTACT_DAMAGE - Prevents all players from taking contact damage (example: cactus) in the field
  • PREVENT_ALLOWED_PLAYER_CONTACT_DAMAGE - Prevents allowed players from taking contact damage (example: cactus) in the field
  • PREVENT_MOB_CONTACT_DAMAGE - Prevents mobs from taking contact damage (example: cactus) in the field
----------, Apr 24, 2019

Change Log 1.1.8

Update corrects a bug where a block could be placed into a Domain field from outside the field.

Code modified to better allow for version 1.14
----------, Apr 23, 2019

Change Log 1.1.7

ShopChest soft-dependency added, and will allow you to prevent creating, removing, buying from or selling to a ShopChest chest. This is an optional dependency, and uses the following flags:

PREVENT_SHOPCHEST_BUY_BY_NONALLOWED
PREVENT_SHOPCHEST_SELL_BY_NONALLOWED
PREVENT_SHOPCHEST_CREATE_BY_NONALLOWED
PREVENT_SHOPCHEST_REMOVE_BY_NONALLOWED

The following commands have been deprecated and will no longer function. Each of the commands can be accessed using the Domain block menu.

/domain name
/domain welcome
/domain farewell
/domain info
/domain enable
/domain disable
----------, Apr 22, 2019

Change Log 1.1.6.1

Fixes a typo introduced in 1.1.6
----------, Apr 15, 2019

Change Log 1.1.6

Fields can no longer be placed if they will overlap another players field (based on the default radius, up and down values)

Placing a block will cause it to drop on the ground and will provide an error message.

Resizing a block that will overlap will cause the resize to be invalid.

You can still resize and force an overlap while in bypass mode.

2019-04-15 12_42_03-Minecraft 1.13.2.png
----------, Apr 15, 2019

Change Log 1.1.5

Added a new option in the block configuration that would ignore the Y axis when placing or resizing a field, with the Y axis automatically setting itself to 0 & max build height. This allows an area to be completely claimed all the way up to the sky and all the way down to bedrock, without needing to set the corners manually.

This is an opt-in change. To activate the change, add the following to the block configuration:

Code (YAML):
ignore_y_axis : true
If you modify an existing block configuration, any blocks already placed will only change during their next resize.

The 'volume' block configuration option should be set to a suitably high value to allow the number of blocks.

Also added an automatic visualization of the block when you place the field.
----------, Apr 11, 2019

Change Log 1.1.4

Minor fix only - Corrected a spurious console log message that had the potential to spam the console if another plugin cancels a block place or block break event before Domain caught the event.
----------, Apr 8, 2019

Change Log 1.1.3

Added the ability to disable blocks after x days that the owner is offline.

This change requires that the player has logged on after this update - each time they log in will now update the last_seen value in the plugin and this will be used to decide if the block should be allowed to expire.

If the player has not been online since the update, then the value used will the first time they logged in after Domain was installed. If this is more than the days set in the offline days, this will cause them their fields to expire immediately.

To turn this change on, make the following changes

Config File
Code (YAML):
expire_blocks : true
Block Configs:
Code (YAML):
offline_days : 30
If this is not a new install of Domain, it is HIGHLY RECOMMENDED that you set expire_blocks: false until all the players who own fields have been online (or for a set number of days)

When the block expires, the field will be disabled, removing any protection flags that are in place, but it will NOT remove the block. If the player logs back on, they can enable their field again. Currently, an expired block cannot be broken (this may become available upon request)

If you have any questions, please let me know and I'll be happy to go over this in more detail.
----------, Apr 5, 2019

Change Log 1.1.2

A few minor fixes -
Cleanup of tab completion list to remove /domain perm
Modified "/domain url" to point to the wiki
----------, Apr 4, 2019

Change Log: 1.1.1

A couple of minor bug fixes:
- Pressure plates were occasionally causing some null errors to be displayed in the console
- Some old enable fly flag code removed from player teleport events
----------, Mar 31, 2019

Change Log 1.1.0

This is a fairly big update which covers a number of changes and new features.

Large amount of code has been refactored to improve performance and ease of maintenance and future updates
Player tracking code modified
Domain field resizing code rewritten
Leaving the game with a block open for commands or resize will take them out of that state ahead of the player rejoining
open_field_for_command has been removed from the config and dropped from the commands
verbose_logging has been removed from the config and all verbose logging features have been rerouted to debug logging
/domain perm * has been removed and using that command will inform you of the commands to use instead (/domain allow|disallow|allowed)
/domain allowed added to list allowed players
Domain Block GUI modified significantly to remove the reduce the need for commands.
Main Menu Updated
Added - Renaming field
Added - Changing welcome message
Added - Changing farewell message
Added - Flag modifications (Flags assigned to the field can now be turned on/off by the block owner using the GUI)
Added - Permissions management - can now add/remove players using the GUI

Instructions and screenshots will be included in the discussion page
----------, Mar 27, 2019

Change Log: 1.0.11

Orphaned fields (an orphan field is a field that has no block) will now be removed from the list of blocks.

Some examples of how this could happen:
  • If the block was placed in a WorldGuard region, Domain may register the field before WorldGuard cancels the block place event. This causes a field to be created with no block.
  • If a block was placed and then WorldEdit is used and it removes the block using //set (or similar)
  • The block was created, then destroyed when Domain was not active (for whatever reason)

Removing the orphaned fields does not remove them from the database, so it is possible to fix an orphaned field by placing the block type back in the same location. When Domain starts, the console will report all the orphaned fields that have been removed.

2019-03-19 14_24_19-cmd - java  -jar spigot-1.13.2.jar.png

If I was to place a diamond block (which is what is being used for a City field) back at location 224, 79, -505, then after the next restart, this would no longer be an orphaned field.

A future change will allow admins to purge an orphaned field from the database (not implemented yet).
----------, Mar 19, 2019

Change Log 1.0.10

Made improvements to the code that handles the ENABLE_FLY_FOR_ALLOWED flag

Minor fixes:
- Visualization now using different flag storage
- Projectile tracking now using different flag storage
----------, Mar 19, 2019

Change Log 1.0.9

Added the list of flags to the tab completion when checking, allowing or denying flags (/domain flag allow <flag name>, /domain flag deny <flag name>, /domain flag check <flag name>)

flags.png

Also added list of all online participants to permissions when adding/removing (/domain perm add <player name>, /domain perm remove <player name>)

perms.png
----------, Mar 15, 2019

Change Log 1.0.8

To reduce the chance of the Domain Bypass command causing issues with other plugins that use the Scoreboard, the Domain Bypass command display will no longer utilize the scoreboard at all, and will instead be displayed at the top of the screen.

So it is going from this:

2019-03-12 15_49_48-Minecraft 1.13.2.png

To this:

domain_bypass.png

Unfortunately, this change removes the list of players in Bypass mode that previously showed in the scoreboard.

To allow them to still be looked up, any player in Bypass mode that ALSO has the domain.bypass.snitch permission will receive a list of players in Bypass mode.

bypass_list.png

Alternately, if you have the domain.bypass.snitch permission, you can run /domain bypasscheck - This will return the same information.

If you wish to turn the automated list on/off (it is displayed once per minute) - you can set the following in the configuration:

To turn it on:

display_bypass_snitch: true

To turn it off:

display_bypass_snitch: false

As part of this change, the following configuration option is no longer needed:

display_bypass_on_screen
----------, Mar 12, 2019

Change Log:

Added a flag to allow flight inside a field:

ENABLE_FLY_FOR_ALLOWED

This flag will allow players who are allowed access to the field to fly within it. This is handled via a timer, so leaving the field, teleporting away etc. will not allow the flying to be abused.

If the player is not within the a field with the flag, they will have a number of seconds to land before their flying ability is removed. They will be warned once a second until that time has expired. The default is 3 seconds, but can be changed in the config with the fly_warn_seconds option.

As always, if you have any questions, comments or concerns, please let me know!

----------, Mar 11, 2019

Change Log:
Domain wand name was returning incorrectly, causing resize issues
----------, Mar 10, 2019

Change Log 1.0.5

Domain now includes an API call for if a player is in a location where there is a particular flag.

2 new flags have been added:
EPIDEMIC_PREVENT_AFFLICT
EPIDEMIC_PREVENT_SYMPTOMS

These flags will be used for Domain integration into Epidemic
----------, Mar 8, 2019

Change Log:

Due to an issue with snakeyaml, the § character used in the minecraft color codes was not always reading in correctly. This was resulting in an unknown character showing in game instead of the actual color code.

2019-03-07 12_19_29-Minecraft 1.13.2.png

Instead of using the special character, now using #COLOR.<color>#. For example, it is now #COLOR.RED# instead of §4

This resolves the issue and hopefully makes it more obvious what colors are being used, without the need to look them up each time.

Code (YAML):
#COLOR.AQUA#
#COLOR.BLACK#
#COLOR.BLUE#
#COLOR.BOLD#
#COLOR.DARK_AQUA#
#COLOR.DARK_BLUE#
#COLOR.DARK_GRAY#
#COLOR.DARK_GREEN#
#COLOR.DARK_PURPLE#
#COLOR.DARK_RED#
#COLOR.GOLD#
#COLOR.GRAY#
#COLOR.GREEN#
#COLOR.ITALIC#
#COLOR.LIGHT_PURPLE#
#COLOR.MAGIC#
#COLOR.RED#
#COLOR.RESET#
#COLOR.STRIKETHROUGH#
#COLOR.UNDERLINE#
#COLOR.WHITE#
#COLOR.YELLOW#

lang.yml file will now look more like this:

sign_change_owner_only: '#COLOR.RED#Only the owner of the field can place signs'

Instead of

sign_change_owner_only: '§4Only the owner of the field can place signs'

You can either do a find/replace on your language file, replace it from the pastebin link below or just delete the file and let it regenerate.

https://pastebin.com/6sEc56ja
----------, Mar 7, 2019

Change Log: Multi-Language Support

All player facing messages are now configurable via the lang.yml file.

Any messages not found in your lang.yml file (which may occur after updates) will automatically populate inside the file after it is displayed the first time, so there is no need to update the lang.yml file completely after each update.

(However - As with all configuration files that take time to modify, I would recommend keeping a backup)

If you are using Domain in English, then the smoothest transition would be to delete your lang.yml file and it will recreate itself when the plugin starts.
----------, Mar 4, 2019

Change Log:

Minor Fixes
lang.yml will be created on startup - this can be ignored for the time being.
----------, Mar 1, 2019

Change Log:

Added tab completion to /domain - making it easier to select the correct command.

2019-02-28 09_32_58-cmd - java  -jar spigot-1.13.2.jar.png

2019-02-28 09_33_12-Minecraft 1.13.2.png

Minor fixes and code cleanup.
----------, Feb 28, 2019

Automatically checks for updates when starting the plugin
Added preliminary hooks to integrate Myriad Clans
----------, Feb 28, 2019

Change Log:

Added a new option to the block yml files. You can now use invalid_worlds to select which worlds a block can NOT be placed in

For example, if you do not want players to place a Grief Prevent block in the Nether or The End:

Code (YAML):
invalid_worlds :
 - world_nether
  - world_the_end
2019-02-23 16_18_31-Minecraft 1.13.2.png

This change is opt-in - if you do not change your block yml files, you will not experience any change in existing functionality.

This change will only apply to new blocks, existing blocks in these worlds will continue to function.
----------, Feb 23, 2019

Change Log:

Modified GUI code significantly to increase response time and reduce overhead.

No longer take players inventory away while opening a domain block, but items cannot be interacted with

Modified the Domain Block GUI to use 5 rows, put the black glass panes back into the inventory slots not being used.

2019-02-23 15_50_08-Minecraft 1.13.2.png

Take Domain block confirmation is no longer delayed

2019-02-23 15_50_22-Minecraft 1.13.2.png

Removed internal storage of open inventory GUI fields

Added particle effect when taking a domain block

2019-02-23 15_50_36-Minecraft 1.13.2.png

Added particle effect when failing to access a domain block

2019-02-23 15_53_41-Minecraft 1.13.2.png

Modified sounds played when accessing a Domain block to UI_BUTTON_CLICK
----------, Feb 23, 2019

Minor logging fixes
Added an error message when an invalid command is entered
----------, Feb 21, 2019

Non-standard world names were causing visualization errors - issue has been resolved.
----------, Feb 15, 2019

Updates:
Created Bypass logging (phased implementation)
This will help server owners keep track of any bypass misuse by those with access.

Any actions performed in bypass mode will be logged to the console like below. This is a phased implementation, not all actions will be recorded this way immediately.

bypass log.png

Added Flower pots and all potted flowers to PREVENT_INTERACT - Non-allowed players can no longer place flowers or remove flowers from pots where PREVENT_INTERACT is active.

Also beginning splitting PREVENT_INTERACT into its component parts to allow more granular flags.

Added new flags:
PREVENT_INTERACT_ANVIL_BY_NONALLOWED - Prevents anvil (Anvil, Chipped Anvil & Damaged Anvil) access by non-allowed players
PREVENT_INTERACT_BED_BY_NONALLOWED - Prevents bed (all colors) access by non-allowed players
PREVENT_INTERACT_BREWING_STAND_BY_NONALLOWED - Prevents brewing stand access by non-allowed players
PREVENT_INTERACT_CHEST_BY_NONALLOWED - Prevents chest (Chest, Minecart Chest & Trapped Chest) access by non-allowed players
PREVENT_INTERACT_DISPENSER_BY_NONALLOWED - Prevents dispenser access by non-allowed players
PREVENT_INTERACT_DROPPER_BY_NONALLOWED - Prevents dropper access by non-allowed players
PREVENT_INTERACT_ENCHANTING_TABLE_BY_NONALLOWED - Prevents enchanting table access by non-allowed players
PREVENT_INTERACT_ENDERCHEST_BY_NONALLOWED - Prevents enderchest access by non-allowed players
PREVENT_INTERACT_FURNACE_BY_NONALLOWED - Prevents furnace (Furnace & Furnace minecart) access by non-allowed players
PREVENT_INTERACT_HOPPER_BY_NONALLOWED - Prevents hopper (Hopper & Hopper minecart) access by non-allowed players
PREVENT_INTERACT_SHULKERBOX_BY_NONALLOWED - Prevents shulker box (all colors) access by non-allowed players

These new flags also include a particle effect and sound when access is denied
----------, Feb 15, 2019

Fixes:
Players outside a field could open a chest within the field regardless of their allowed status. This was caused by Domain checking the position of the player when checking for access rather than the position of the block. This has been corrected.

Same issue (and fix) with placing lava buckets from outside the field.

Additional debug logging has been put in place around visualization
----------, Feb 15, 2019

Non-Urgent Update - Opt-In

Added a new option in the block configuration files that allows for inheriting the permissions of the parent. This is an opt-in update - if you do not update your block configuration files then it will not be applied.

Add the following to the block configuration to enable permission inheritance:

inherit_perms: true

If inherit_perms is set to true, when checking permissions, if the block is a child of a parent (for example, a mob_allow field is a child of the city field) then the permissions set to city will be inherited to the child, which can also have its own permissions as well.

An example you may want to use this would be inheriting permissions to a mob_allow block, but not to a city plot that you rent or sell access to.

Please let me know if you have any questions or concerns regarding the use of permission inheritance.
----------, Feb 14, 2019

Non-urgent fix:
Some improvements made to loading data from configuration file. Reduces chance of unexpected errors while loading the config.yml file
----------, Feb 14, 2019

Added two new flags to Domain:

SNITCH_ON_ENTER
SNITCH_ON_LEAVE


These flags are intended to be added to a Snitch block which will alert the owner (if online) that someone is entering or exiting a field.

snitch.png
snitch_leave.png

The location listed in the snitch alert is the player location as they enter or leave.

A sample snitch block is listed below (don't forget to add it to the config if you use it)

Code (YAML):
base_material : DEAD_TUBE_CORAL_BLOCK
field_display_material
: LIGHT_BLUE_STAINED_GLASS
field_display_secs
: 30
display_name
: Snitch
block_key
: snitch
lore
: This field will alert the owner (if online ) when a non-allowed|player enters or exits the field
volume
: 2000
position_1
: CYAN_DYE
position_2
: CYAN_DYE
position_3
: CYAN_DYE
position_4
: CYAN_DYE
position_5
: REDSTONE_BLOCK
position_6
: CYAN_DYE
position_7
: CYAN_DYE
position_8
: CYAN_DYE
position_9
: CYAN_DYE
field_order
: 5
block_in_field
: true
flags
:
  SNITCH_ON_ENTER
: true
  SNITCH_ON_LEAVE
: true
cost_to_place
: 0
cost_to_refund
: 0
cost_to_rent
: 0
rent_days
: 0
default_radius
: 10
default_height_up
: 5
default_height_down
: 5

I'm open to some additional changes to this Snitch functionality, so please reach out if you have any questions, comments or ideas.

Potential changes currently being considered include:
  • Allow sneaking to bypass field
  • Allow snitch alerts to be queued while owner is offline
  • Add a cooldown to snitch alerts
----------, Feb 14, 2019

You can now limit the number of types of block a player can place, as well as limiting the number of blocks they can merge into it.

To enable this feature, enter the following into the block configuration:

max_merge: <number>
max_blocks: <number>

For example, if you wanted a maximum of 3 City blocks to be merged into a City block (plus the original block), you'd enter:

max_merge: 3

into the Blocks\city.yml file.

Or if you wanted to allow only 2 city fields per player, you'd enter

max_blocks: 2

into the Blocks\city.yml file.

Please note that a merged block does NOT count towards the maximum number of blocks. So if you limited a city to 3 merge fields (plus original block) and 2 city blocks - the player could potentially have up to 8 (2 x 4 merged together)

Please let me know if you have any questions or concerns!
----------, Feb 13, 2019

Players can now use /domain url to get the address for the Domain website
----------, Feb 7, 2019

Domain blocks can no longer be broken even if disabled - to remove they MUST be right clicked and Take Block

Added additional error handling and checking in the GUI
----------, Feb 6, 2019

Clan check was causing spurious logging that should have been relegated to debug level logging. Issue corrected
----------, Feb 5, 2019

Updated some logging messages
----------, Feb 4, 2019

Non-allowed players can no longer place items in item frames if they are not allowed in the field.
----------, Feb 2, 2019

Addressed two minor bugs:
Armor stands not spawning correctly when in a PREVENT_SPAWN field
Item Frames not accessible to owners
----------, Feb 1, 2019

Player reported that animals would not breed in an area with PREVENT_SPAWN flag set to true.

To remedy this I have split PREVENT_SPAWN into different categories

Added flags:
PREVENT_SPAWNER_EGG
PREVENT_BREEDING
PREVENT_BUILD_IRON_GOLEM
PREVENT_BUILD_SNOWMAN

Removed breeding, spawner egg , building iron golems and building snowmen from PREVENT_SPAWN flag.

PREVENT_SPAWN will be used for any other spawn events.
----------, Jan 31, 2019

Minor bug fixes
----------, Jan 31, 2019

Added SimpleClans availability within Domain. You can now use:

/domain clan allow <clan tag> to allow a clan to the field.
/domain clan disallow <clan tag> to disallow a clan from the field

SimpleClans is a soft dependency, so it is NOT required for Domain to run, but adds the additional clan functionality if it is available.

Additional Changes:
Removed unnecessary player alerts when selecting items in the GUI
Removed Gray Stained Glass Pane from GUI
----------, Jan 31, 2019

Added two additional commands to make the transition easier.

/domain allow <player> - will allow a player to the field
/domain disallow <player> - will revoke access to the field

These replace /domain perm add <player> and /domain perm remove <player> (original commands still work).

Minor fixes:
Minor fix to the allowed players handling
----------, Jan 30, 2019

Resource Information
Author:
----------
Total Downloads: 210
First Release: Jan 30, 2019
Last Update: Aug 23, 2024
Category: ---------------
All-Time Rating:
32 ratings
Find more info at torpkev.github.io...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings