[1.12.2-1.21.4] GriefDefender - claim plugin Grief Prevention Protection icon

[1.12.2-1.21.4] GriefDefender - claim plugin Grief Prevention Protection -----

Protection, Claims, GriefPrevention, Flags, Rent, Sell, Folia.




This is a minor release that adds support for Minecraft 1.21.4 servers


Code (Text):

* Update for MC 1.21.4
 
----------, Dec 5, 2024

This is a minor release that adds support for Minecraft 1.21.3 servers



3.0.2 Changelog

Code (Text):

* Update for MC 1.21.3
 
----------, Nov 14, 2024

This is a hotfix update that addresses an issue on bukkit/hybrid servers where player blocks were only being accrued at start of server. All other platforms are unaffected.

3.0.1 Changelog

Code (Text):

* (Bukkit) Fix player block accrue task only running once.
 
----------, Oct 7, 2024

Introducing the next big GD update which adds Plots and Folia support!


Folia Support

GriefDefender now supports Folia 1.21+ servers. All scheduling code has been rewritten and optimized to support Folia.
A new Scheduler API has also been introduced to support GD plugins on Folia.

See https://github.com/bloodmc/GriefDef...om/griefdefender/api/scheduler/Scheduler.java



Plots Feature

Plot Commands

/gd plot claim

Aliases: claimplot
Arguments: [plot_identifier]
Permission: griefdefender.user.claim.create.plot

Allow players to claim a nearby plot or a plot in specified plot container identifier.​



/gd plot create

Aliases: claimcreateplot
Arguments: <name> <child_radius> <quantity> <spacing> [X Z]
Permission: griefdefender.admin.claim.create.plot

Allow admins to create a container of plots for players.​


/gd plot merge

Aliases: claimplotmerge
Arguments: [identifier]
Permission: griefdefender.user.claim.plot.merge

Allows players to merge plots in the direction they are facing.​


/gd plot unmerge

Aliases: claimplotunmerge
Arguments: [identifier]
Permission: griefdefender.admin.claim.plot.unmerge

Allows admins to unmerge plots they are standing in.​

How to use :


Plot Creation

The following command will create a 4x4 plot container with each plot being 10x10 in size and a spacing of 1 :

/gd plot create test 10 4 1 [x] [z]​

Each plot would automatically have a claim identifier of test_plot_XXX . So in this case test_plot_001, test_plot_002, etc..

The result is attached picture

[​IMG]


Plot Claim

A player will claim a plot by executing the following command

/gd plot claim [plot_id]​

So with the example above, if a player wanted to claim the next available plot in container test, they would execute

/gd plot claim test​

If the player wanted to claim a specific `test_plot_002`1 in container test, they would stand in plot and execute

/gd plot claim test_plot_002​

If no identifier is provided, GD will search for next available plot.


Plot Visuals

Vacant plots will use prismarine (cracked) visuals indicating that noone has claimed the plot.
Occupied plots will use prismarine brick visuals indiciating that the plot has been claimed.

Note: These are just defaults and can be changed to any vanilla/modded block.


Plot Warps

All plots will generate a default spawn point in center of plot allowing players to easily return to their land.


[​IMG]


Plot Permissions

Admins will have the ability to lockdown a plot container and only allow specific users to claim plots. This will be handled by permissions. By default, all users will have access to claim plots if they have the base user permission.


Plot Merging

Players will have ability to merge their plots together if owned by them. See `/gd plot merge` command above.

[​IMG]

[​IMG]



Plot Abandon

When plots are abandoned, they revert to their original snapshot and schematic at time of creation. Their status also reverts back to 'vacant'.


Plot Limitations

  • Cannot be resized
  • Requires admin container which can only be created via '/gd plot create' command.
  • Can only be deleted if parent container is removed.







3.0.0 Changelog

Code (Text):

* Add plots feature.
Note: See update notes for details.
* Add new scheduler API.
* Add Folia 1.21+ support.
* Add support for Java 16+ on 1.16.5 servers.
* Add new setting 'per-world-claim-limits' to playerdata category. Allows for finer per-world control when using global or server-wide playerdata.
* Added visual selection when attempting to merge plots.
* Fix inventory GUI flag titles not being checked.
* Fix minecraft preset still loading when disabled.
* Fix gamemode resetting when moving within claim with option set to UNDEFINED.
* Fix claim expansion on world border.
* Fix duplicate claim identifiers being stored for same claim UUID.
* Fix ClaimSnapshot not restoring all claim data.
* Updated lang.
 
----------, Sep 19, 2024

This is a hotfix update that addresses a few bugs in previous 2.5.14 release.


2.5.15 Changelog

Code (Text):

* Fix subdivisions not being able to be created.
* Fix resize issues due to new unclaimable feature.
* (Hybrid) Fix CME during GroupDataCalculateEvent.
* The 'unclaimable-block-radius' feature will now only check in wilderness. It no longer affects children claims.
* New setting 'unclaimable-allow-trust' has been added to control whether trusted users are affected by the 'unclaimable-block-radius' feature in wilderness.
 
----------, Jul 26, 2024

This is a hotfix update that addresses a few important bugs in prior releases.

2.5.14 Changelog

Code (Text):

* Fix unclaimable border being bypassed on second claim creation clicks.
* Fix `/abandonclaim` returning claim blocks for claims with `require-claim-blocks` set to false.
* Fix greeting/farewell identifier message showing up when setting a message with spaces.
* Fix ConcurrentModificationException during GroupDataRecalculateEvent.
* Fix NPE during claims enabled check.
* Add new `#tamed` context for entities that have been tamed by a player.
* Add unclaimable border message `create-unclaimable-border`.
* Add `require-claim-blocks` setting for temporary claims.
* Added 1000 amount cap to claim expand/contract commands.
 
----------, Jul 24, 2024

This is a hotfix update.


2.5.13 Changelog

Code (Text):

* Fix GD not booting on Paper 1.21 servers.
 
----------, Jun 19, 2024

This is a hotfix update.


2.5.12 Changelog

Code (Text):

* Fix preset lang files not migrating from hocon to json.
 
----------, Jun 15, 2024

This is a hotfix update that addresses a few bugs from previous releases.


2.5.11 Changelog

Code (Text):

* Fix non-minecraft presets not loading.
* Fix ender crystals not being allowed to explode at times.
 
----------, Jun 15, 2024

This is a minor release that adds support for Minecraft 1.21 servers and provides some bug fixes.


Changelog

Code (Text):

* Add MC 1.21 support.
* Fix gddebug NPE while using '/cfdebug'
* Fix newlines (\n) not working with lore in inventory GUI.
 
----------, Jun 14, 2024

IMPORTANT:

This is a hotfix for claimnames.conf not being migrated properly. This file holds all claim id to UUID mappings. Follow these steps to re-migrate your old hocon file.

  1. Delete the claimnames.yml file
  2. Rename original claimnames.conf.bak to claimnames.conf
  3. Apply this updated jar.
  4. Boot server and this time the claimnames.conf should be migrated properly.

It is HIGHLY recommended to backup your entire GriefDefender plugin config folder before proceeding with update as all user configs will be migrated to YAML and all lang files will be migrated to JSON. If you prefer to stick with HOCON then open jar and change yaml to hocon in config_format.txt.


2.5.9 Changelog

Code (Text):

* Fix claimnames.conf migration.
* Fix tag.conf not being migrated from hocon.
 
----------, May 27, 2024

IMPORTANT:

It is HIGHLY recommended to backup your entire GriefDefender plugin config folder before proceeding with update as all user configs will be migrated to YAML and all lang files will be migrated to JSON. If you prefer to stick with HOCON then open jar and change yaml to hocon in config_format.txt.

MC 1.20.6 Support

This release add support for servers running MC 1.20.6.

New User Config Formats

GriefDefender now supports JSON, HOCON, and YAML. The default is changing from HOCON to YAML with this release. All user configurations will be automatically migrated from hocon to YAML on first server boot. All old configs will have a '.bak' extension.

Note: If you want to change this default to JSON or HOCON before launching server, open the jar and change yaml to hocon or json in config_format.txt. If server has already launched, you can edit this file in the config folder.


Language Format

All language files will now be using JSON instead of HOCON. On first server boot, GriefDefender will automatically migrate all lang files it detects. Old lang files will have the '.bak' extension.


Unclaimable Block Radius

All user claims will now have a 1 block protected radius from being claimed. In other words, users will not be able to claim around a 1 block radius of non-owned claims unless they are trusted. The new setting is labeled 'unclaimable-block-radius' and can be found in global.conf


2.5.8 Changelog


Code (Text):

* Add support for MC 1.20.6
* Add YAML support for user configs.
  Note: YAML is now the default. All existing HOCON configs will automatically be migrated.
  Note: If you wish to change the default, edit the config_format.txt in config folder. Accepted values are ('yml', 'hocon', 'json')
* Change lang format from HOCON to JSON.
  Note: All existing lang files will be automatically migrated to new JSON format.
* Add 'use-unclaimable-block-radius' setting to allow admins to control claimable area around claims.
* Add 'currency-symbol-after-amount' setting.
* Add new claim transfer accept permission 'griefdefender.user.claim.transfer-accept'.
* Add new permission 'griefdefender.admin.claim.command.hide-tab-completion' to allow staff to hide their usernames in tab completions.
* Allow economy currency symbol to be placed before or after price.
* Fix claimban command handling with world param.
* Fix claimtransfer working while dead.
* Fix not being able to eat last cake piece.
* Fix claimoption command not working with contexts.
* Fix /untrust not working from console.
 
----------, May 26, 2024

IMPORTANT:

Note: New servers or existing on 2.5.5 may skip this section.

Backup LP/GD before updating to 2.5.0+ as there are a few big changes.

Code (Text):

1. LP's default(NOT GD) parent groups should be only `griefdefender_option` and `griefdefender_override`
2. Remove parent groups from `griefdefender_trust_<type>` groups
3. Adjust `griefdefender_trust_<type>` group weights as such
- `griefdefender_trust_manager` should have -70 weight
- `griefdefender_trust_builder` should have -71 weight
- `griefdefender_trust_container` should have -72 weight
- `griefdefender_trust_accessor` should have -73 weight
- `griefdefender_trust_resident` should have -74 weight
4. Set 'luckperms-playerdata' to true in migrator section of global.conf.
Note: If you do not see this setting, simply add it manually and set to true.
5. Add new lang entry 'label-expiration=Expiration' or wipe lang folder to regenerate clean.
 
Note: GD lookup priority is as follows : griefdefender_override -> claim -> claimgroup -> definition -> griefdefender_default.


2.5.7 Changelog

Code (Text):

* Fix projectiles being removed on event cancel.
* Fix wrong target value in 'block-fertilize' flag definition.
* Add new global config setting 'regex-filters' for admins to have the ability to filter out any messages they do not want stored in GD.
Note: Make sure to double escape.
* Update zh_CN lang.
 
----------, Mar 30, 2024

IMPORTANT:

Note: New servers or existing on 2.5.5 may skip this section.

Backup LP/GD before updating to 2.5.0+ as there are a few big changes.

Code (Text):

1. LP's default(NOT GD) parent groups should be only `griefdefender_option` and `griefdefender_override`
2. Remove parent groups from `griefdefender_trust_<type>` groups
3. Adjust `griefdefender_trust_<type>` group weights as such
- `griefdefender_trust_manager` should have -70 weight
- `griefdefender_trust_builder` should have -71 weight
- `griefdefender_trust_container` should have -72 weight
- `griefdefender_trust_accessor` should have -73 weight
- `griefdefender_trust_resident` should have -74 weight
4. Set 'luckperms-playerdata' to true in migrator section of global.conf.
Note: If you do not see this setting, simply add it manually and set to true.
5. Add new lang entry 'label-expiration=Expiration' or wipe lang folder to regenerate clean.
 
Note: GD lookup priority is as follows : griefdefender_override -> claim -> claimgroup -> definition -> griefdefender_default.


2.5.6 Changelog

Code (Text):

* Improve GD tool detection for both equipment hands.
* Add support for new lines(\n) when setting lore in `gui.conf`.
* Add projectile impact block protection.
* Add the following new tax config settings :
`tax-2d-claims` - `Whether to apply tax on 2d claims.`
`tax-3d-claims` - `Whether to apply tax on 3d claims.`
* Add the following new placeholders :
`claim-tax-per-day` - `The total tax amount you will be charged per day in claim you are standing in.`
`claims-tax-per-day` - `The total tax amount you will be charged per day for all basic/town claims you own.`
* (Fabric/Forge) Add portal create protection.
* (Fabric/Forge) Improve protected world support.
* (Forge) Add keep-level and keep-inventory support.
* Update player claim activity on world change and disconnect to help avoid expiration.
* (Arclight) Fix break event not always cancelling using Arclight provider due to random results with player ticks.
* Fix `/abandonallother` command not working for offline players.
* Fix `/abandonallother` messages.
* Fix `player-fall-damage` flag definition.
* Fix LP to GD file playerdata migration when using server contexts.
* Fix `row` and `slot` defaults not being generated in `gui.conf`.
* Fix inventory gui not always opening properly.
* Fix getActiveItem when called outside interaction events.
* (1.20.4-R2) Fix NoSuchFieldException during vehicle events on latest Spigot/Paper builds.
* (Admin Expire Feature) Delete children on expiration.
* Remove claim cache from `/at`, `/ct` and `/trapped` commands.
 
----------, Mar 24, 2024

IMPORTANT:

Note: New servers may skip this section.

Backup LP/GD before updating to 2.5.0+ as there are a few big changes.

Existing servers must complete the following before updating to 2.5.0+

Code (Text):

1. LP's default(NOT GD) parent groups should be only `griefdefender_option` and `griefdefender_override`
2. Remove parent groups from `griefdefender_trust_<type>` groups
3. Adjust `griefdefender_trust_<type>` group weights as such
- `griefdefender_trust_manager` should have -70 weight
- `griefdefender_trust_builder` should have -71 weight
- `griefdefender_trust_container` should have -72 weight
- `griefdefender_trust_accessor` should have -73 weight
- `griefdefender_trust_resident` should have -74 weight
4. Set 'luckperms-playerdata' to true in migrator section of global.conf.
Note: If you do not see this setting, simply add it manually and set to true.
5. Add new lang entry 'label-expiration=Expiration' or wipe lang folder to regenerate clean.
 
Note: GD lookup priority is as follows : griefdefender_override -> claim -> claimgroup -> definition -> griefdefender_default.


Another quick fix to apply same changes from 2.5.4 to '/claimexpand' and '/claimcontract'


2.5.5 Changelog

Code (Text):

* Fix transferred children claims being able to resize without having manager trust in parent when using '/claimexpand' or '/claimcontract'
 
----------, Jan 28, 2024

This is a small hotfix update that prevents a transferred child claim from resizing if they do not have manager trust in parent claim.


2.5.4 Changelog

Code (Text):

* Fix transferred children claims being able to resize without having manager trust in parent.
* Fix typo in 'use-temporary-claims' config description.
 
----------, Jan 28, 2024

This is another hotfix as we realized removing 'context-storage-type' was not a good idea.

Context Storage Type


This is how 'context-storage-type' will work now when used on shared DB storage :

global - GD will query all claims and ignore LP's server context. If you do NOT want a server to be counted toward's a player's total claim block cost then you should change it's table prefix or move the server to a standalone GD DB.

server - GD will query all claims that match LP's server context. For example, if you have 3 survival servers all using the LP server context 'survival' and want GD to share blocks across these 3 servers then this is the option you should use.

Note: If you do NOT want to share blocks with any other server then you can have a unique LP server context or set 'force-server-only' to 'true'.

world - GD will query all claims that match the current server and world UUID. This is used if you want players to have separate block data per world.


2.5.3 Changelog

Code (Text):

* Revert 'context-storage-type' change in 2.5.2.
* Update 'context-storage-type' global logic to account for all claims in DB regardless of LP server context.
* Add 'force-server-only' setting for a server that does not want player block data shared with any other server.
* More fixes for 'protected-worlds'
* Fix entity-damage checking trust for actions such as player fall.
 
----------, Jan 27, 2024

This is a hotfix update addressing a few important issues.

Code (Text):

* Remove 'context-storage-type' playerdata setting.
Note: GD will now automatically check LP's server context setting to determine how player block data should be stored.
* Add 'use-world-context' playerdata setting.
Note: This setting allows a server to store player block data per-world. Use with caution!
* Add 'force-server-only' playerdata setting.
Note: This setting allows a server to only calculate its own claims when using shared GD DB storage.
* Fix entity-damage checking trust for actions such as player fall.
 
----------, Jan 27, 2024

IMPORTANT:

New lang entries have been added for new player-deny-glide option.
You can delete the lang folder to regenerate with new entries or add the following :
Code (Text):

option-apply-player-deny-glide="&cYou do not have access to glide in this claim and have been teleported to a safe spot on ground."
option-description-player-deny-glide="&aUsed to determine if a player is unable to glide in a claim.\n&dNote&f: This does not give players the ability to glide, it merely removes the ability if set. This provides the greatest compatibility with plugins."
permission-build-chest-border="&cYou are not allowed to place a chest next to a chest that is not in a claim you're trusted in."
player-deny-glide="Controls whether a player has ability to glide in this claim."
player-deny-glide=player-deny-glide
 


Tag Config

GD now provides its own tag.conf file for server admins to easily create new tag groups used as contexts for 1 or more id's. This is an alternative to datapacks and for some much easier to use.


Player Glide Option

GD now provides a new option called 'player-deny-glide'. This new option will allow server admins to deny elytra glide in claims.
Note: It will not affect normal fly when used.


Hybrid Improvements

Mod entity registration has been updated to support latest Mohist/Magma/Arclight changes.
A new pixelmon provider has been added to provide new contexts such as detecting if a pixelmon spawned as wild or not.


2.5.1 Changelog

Code (Text):

* Fix resize bug not updating remaining blocks properly when using DB storage.
* Fix `ui-click-to-see` de_DE translation.
* Fix model data not working in inventory GUI.
* Fix NPE in handleBlockModifyEvent when GD world disabled.
* Fix pvp flag not being checked properly for all users.
* Fix respawns bypassing border claim checks.
* Fix expiration timer showing when expiration set to 0.
* Fix GDOption getPermission method.
* Fix getActiveOptionValue when passing null claim.
* (Hybrid) Fix hybrid entity registration in MC 1.18.2+
* Add new `tag.conf` for easier way to add custom tags.
* Add new player option `player-deny-glide` for controlling whether a player can glide in a claim.
* Add new protection message when attempting to place a chest next to another chest in a claim not trusted.
* Add new setting `respawns-use-border-event` for controlling whether respawns should check `enter-claim` and `exit-claim` flags.
* Add new player context `gliding` when elytra is equipped.
* (Hybrid) Added new pixelmon provider to support following new contexts
`pokemon_battling`
`pokemon_lvl`
`pokemon_spawn_loc_type`
`pokemon_spawn_type`
`pokemon_type`
`pokeball_type`
Note: Use `source=spawnreason:natural` and `pokemon_spawn_type=wild` if you want to block only wild spawns.
* Update it_IT preset lang file. (Provided by Tig3r)
 
----------, Jan 20, 2024

IMPORTANT:

Note: New servers may skip this section.

Backup LP/GD before updating to 2.5.0+ as there are a few big changes.

Existing servers must complete the following before updating to 2.5.0+

Code (Text):

1. LP's default(NOT GD) parent groups should be only `griefdefender_option` and `griefdefender_override`
2. Remove parent groups from `griefdefender_trust_<type>` groups
3. Adjust `griefdefender_trust_<type>` group weights as such
- `griefdefender_trust_manager` should have -70 weight
- `griefdefender_trust_builder` should have -71 weight
- `griefdefender_trust_container` should have -72 weight
- `griefdefender_trust_accessor` should have -73 weight
- `griefdefender_trust_resident` should have -74 weight
4. Set 'luckperms-playerdata' to true in migrator section of global.conf.
Note: If you do not see this setting, simply add it manually and set to true.
5. Add new lang entry 'label-expiration=Expiration' or wipe lang folder to regenerate clean.
 
Note: GD lookup priority is as follows : griefdefender_override -> claim -> claimgroup -> definition -> griefdefender_default.




Campfire Temporary Claims

GD now provides a new experimental feature for creating temporary claims using campfires. Temporary claims will expire when configured amount of days have passed since creation date. It does NOT use owner inactivity. By default, right-clicking on campfires will allow a player to create a temporary 3x3 chunk claim (configurable) . These temporary claims will have the following settings/limitations :

  • Configurable block used for temporary claim. (Default is campfire)
  • Configurable chunk radius used on creation.
  • Configurable expiration time in days.
  • Configurable creation limit.
  • Cannot be resized.
  • Required chunk area must be available on creation.
Note: By default, GD will use campfires for its temporary claim feature. However, you may change campfires to any other vanilla/modded block by changing the 'claim-block-id' identifier in temporary section of global config.
Note: By default, this feature is disabled. To enable, set 'use-temporary-claims' to true.



PlayerData Storage

In previous GD versions, voting plugins would have random issues running GD bonus commands against players. With GD 2.5.0, all playerdata accrued/bonus block data is now stored back with GD. If running an existing server with GD, make sure to follow migration steps above or in README.



2.5.0 Changelog

Code (Text):

* Add LP to GD playerdata accrued/block migrator.
Note: Migration MUST be done or all players will start with 0 accrued/bonus blocks as GD no longer checks LP.
Note: If using this build, make sure to perform a complete backup of LP/GD.
Note: To perform migration, set luckperms-playerdata to true in migrator section of global.conf.
* Add remaining-claim-blocks support across servers that use global LuckPerms storage.
* Add new temporary claim experimental feature. Temporary claims will expire when configured amount of days have passed since creation date. It does NOT use owner inactivity. By default, right-clicking on campfires will allow a player to create a temporary 3x3 chunk claim (configurable) . These claims CANNOT be resized.
Note: All temporary settings can be found in new temporary-settings section of global.conf. Some of these settings will be moved to LP meta in a future release. This feature is disabled by default and must be enabled in config.
* The expiration option can now be configured to expire only on time instead of owner inactivity. Set 'expiration-inactivity' to 'false' in global.conf.
Note: This would affect all claims, not just temporary claims.
* ClaimInfo/ClaimList will now display an expiration countdown using format days:hours:min.
* Inventory GUI's claimlist will show configured block icon if temporary claim. (Default campfire)
* Include `#fishes` in `damage-animals` definition.
* Improve default protection for item frames and armor stands.
* Improve claim deletion logic. Deletions will no longer delete a child claim if it is a basic type or town type.
  Note: The only exception is if basic claim is within a town.
* Add advanced button back to claim flag chat GUI.
* (Sponge) Fix async error during claim cleanup task.
* (Bukkit) Fix MC 1.20.3+ confirm grass error.
* Fix permission lookups with trusted.
* Fix postgresql DB support.
* Fix sniffer eggs not hatching.
* Fix axolotl and snow golems not being part of `#animals`
* Fix NPE in inventory gui claiminfo.
* Fix notification messages in inventory GUI.
* Fix chat/inventory flag GUI displaying wrong result in trust tabs.
* Fix various claim inherit issues when feature disabled.
* Fix expiration info showing up when disabled.
 
----------, Jan 2, 2024

MC 1.20.4 Support

This is a minor release that adds support for Minecraft 1.20.4 servers and provides some bug fixes.



Changelog

Code (Text):

* Add MC 1.20.4 support.
* Fix offline UUID lookup method.
Note: This fixes commands like `/trust` not always working the first time for offline users.
* Fix offline username lookup sometimes returning UUID instead of name.
* Fix RemoveClaimEvent not passing deleted child claims.
Note: This fixes DynMap/BlueMap/SquareMap not removing children from map on parent claim deletions.
* Fix players unable to eat in untrusted claims.
* Fix food tag not being added for `used_item` context.
* Fix player contexts not showing up in cached debug results.
* Fix elytra not able to be equipped when targetting block in untrusted claims.
* Fix armor not able to be equipped when targetting block in untrusted claims.
 
----------, Dec 10, 2023

This update addresses an issue with players being able to resize into WorldGuard regions.

IMPORTANT:

GD 2.4.5+ requires the following changes for GD groups in LP :

1. default’s(LP’s default group NOT GD) parent groups should be only `griefdefender_option` and `griefdefender_override`
2. Remove parent groups from `griefdefender_trust_<type>` groups
3. Adjust `griefdefender_trust_<type>` group weights as such
- `griefdefender_trust_manager` should have -70 weight
- `griefdefender_trust_builder` should have -71 weight
- `griefdefender_trust_container` should have -72 weight
- `griefdefender_trust_accessor` should have -73 weight
- `griefdefender_trust_resident` should have -74 weight

Note: GD lookup priority is as follows : griefdefender_override -> claim -> claimgroup -> definition -> griefdefender_default.
Note: New GD servers do not have to worry about this if installed 2.4.5+


Code (Text):

* Check for overlapping WorldGuard regions during GD claim resizes.
 
----------, Oct 23, 2023

This update addresses an issue with previous 2.4.4 release.

Code (Text):

* Fix definitions using override contexts not having highest priority in GD group lookups.
Note: All definitions that use override contexts will apply as a persisted permission in LP on startup. If you remove a definition containing override contexts, you must remove the old permissions from LP manually in group 'griefdefender_override'.
 
----------, Oct 23, 2023

This update addresses a few important issues with previous 2.4.X releases.

Code (Text):

* Fix default permission lookups not checking proper groups.
* Fix GD group inheritance.
* Fix '/cf' command not displaying proper target group.
* Fix trust group GUI toggles not updating.
* Fix owner tamed entity attacks not going through permissions.
* Fix 'default-groups' not working with griefdefender_trust groups.
 
----------, Oct 22, 2023

This release adds various improvements and bug fixes.

Improved Flag Debug

GD's flag debug command 'gddebug' will now provide a new column called 'Definition'. This column will display all flag definitions that are matched with the action a player is doing.

For example, if a player right-click's on a chest, the previous versions would only display 'interact-inventory' in the flag column. With 2.4.3, an additional column named 'Definition' will display 'chest-access' and any other definitions that use the same flag and context in action.

Inventory GUI customizations

GD's gui config (gui.conf) will now generate a row/slot for most icons giving admins the ability to move around their icons as they see fit. If no row/slots are specified, GD will fallback to default placement.

Changelog

Code (Text):

* Fix admin/wilderness owners not being checked in permissions properly.
* Fix `interact-inventory-click` not being checked if disabled during events.
* Fix gddebug sometimes not showing proper user.
* Fix random claim messages being sent to players with 'async-claim-tool-actions' enabled.
* Improve inventory GUI error handling.
* Add flag definition column to gddebug.
* Add row/slot customization support for inventory GUI.
* (Fabric/Forge) Fix NPE during claim inspections.
 
----------, Oct 11, 2023

This update addresses a few important issues with previous 2.4.X releases.

Changelog

Code (Text):

* Fix option lookups sometimes returning wrong value due to possible LP DB cache issue.
* Fix GD default contexts being checked against owners of claim.
* Fix claim owners being denied explosions in their claims.
* Fix player interact-block-secondary blacklist check.
* Protect leash knot on right-click by default.
* Protect villagers from tnt explosions by default.
* GD's LP trust groups no longer inherit eachother. To correct this with existing setups, use `/lp editor` and remove any parent group from griefdefender_trust_xxx groups.
* (MC 1.12.2) Fix NoSuchMethodError during BlockMultiPlaceEvent.
* (Fabric/Forge) Fix NPE during block notify.
 
----------, Oct 7, 2023

This update addresses an issue with players not being able to place blocks on farmland.


Changelog

Code (Text):

* Fix blocks not able to be placed on farmland.
 
----------, Oct 2, 2023

MC 1.20.2 Support

This release adds support for Minecraft 1.20.2 servers.


Performance

GD's permission lookups have been completely re-hauled by reducing the amount of LP queries done per action. Server owners should see a significant performance boost with these changes.


Config Protection

Previously, if a server owner attempted to modify a GD config while server was running and made a syntax error it would lead to errors in console or crash. With the new update, after server has successfully loaded, if GD detects a broken config during '/gdreload', it will automatically revert back to last successful config state. This should provide server owners a piece of mind when needing to change configs live.


Changelog

Code (Text):

* Add MC 1.20.2 support.
* Add workaround for spigot bug causing crops to be duped in certain conditions.
* Add proper NPC support with new `#npc` context that replaces `minecraft:player`
* Refactor permission checks by reducing amount of LP queries per action.
* Fix permission lookups causing `default-groups` in flag definitions not to work properly.
* Fix gddebug not showing events called by GDHooks.
Note: For example, MythicMob spawns now properly show up in gddebug.
* Fix EntityChangeBlockEvent not checking blacklist.
* All main configs will now revert back to last successful loaded state when an error is detected.
* Invalidate cache after claim transfer.
* Ignore falling blocks during events.
* (Hybrid) Add workaround for Mohist issue when calling 'state.getBlock()' during BlockBreakEvent for blocks that are not placed in a world.
 
----------, Sep 29, 2023

Changelog

Code (Text):

* Fix block cache causing tracking issues with water flow, snow form, etc..
* Fix player bucket placement sometimes bypassing protection.
* Fix water-flow definition not accounting for crops.
Note: To add this fix, you can regenerate minecraft.conf preset or add the following line to water-flow definition "flag=liquid-flow, source=minecraft:water, target=#crops"
* Fix IllegalStateException during PlayerTickTask.
* Fix flag group selection screen in inventory GUI showing when user only had access to 1.
* More fixes to ensure tadpoles age into frogs.
* Add new root-command-aliases setting to global.conf which allows admins to adjust GD root command aliases.
* Add getHighestTrust playerdata cache.
* Add load-claims-async setting to storage.conf
Note: This controls whether or not claims should be loaded async during server startup and only affects DB storage.
* Add sign-edit definition to prevent players from editing sign text by default.
Note: The sign-use definition is only for interactions. You should have sign-use set to true by default.
* (MC 1.20+) Add sign edit protection.
* Improve default user experience with claim flags. All users will now default to PUBLIC flags in GUI. The previous flag group types OWNER, ACCESSOR, CONTAINER, BUILDER, MANAGER will now require the following permissions :

griefdefender.advanced.user.gui.flag.group.owner  
griefdefender.advanced.user.gui.flag.group.accessor  
griefdefender.advanced.user.gui.flag.group.container  
griefdefender.advanced.user.gui.flag.group.builder  
griefdefender.advanced.user.gui.flag.group.manager


 
----------, Jul 28, 2023

MC 1.20 Support

This release adds support for Minecraft 1.20 servers.

Changelog

Code (Text):

* Add MC 1.20 support.
* Process all action bar messages async.
* Fix claim inventory GUI icon not displaying while player was in wilderness.
* Fix economy-claim-abandon-success and
economy-claim-abandon-success-world messages missing currency formatting.
* Fix date parse error in MultiPaperProvider.
 
----------, Jun 9, 2023

This update addresses a few important issues with previous 2.3.6 release.

Changelog

Code (Text):

* Fix timing errors on earlier MC versions.
* Remove timings and update aikar commands libraries.
* Add 'fire' to entity damage source blacklist.
 
----------, May 13, 2023

IMPORTANT:

New preset lang entries have been added to this release. You can either wipe the existing preset lang or insert the new additions below.


Code (Text):

tutorial-claim-basic="&eClick for Land Claim Help: https://docs.griefdefender.com"
 
GUI and preset icon fixes have been added. You can either wipe existing preset and gui.conf or migrate new additions from a fresh config.



GD Fabric/Forge Availability

GD Fabric 1.19.2-1.19.4 development builds are available to patreons on discord.
GD Forge 1.18.2/1.19.2 development builds are available to patreons on discord.
If you are interested in becoming a patreon to access these development builds, see https://patreon.com/bloodmc


Changelog

Code (Text):

* Fix null claims being passed in GDPermissionIdentifyEvent.
* Fix player-teleport-cost and player-teleport-delay defaults not showing up in options.conf
* Fix italics in GUI config.
* Fix icon flags not being applied to flags and options in GUI.
* Fix admins being able to abandon claims that they did not own. If you want to force abandon as admin, toggle '/ignoreclaims' on.
* Update wiki URL to point to https://docs.griefdefender.com
 
----------, May 12, 2023

This update addresses a few important issues with previous 2.3.4 release.

Changelog

Code (Text):

* Fix trust permission lookups not respecting levels.
* Fix FastAsyncWorldEdit incompatibility when using protected-worlds.
* Fix claims not loading on call with 'always-read-write-db' turned on.
 
----------, Mar 18, 2023

This update addresses an issue with previous 2.3.3 release.

See GD 2.3.3 update notes here : https://www.spigotmc.org/resources/...vention-protection.68900/update?update=492724

Changelog

Code (Text):

* Fix inventory GUI showing claim/player icons when not trusted.
 
----------, Mar 14, 2023

MC 1.19.4 Support

This release adds support for Minecraft 1.19.4 servers.

Changelog

Code (Text):

* Add MC 1.19.4 support.
* Add gd_rent=rent context support for RealEstate.
* Add support for flag definitions setting permissions in lower level trust.
- ex. Allowing block place for accessor even though GD expects builder trust.
* Fix NPE on /gdreload when using protected-worlds.
* Fix /gdconfirm not working during claim transfers.
* Fix /givepet not checking proper ownership.
 
----------, Mar 14, 2023

IMPORTANT:

This is a performance and stability update addressing various issues in 2.3.1 release.
Note: If you are experiencing issues with water not flowing properly in claims, rename your ./world/data/griefdefender folder as this may have bad tracking data due to bugs in last release.



Changelog

Code (Text):

* Fix getRunningServerTicks caused by Spigot internal change to getServer. Note: This fixes GD's cause manager not properly tracking causes.
* Fix protected-world setting causing various NPE's.
* Fix NPE during ClaimBlockTask.
* Fix IllegalArgumentException when attempting to process bad custom entity name from mods.
* Fix Slimefun item integration.
* Fix LP /acb commands randomly not saving properly when executed by other plugins.
* (MC 1.12.2) Fix NoSuchMethodError during ProjectileLaunchEvent.
* Improve performance during entity spawn events.
* Improve performance during block change events.
* Invalidate player cache of players inside claim during claim cache purge. Note: This fixes caching issues when non-user flag permissions change.
 
----------, Jan 25, 2023

MC 1.19.3 Support

This release adds support for Minecraft 1.19.3 servers.

GD Forge Availability

GD Forge 1.18.2/1.19.2 test builds are now available to patreons on discord.

Changelog

Code (Text):

* Add MC 1.19.3 support.
* Add gamemode context support.
* Fix trust flag toggle in inventory GUI.
* Fix flag permission lookups with trust.
* Fix IllegalArgumentException during custom entity context creation.
* (Hybrid 1.12.2) Fix NPE when attempting to translate block and entity messages.
 
----------, Dec 13, 2022

IMPORTANT:

New settings have been added to the gui.conf file. Make sure to backup then delete the file before updating in order to get latest settings.

All claim removal/expiration configuration settings have been moved into a new section 'removal-settings' within global.conf. If you altered any of these settings, make sure to re-apply them in new section.

New preset lang entries have been added to this release. You can either wipe the existing preset lang or insert the new additions below.

Code (Text):

toggle-notifications="Toggles whether trusted claims you enter or exit will display notifications."
claim-expired-inactivity-temporary-admin="&6{player}'s {claim_name} &ahas &cEXPIRED&a and has been converted to a TEMPORARY free-for-all admin claim. All players will have &6{time}&a to acquire any items within the claim."
claim-expired-inactivity-temporary-admin-coords="&6{player}'s {claim_name} &ahas &cEXPIRED&a at {coords} and has been converted to a TEMPORARY free-for-all admin claim. All players will have &6{time}&a to acquire any items within the claim."
command-notifications-trusted-disabled="&cTrusted claim notifications disabled."
command-notifications-trusted-enabled="&aTrusted claim notifications enabled."
 


Improved Trust System

The trust system is now integrated within the flag GUI. The following types can now be managed via the flag GUI :

  • OWNER - Controls owner flags.
  • PUBLIC - Controls non-trusted player flags.
  • ACCESSOR - Controls access trust player flags.
  • CONTAINER - Controls container trust player flags.
  • BUILDER - Controls builder trust player flags.
  • MANAGER - Controls manager trust player flags.

In order to support the new flag types above, the following new GD LP groups will now be created at first server boot :

Code (Text):

gd_trust_accessor
gd_trust_builder
gd_trust_container
gd_trust_manager
gd_trust_resident
 

New Flag/Option Definition setting

A new setting 'default-groups' can now be used in flag/option definitions. Simply specify the LP group name.

Ex. Apply definition to builders

Code (Text):

default-groups {
    "griefdefender_trust_builder"
}
 
Ex. Apply definition to builders and VIP group
Code (Text):

default-groups {
    "griefdefender_trust_builder",
    "vip"
}
 

Deny Message Translations

All block, item, and entity deny messages that GD sends to players will now support client translations. GD will also prioritize any custom names set on these types.


Item CustomModelData support

The inspection and modification tools now support CustomModelData support. To use, add {key:value} after item identifier.

Ex.
Code (Text):

inspection-tool=minecraft:stick{CustomModelData:2}
 

New Item damage flag

A new flag 'item-damage' has been added to GD's API. This new flag adds support for controlling damage on an item.


New claim expiration feature

A new configuration setting 'admin-feature' can now be used to turn expired basic claims into admin claims giving all players build trust! Another timer will start before deleting the expired claimed territory allowing anyone to re-claim area.
Note: Make sure to TEST before using this new feature.


World whitelist support

Servers using plugins that create many additional worlds can now make use of the new world whitelist configuration in global.conf and specify which worlds you want GD to work in. All other worlds not specified will be ignored in GriefDefender.


Entity custom name context

You can now control flags against entities with custom names. Use the following contexts :

Code (Text):

customname:<entity_name>
customname:any
 


Arclight Tick Tracker support

This release adds initial support for Arclight's new tick tracking API. For more information see https://github.com/ArclightPowered/api/issues/1


Coming Soon

GriefDefender Forge will be ready for public testing soon! Check discord for more info.


Changelog

Code (Text):

* Fix GD menu titles missing colors due to new translation logic.
* Fix inspection/modification tool on reload.
* Fix claimgroups when using DB storage.
* Fix global claim options not using default claim contexts.
* Add support for custom container names.
* Add fine-tunable control for trust levels.
* Introduce new core protection flag item-damage. This flag will allow servers to control which items can lose durability or be damaged.
* Support custom/translatable block/item/entity names in claim deny messages.
* Add new claim expiration feature which will turn expired basic claims into admin claims giving all players build trust! Another timer will start before deleting the expired claimed territory allowing anyone to re-claim area.
* Add world whitelist to global.conf which gives servers the ability to control which worlds they want GD to be activated in. This setting is useful for servers using plugins that generate many additional worlds such as DungeonXL.
* Add toggle to disable/enable claimed notifications (greeting/farewell) in claims you own or are trusted in.
* Add trust support for claimgroups.
Note: Using trust commands will now affect the claimgroup instead of claim.
Note: All trust permissions assigned to a claimgroup will appear in respective LP trust group griefdefender_trust_<type>
* Add entity customname context support.
The following contexts will now be included when an entity contains a custom name :
customname:<name>
customname:any
* Move all toggable commands to /gd toggle <command>
* Improve claimgroup checks.
* (Bukkit) Fix BlockBurnEvent not triggering block-spread correctly.
* (Bukkit) Add custom NBT support for GD inspect and modification tool. To use, add {key:value} after item identifier.
Ex. inspection-tool=minecraft:stick{CustomModelData:2}
* (Arclight) Add tick tracker support. See https://github.com/ArclightPowered/api/issues/1
 
----------, Nov 23, 2022

IMPORTANT:

This is a performance and stability update addressing various issues in 2.2.4 release.



Currency Symbol support


You can now configure the currency symbol used by GriefDefender in all economy messages.


Coming Soon

GriefDefender will soon support both Forge and Fabric platforms. Forge support is nearly done. For more updates, check discord.


Changelog

Code (Text):

* Fix desync mount issue when denying claim entry.
* Fix parent_uuid and claimgroup_uuid not being set in DB with always-read-write-db enabled.
* Fix wrong creature type mapping.
* Fix GD failing to startup if database storage name contained a hyphen(-) character.
* Fix flag commands not applying proper context if claim was joined to a claimgroup.
Note: This will allow servers to override claimgroup permissions with LP groups.
* Add new economy setting currency-symbol to global.conf used to customize currency symbol in economy messages.
* Add new claim setting child-inherit-trust used to control whether a child claim inherits parent trust when inheritance is turned on.
 
----------, Oct 21, 2022

IMPORTANT:

This is a performance and stability update addressing various issues in 2.2.3 release.



Changelog

Code (Text):

* Fix memory leak in wilderness claim.
* Fix trust commands not passing identifier properly.
* Fix claim date-created not being set in memory after server startup when using DB storage.
* Fix caching issue with liquid-flow checks.
* Fix claim settings being re-saved to DB during startup with always-read-write-db enabled.
* Fix ClanData NPE during config init.
* Improve LP user lookup performance.
* Add 'deny-messages' setting to pvp category in global config.
* (MC 1.12.2) Fix NoSuchFieldError during spawning.
* (Sponge) Fix command check when player was op.
* (Sponge) Fix memory claim settings not being updated with always-read-write-db enabled.
* (MultiPaper) Fix claim resize message not checking if claim is loaded.
* (MultiPaper) Fix claim transfer message not checking if claim is loaded.
* (MultiPaper) Add claim set active message.
 
----------, Sep 24, 2022

IMPORTANT:

This is a stability update addressing various issues in 2.2.2 release.


Changelog

Code (Text):

* Fix player cached claim not always being updated after successful teleports.
* Fix ClaimRemoveEvent.Expire not being fired before cleanup.
* Fix inventory GUI /playerinfo not working for self when denying others permission.
* Fix inventory GUI notification icons being shown without permission.
* Fix MultiPaperProvider transfer and resize notifications not always loading claims on other servers.
* Fix child claims last active logic not checking ownership on player login.
* Fix claim-start message when creating child claims.
* Fix /claimid tab completion.
* Fix /claimdisplayname clear message.
* Fix /claimoption command not handing quoted values properly.
* Fix various option definition permission checks.
* Add sculk protection.
* Add 'minecraft:fire' to block-break blacklist.
Note: If you want to prevent fire extinguishing, remove this entry from blacklist.conf.
* Add missing : to status label in inventory option GUI.
* Add 3d claim UP/DOWN player face support for /claimcontract and /claimexpand.
* Updated pt_BR lang.
* (Sponge) Fix player-command-enter and player-command-exit options not being checked with player movement cache enabled.
* (MC 1.12.2) Fix NoSuchFieldError during entity spawns.
 
----------, Aug 30, 2022

MC 1.19.1 Support

This release adds support for Minecraft 1.19.1 servers.

New Flag Definition Setting

Flag definitions now support a new setting 'owner-mode' which determines if the flag should be displayed under the 'OWNER' section of flag GUI.


Changelog

Code (Text):

* Fix entity-damage-monster-other optimization affecting players.
* Fix user tracking when spawning monsters via command or spawn eggs.
* Fix clan trust not syncing on MultiPaper servers.
* Fix claimlist in inventory GUI not working outside of claim.
* Fix /claimflagdefinition permission check.
* Fix wrong permission displayed in flag preset comments.
* Fix contexts not being applied with claim option command.
* Fix claim title not showing if only subtitle was set.
* Fix CME in FlagRegistryModule getById.
* Fix `turtle-egg-hatch` definition
* Fix wither skulls not being allowed to explode by default.
* Fix tadpoles not being able to be transformed in user claims.
* Fix vine-growth flag definition using wrong flag.
Note: Change block-growth to block-spread or reset minecraft.conf preset.
* Invalidate player event cache on permission change and /gdreload.
* Don't track users during block spreads unless its fire.
* Attempt to fix gddebug displaying wrong data.
* Add claim group UUID to claim info details.
* Add new owner-mode flag definition setting which controls whether a definition supports toggling owner/trusted.
Note: The minecraft.conf preset will need to be regenerated for default values.
* Add wilderness-liquid-flow optimization setting.
Note: By default, GD ignores liquid-flow in wilderness to improve performance. If you want to deny liquid flow in wilderness then set this setting to false in global.conf
* Add 'teleports-use-block-event' claim setting to control whether teleports should be affected by enter/exit claim flags.
* (Sponge8) Fix NPE during world registration for certain mods.
 
----------, Jul 29, 2022

IMPORTANT:

This is a stability update addressing various issues in 2.2.0 release.


Changelog

Code (Text):

* Fix claim option command.
* Fix trust when interacting with armorstands and item frames.
* Fix option player-keep-inventory and player-keep-level toggles.
* Fix town claim options.
* Fix pvp target flag location check.
* Fix claimgroup permissions not persisting after server restart.
* Fix /claimgroupadmin command.
* Fix 'Claim Info' and 'Claim List' not being translated in inventory GUI.
* Add protection support for AreaEffectCloud's.
* Improve /claimflagdefinition .
  Note: You can now use <preset>:<group>:public|owner
  Note: ex. /claimflagdefinition minecraft:user:owner chest-access true <identifier>. This would affect both owner and public users.
* (MC 1.19) Fix flag and option chat GUI pages not being aligned properly.
* (Hybrid 1.12.2) Fix NoSuchMethodError when breaking item frames.
* (Hybrid 1.12.2) Fix NoSuchMethodError when using fishing hook.
 
----------, Jun 26, 2022

IMPORTANT:

New preset lang entries have been added to this release. You can either wipe the existing preset lang or insert the new additions below.

Code (Text):

option-descriptions {
    player-deny-flight="Controls whether a player has ability to fly in this claim."
    player-deny-godmode="Controls whether a player has ability to be in godmode in this claim."
    player-deny-hunger="Controls whether a player can have hunger in this claim."
    player-fly-speed="Controls the player's fly speed in this claim."
    player-gamemode="Controls the player's gamemode in this claim."
    player-health-regen="Controls the player's health regeneration in this claim."
    player-item-drop-lock="Controls whether a player's items are locked on drop."
    player-keep-inventory="Controls whether a player keeps inventory on death."
    player-keep-level="Controls whether a player can keep all XP after death."
    player-teleport-cost="Controls how much a teleport costs from this claim."
    player-teleport-delay="Controls how much of a delay before a player teleport will activate."
    player-walk-speed="Controls the player's walk speed in this claim."
    player-weather="Control's the player's weather in this claim."
    pvp-combat-command="Control's whether a player can use commands during pvp combat in this claim."
    pvp-combat-teleport="Control's whether a player can teleport during pvp combat in this claim."
    pvp-combat-timeout="Control's how long pvp timeout lasts."
    villager-raid="Controls whether raids can occur in villages."
}
option-names {
    player-deny-flight=player-deny-flight
    player-deny-godmode=player-deny-godmode
    player-deny-hunger=player-deny-hunger
    player-fly-speed=player-fly-speed
    player-gamemode=player-gamemode
    player-health-regen=player-health-regen
    player-item-drop-lock=player-item-drop-lock
    player-keep-inventory=player-keep-inventory
    player-keep-level=player-keep-level
    player-teleport-cost=player-teleport-cost
    player-teleport-delay=player-teleport-delay
    player-walk-speed=player-walk-speed
    player-weather=player-weather
    pvp-combat-command=pvp-combat-command
    pvp-combat-teleport=pvp-combat-teleport
    pvp-combat-timeout=pvp-combat-timeout
    villager-raid=villager-raid
}
 

MC 1.19 Support

This release adds support for Minecraft 1.19 servers.


MultiPaper Support

This release adds initial support for MultiPaper servers that need GD data to be synchronized across all servers.
Note: Set always-read-write-db in storage.conf to true.
Note: Due to additional code required to make this setup work, support will only be given to patreons.


Option Definition System

Presets now support option definitions. An option definition supports a single option with one or more contexts. This new system will power vanilla and external plugin options such as mcmmo, aurelium and more.
GD's API has been updated to support the new option definition system.

The below screenshots show what GD will display after reading the delivered option definitions from minecraft's preset.

[​IMG]
[​IMG]


Sponge 1.16.5 Support

GriefDefender now supports Sponge 1.16.5 servers. Builds will be available on discord.


Changelog

Code (Text):

* Add option definition support for presets.  
* Fix potential server crash when using /claimsellblocks
* Improve option GUI.  
* Improve pt_BR translations.
* Clear player cache on trust change.
* Show cached interact events in debug.
* Ignore limited user check if player is admin.
* (Bukkit) Add support for MC 1.19.
* (Bukkit) Prevent item frames being broken by vehicle collisions.
* (Bukkit) Fix getMinHeight NoSuchMethodError on 1.12.2 servers.
* (Bukkit) Add multi-paper support.
Note: Set always-read-write-db in storage.conf to true.
* (Bukkit) Fix NPE when throwing lingering potion.
* (Bukkit) Fix NPE when checking command permission.
* (Hybrid) Add support for Arclight mod entity registration.
Note: This will now properly show pixelmon spawns by name.
* (Hybrid) Listen to WorldLoadEvent to workaround Hybrid servers not firing WorldInitEvent's for MultiVerse worlds.
 
----------, Jun 9, 2022

This update just addresses a few important bugs that were present in 2.1.7 release.


Changelog

Code (Text):

* (Bukkit) Fix possible crash when searching for safe teleport location in nether.
* (Bukkit) Fix entity placement protection.
* (Bukkit) Fix player interact protection due to caching issues.
* Fix '/ignoreclaims' not working properly.
* (Sponge) Always check item interact protection to support mods.
* Remove block-break access from sign-use flag definition.
* Remove animal spawns from blacklist.
Note: If you deny animal spawns in your world, you will need to open up blacklist.conf and remove the entity-spawn section which blacklists animals. This will allow GD to process animal spawns and deny when needed.
 
----------, May 22, 2022

This update just addresses a few important bugs that were present in 2.1.6 release.

For previous changelog, see https://www.spigotmc.org/resources/68900/update?update=455707


Changelog

Code (Text):

* Fix shops being protected instead of ignored.
* Fix entity-damage-monster-other optimization including players.
* Fix placeable entity items, such as armorstand, being ignored during interact events.
* Fix missing isBlockFire method in 1.12.2 adapter.
* Fix inventory gui NPE when clicking trust icon with no trust.
* Fix inventory flag admin icon not displaying properly on 1.12.2 servers.
* Allow enchanting table access for players globally by default.
* (Hybrid) Fix monster spawn protection in Mohist due to Mohist passing wrong spawn reason.
 
----------, May 13, 2022

IMPORTANT:

This is a major performance update addressing various slowdown issues on very large servers. This release has been heavily tested on a 130+ player server and is guaranteed to perform well.

There have been 2 core permission changes to prepare for GD 2.2.0 changes. They are the following

  • Flag user definition base permission has been changed from 'griefdefender.user.custom.flag' to 'griefdefender.user.definition.flag'
  • Flag admin definition base permission has been changed from 'griefdefender.admin.custom.flag' to 'griefdefender.admin.definition.flag'

New lang entries have been added to this release. You can either wipe the existing lang or insert the new additions below.

Code (Text):

input-enter-value="Enter a value: "
inventory-ui-flag-owner="Displays flags for owner and trusted players."
inventory-ui-flag-public="Displays flags for untrusted players."
inventory-ui-group-option-definitions="{group} Option Definitions"
inventory-ui-group-flag-definitions="{group} Flag Definitions"
inventory-ui-option-left-click-decrease="Left-click to &cdecrease&f value."
inventory-ui-option-owner="Displays options for owner and trusted players."
inventory-ui-option-public="Displays options for untrusted players."
inventory-ui-option-right-click-increase="Right-click to &aincrease&f value."
inventory-ui-option-shift-left-click-set="Shift-left-click to &6set&f value."
inventory-ui-option-shift-right-click-reset="Shift-right-click to &breset&f value."
inventory-ui-select-flag-group="Select Flag Group"
inventory-ui-select-flag-preset="Select Flag Preset"
inventory-ui-select-option-group="Select Option Group"
inventory-ui-select-option-preset="Select Option Preset"
inventory-ui-shift-right-remove="Shift-Right-Click to remove"
 

Performance

One of GriefDefender's primary goals has always been to provide the best performance it can for servers that use it. With release 2.1.6, GD can now guarantee optimal performance on heavy servers with 130+ players.

Existing servers should see a pretty substantial gain in overall resource usage of GriefDefender.

Note: Sponge servers will see less performance than Bukkit but more work is being done to bridge the gap between the two as best as possible.


Blacklist Config

The blacklist config provides servers full control on what GD should check and not check during protection. With 2.1.6 release, GD provides many defaults to improve performance. If your server decides to protect any setting in the blacklist section, simply remove it.

The current blacklist configuration setting has been moved out of global.conf into its own file 'blacklist.conf'. This will allow servers to easily share their blacklist settings without providing their complete config.

Dutch Language Support

GriefDefender now comes with a new translation for nl_NL to support Dutch servers. A big thanks to LuukVH for providing the translations.


Upcoming

Version 2.2.0 will provide a complete overhaul of GD's option menus and provide a much more user friendly experience for users. Check discord for up-to-date progress.


Changelog

Code (Text):

* Fix unable to place blocks inside claim if target block is in a non-trusted claim.
* Fix single-block subdivisions failing to create if triggered by plugin.
* Fix fire not extinguishing by default.
* (Bukkit) Fix potion protection.
* Fix players unable to access enderchest's by default.
* (Bukkit) Fix NPE during block physics.
* Fix some more italic issues in inventory GUI.
* Fix chat record off button not working in CLAIM menu.
* Fix possible NPE during /claimlist <player>
* Fix various water tracking issues.
* Fix label-confirm translation breaking inventory GUI confirm.
* Fix claims not able to be created/resized 1 block next to world border.
* Fix wrong flag being used for fire-block-damage definition.
Note: To fix existing preset, change block-break to block-modify in fire-block-damage definition.
* (Sponge) Fix GD entity optimizations checking wrong source
* (Sponge) Fix wrong entity-damage target id in debug.
* (Sponge) Fix duplicate player block break handling.
* (1.18.2) Fix wrong block registry mapping in adapter.
* (Bukkit) Add axolotl protection.
* (Bukkit) Add protection support for lingering potions.
* (Bukkit) Add new optimization setting 'entity-interact-block'
* (Bukkit) Add Residence migration support.
* Add new optimization setting 'entity-damage-monster-other'
* Add identifier support for /trustlist command.
* Add 'minecart_chest' and 'trapped_chest' to 'chest-access' definition.
* (Sponge) Improve block notify performance.
* (Sponge) Improve block pre performance.
* (Sponge) Improve player movement performance.
* Add dutch lang support (nl_NL).
* Update pt_BR preset lang.
* Change block physics cache to remove after write instead of access.
* Don't fire ProcessUserTrustEvent during player move.
* Move blacklist settings out of 'global.conf' into its own file 'blacklist.conf' for easy sharing.
* Improve 'entity-interact-secondary' handling.
* Improve item interact handling.
* Improve delivered blacklist settings.
* Flag user definition base permission has been changed from 'griefdefender.user.custom.flag' to 'griefdefender.user.definition.flag'
* Flag admin definition base permission has been changed from 'griefdefender.admin.custom.flag' to 'griefdefender.admin.definition.flag'

 
----------, May 10, 2022

IMPORTANT:

This is a stability update addressing various issues in 2.1.4 release.

Brazil Language Support

GriefDefender now comes with a new translation for pt_BR to support Brazilian servers. A big thanks to FIITFC for providing the translations.

Changelog

Code (Text):

* Fix flag definition text defaulting to italics in inventory GUI.
* Fix wilderness claim identifier lookups.
* Add pt_BR lang support.
* Add %claim_area% placeholder.
* Add gd-prefix to message category in global.conf. This setting allows you to customize [GD] prefix used by many messages.
* Add wiki section gui.conf to control wiki settings in both inventory and chat GUI.
* Allow block-grow by default in user claims. This avoids issues such as pumpkin/wheat not growing.
Note: Existing installs need to remove block-grow from flags.conf under default-claim-flags
* (Bukkit) DungeonXL worlds will now automatically be ignored by GriefDefender. World configs should no longer be generated.
* (Bukkit) Fix issue with block tracking causing water flow to stop in rare cases.
* (Bukkit) Fix confirm inventory menu using hardcoded materials causing NPE for legacy versions.
* (Bukkit) Fix player last active date not being updated properly on bungeecord networks.
* (Bukkit) Fix WorldGuard claim creation delegation check including non-intersecting regions.
* (Bukkit) Remove debug showing during claim load.
 
----------, Apr 22, 2022

IMPORTANT:

This is a stability update addressing various issues in 2.1.3 release.
If you are running a bukkit server and experiencing liquid flow not flowing properly, wipe the ./world/data/griefdefender folder.

Changelog

Code (Text):

* Fix create-limit check within town counting outside claims.
* Fix inventory GUI not clearing cache properly when exiting GUI.
* Fix 'Raid' toggle in inventory gui.
* Fix '/claimgui' reverting after permission changes.
* Fix inherit msg not being sent if attempting to toggle in claim with no parent.
* Fix max-accrued-blocks not working in all cases when set to -1.
* Fix inventory login permission not working.
* Don't display command permissions in inventory GUI to non-admins.
* Trust will no longer be inherited by claims that have inheritance enabled.
* Add ability to use 'none' to clear messages.
* (Bukkit) Fix async error during block tracking.
* (Bukkit) Fix blocks not breaking by default when on fire within claims.
* (Bukkit) Remove monsters targeting players if not allowed to enter target claim.
 
----------, Mar 22, 2022

This release adds support for MC 1.18.2 along with database performance enhancements and various bug fixes.



Changelog

Code (Text):

* Fix placeholder griefdefender_claim_name not working after restart.
* Fix admin settings being accessed by normal users in /claiminfo.
* Fix entity move event listener not handling non-player blacklist entries.
* Fix claim tools not being processed if interact-item-secondary flag was blacklisted.
* Fix custom flags being checked if enabled.
* Fix ClassCastException when creating towns.
* Fix italics being set as a default in inventory GUI with no formatting set.
* Fix title serializer issue when using ; in title.
* Fix wrong title being displayed for silverfish-block-infest and fall-entity-damage flag definitions.
* Add support for MC 1.18.2
* Add support for EntityInteractEvent.
  Note: This should protect non-player entities interacting with blocks such as pressure plates.
* Improve PlayerInteractEvent listener.
* Improve block notify listener performance.
* Load/Update claim data async when using database storage.
* Send ProcessTrustUserEvent messages to action bar instead of chat.
 
----------, Mar 4, 2022

IMPORTANT:
You will need to perform the following before starting server with new update

  • delete ./GriefDefender/lang

New lang entries
Code (Text):

claim-gui="Used to toggle between Chat and Inventory GUI modes."
command-claimgui-chat="&aChat GUI enabled."
command-claimgui-inventory="&aInventory GUI enabled."
 

This is a stability and performance update addressing various issues in 2.1.1 release.

Changelog

Code (Text):

* Fix claims loading very slow at startup when using DB storage.
* Fix various commands not supporting bedrock usernames.
* Fix flag definition command not checking for flag permission.
* Fix inventory GUI trust player not working.
* Fix GP DB migrator not setting correct bonus blocks.
* Fix NPE in trustlist inventory GUI.
* Fix farewell set not working in chat and inventory GUI.
* Fix claiminfo details message in inventory GUI.
* Fix ender-crystal flag definition.
* Fix town conversion rolling back on restart.
* Fix claimoptions not working within town.
* Fix claimoption GUI not working properly in town/wilderness.
Note: Adjusting options in GUI within town or wilderness will now automatically apply to basic claims.
* (MC 1.12.2) Fix NoClassDefFoundError during ExplosionPrimeEvent.
* Add /claimgui to toggle between Chat and Inventory GUI.
* Add new perm griefdefender.login.inventory-gui to force inventory GUI to be enabled on login.
* Add support for claim inspection to search nearby claims when targeting ground block.
* Add entity-spawn optimization settings for wilderness.
Note: Most entity spawns in wilderness will now be ignored by default. If you need to control spawns in wilderness, disable optimizations.
* (Hybrid) Add support for mod world folder locations when saving chunk tracking data.
* (Bukkit) Add BlockDropItemEvent support.
Note: This is only supported on MC versions 1.13.2+
* Change permission griefdefender.user.gui.inventory to griefdefender.login.inventory-gui
Note: Chat GUI will be default unless overridden by login perm.
* Require manager trust to alter claim info data.
* Improve claim cleanup task performance.
* Improve '/gdconfirm' performance.
 
----------, Feb 13, 2022

IMPORTANT:
You will need to perform the following before starting server with new update

  • delete ./GriefDefender/lang


This is a stability update addressing various issues in 2.1.0 release.

Changelog

Code (Text):

* Fix inventory GUI create claim not working in economy mode.
* Fix lang fr_FR not loading.
* Fix async error when opening confirm menu in inventory GUI.
* Fix GP DB migrator.
* Fix wrong permission checks while using flag GUI.
* Fix clan provider NPE when clan had invalid tag.
* Fix custom lore not being applied in inventory GUI.
* Fix inventory cursor resetting to center on legacy servers.
* (Sponge) Fix inventory GUI add trust error.
* Add customizable server icon for inventory GUI main menu.
Note: This allows server owners to link to another GUI by executing a command.
* Update triumph gui dependency to 3.1.1
* Update zh_HK lang.
 
----------, Feb 5, 2022

IMPORTANT:
You will need to perform the following before starting server with new update

  • delete ./GriefDefender/lang
  • delete ./GriefDefender/lib
  • backup and delete ./GriefDefender/presets
  • update LuckPerms to 5.3.98+

Due to presets now supporting custom icons, all preset files will need to be regenerated. Simply backup your presets folder then delete so GD can regenerate them on bootup. If done correctly, you should see a new icon section for each flag.

Inventory GUI

GriefDefender now has a fully functional Inventory GUI for all server platforms including Sponge. The GUI has been designed from the ground up to work for Bedrock players.

[​IMG]

Icons
Admins will be able to customize an icon's item, title, lore, meta, model data, and more! Mod items are also supported!

Flags
The new inventory GUI provides an update to the existing flag definition system in order to support custom icons for flags.

[​IMG]


Permissions
Assigning the permission 'griefdefender.user.gui.inventory' will allow a player to use the new inventory GUI. Denying the same permission will force the player to use the original Chat GUI.



Improved Debugger

GriefDefender's debugger will now provide additional LuckPerms result information such as the exact node where a permission was found. This should help admins greatly when a permission is causing issues on server.


Resident Trust

A new trust 'resident' has been added. Resident trust can be used inside a town or admin claims to allow a player to create a claim within.


Improved Clan Support

GD API has been updated for enhanced clan plugin functionality. The following clan plugins are now supported by GDHooks :

  • Guilds
  • SimpleClans
  • Towny
  • UltimateClans


Changelog

Code (Text):

* Fix debug showing wrong user at times.
* Fix debug showing blank sources at times.
* Fix placeholder 'griefdefender-claim-owner' translations not working.
* Fix '_GDWorld_' and '_GDAdmin_' showing up in commands.
* Fix claim inherit data not loading from DB storage.
* Fix user persistent permission check.
* Fix missing permission check in '/claiminfo' for notification messages.
* Fix owner permissions not being cleared on claim delete and transfer.
* Fix command-execute flag not working with worldedit commands.
* Fix debug showing wrong user at times.
* Fix debug showing blank sources at times.
* Fix placeholder 'griefdefender-claim-owner' translations not working.
* Fix entity-damage cache not including claim UUID in hash.
* Fix players receiving random claim resize messages.
* Fix flag gui pagination error when swapping between owner and public.
* Fix claim teleports under height 0.
* Fix /claimcreate NPE when creating child claim.
* Add ClaimAttributes
* Add '/claimtax clear|clearall' to allow admins to clear tax data for one or more claims.
* Add new trusttype 'Resident'.
  - Resident trust gives the player permission to create claims and access any block not inventory.
  - Resident trust can only be assigned in a town or admin claim.
* Add permission check for 'COMMAND' menu.
* Add  new optimization setting 'entity-damage-source-living-passive' to ignore block damage done to living passive by default.
* Add new config file 'gui.conf' to manage both Chat/Inventory GUI settings.
* Add support for setting owner flag definitions by using format preset:group:owner.
* Add support for disabling presets. To disable a preset, set enabled to false.
* Add preset name to flag definition permission checks.
* Implement entity explosion handling.
   - Fixes item frames being knocked off blocks during explosions.
* Implement Inventory GUI for bedrock players.
   - All players with permission 'griefdefender.user.gui.inventory' will default to inventory GUI.
  Note: As there are many lang additions, the lang file must be deleted to regenerate.
* Update Flag Definition system to support inventory GUI customization.
  Note: As this is a major change, the minecraft.conf preset must be deleted so it can regenerate fresh with default icons.
* Do not show claim list on inspection if player does not have 'griefdefender.user.claim.command.list.base'
 
----------, Jan 29, 2022

This is a hotfix for bukkit/hybrid servers running MC 1.17 or under. It fixes console errors related to NoSuchMethodError.

Note: If you are running Sponge or MC 1.18, you can continue to use 2.0.8.
----------, Dec 25, 2021

IMPORTANT:
You will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
If you are on MC 1.18, you will need to delete the following folder as there was a bug with player tracking below Y 0 and above Y 255.
  • <server_root>/world/data/griefdefender
This folder contains GD block tracking data for players in the world. Delete this folder for each world so it can regenerate clean.


This is a stability update addressing various bugs and improving quality of life.


Language changes

Code (Text):

claim-display-name-clear="&aThe claim display name has been cleared."
claiminfo-ui-enter-claim-id="Enter Claim Identifier"
claiminfo-ui-enter-display-name="Enter Display Name"
claiminfo-ui-enter-message="Enter Message"
command-claimunban-not-found-block-world="The block id {id} is not banned in world {world}."
command-claimunban-not-found-entity-world="The entity id {id} is not banned in world {world}."
command-claimunban-not-found-item-world="The item id {id} is not banned in world {world}."
label-arguments=Arguments
label-command=Command
label-description=Description
painting-damage="Controls whether paintings can be damaged."
painting-damage=painting-damage
playerinfo-ui-block-max-claimable="&fMax Claimable Blocks: &a{amount}"
title-id=ID title-wilderness=WILDERNESS
ui-click-details=Click to view additional details
 


Gametime Contexts

New contexts are available for all flags to allow users to set flags based on minecraft game time. The following game time contexts have been added

day, noon, sunset, night, midnight, sunrise, allday, allnight

These new contexts will show up in the format gametime=<type>


Improved Chat Capture

Bukkit

A new setting 'chat-capture-protocollib' has been added to 'global.conf' under 'gui' section. This new setting allows GD GUI's to capture all messages directed to a player to avoid chat menu from scrolling.

Note: Requires ProtocolLib

Sponge

A new setting 'chat-capture-packetgate' has been added to 'global.conf' under 'gui' section. This new setting allows GD GUI's to capture all messages directed to a player to avoid chat menu from scrolling.

Note: Requires PacketGate

Note: As this is an experimental feature, it is recommended to test before enabling.




Changelog

Code (Text):

* Fix URL's not being parsed in lang files.
* Fix non-admins unable to use '/claimoption' command if assigned permission to do so.
* Fix 'block-break' debug spam during fire damage.
* Fix 'FAIL_ALREADY_HAS' message when setting the same flag value.
* Fix claimgroups showing up as identifier in commands.
* Fix missing contexts during cached debug results.
* Fix min/max-level claim options not checking claim.
* Fix 'turtle-egg-hatch' flag definition.
* Fix block modify event handler ignoring certain actions such as ice forming.
* Fix 'TOWN' claim type showing in '/claiminfo' without permission.
* (MC 1.18) Fix player block tracker not supporting Y values under 0 and over 255.
* Improve claiminfo GUI button functionality.
  - GUI notifications will now prompt user for input.
  - Display name will now prompt user for input.
  - Claim ID will now prompt user for input.
Note: This input will always be set on the claim being checked.
* Improve '/claimban' command.
  - Add world support.
  - Add console support.
  - Move 'hand' usage to 'item' type. For ex. '/claimban item hand' will get id of item in mainhand.
  - Move ban data into its own file 'bans.conf'
* Improve '/trustlist' command. New format is '/trustlist [accessor|builder|container|manager|all] [identifier]'
  - Add ability to view trusts by type. Note: This will display directly in chat window outside of GUI.
  - Add claim identifier support.
* Improve '/playerinfo' GUI view.
* Add new context 'gametime'. This allows servers to control flags by game time.
  - gametime available context data is as follows :
    day = 1000 to 6000 ticks
    noon = 6000 to 12000 ticks
    sunset = 12000 to 13000 ticks
    night = 13000 to 18000 ticks
    midnight = 18000 to 23000 ticks
    sunrise = 23000 to 1000 ticks
    allday = 1000 to 11999 ticks
    allnight = 13000 to 22999 ticks
* Add new setting 'ignored-debug-contexts' to context category in global.conf.
  - This setting allows you to filter out contexts you do not want to see during debugging.
* (Bukkit) Add new 'chat-capture-protocollib' setting to allow capturing of all messages sent to a player.
  Note: This is still an experimental feature, test before enabling.
* (Sponge) Add new 'chat-capture-packetgate' setting to allow capturing of all messages sent to a player.
  Note: This is still an experimental feature, test before enabling.
* Add new optimization setting 'entity-damage-source-monster' for ignoring damage sources against monsters.
 
----------, Dec 24, 2021

IMPORTANT:
You will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
Note: If you heavily customized your lang file then generate a fresh file on a test server to copy new entries into custom one.


This is a stability update addressing various bugs and improving quality of life.


Changelog

Code (Text):

* Fix '/claimdisplayname clear' NPE.
* Fix '/claiminfo' NPE when passing an invalid identifier.
* Fix '/claimtransfer' for admin claims.
* Fix 'teleport-delay-notice' placeholder colors.
* Fix 'animal-block-modify' flag definition.
* Fix claim activated types not being translated.
* Fix admin identifiers not being found with commands.
* Fix potential crash when using '/buyclaimblocks'.
* Fix CME during visual apply task.
* Fix automatic claim spawn on claim creation for underground areas.
* Fix admin set overrides not affecting toggled flag definitions.
* Fix wrong trust in debug during cached results.
* Fix automatic claim spawn on claim creation for underground areas.
* Fix playerdata being recreated on login when player had no claims.
* Fix 'vehicle-use' definition.
* Fix tax apply task applying wrong past due balance to users on failed payment.
* Fix '/claimtax' display issues.
* Clear claim identifier before transferring claims.
* Clear claim identifier when changing claim type to or from an admin type.
* Add tab support for claim identifiers.
* Add support for changing menu colors.
* Add 'griefdefender.user.claim.economy.create-confirm' permission. Set to false to bypass claim create confirmations in economy mode.
* Add Turkish lang support. Thanks Taner for addition!
 
----------, Dec 15, 2021

This is a bux fix release addressing a few important issues.


Changelog

Code (Text):

* (MC 1.18) Fixed tag system not loading causing some flag definitions to not work.
* Fix chat/actionbar messages not appearing.
* Fixed duplicate debug output in wilderness.
 
----------, Dec 8, 2021

IMPORTANT:
You will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
Note: If you heavily customized your lang file then generate a fresh file on a test server to copy new entries into custom one.
Note: Storage settings have been removed from 'global.conf' and added to its own file 'storage.conf'. If using a database, make sure to migrate settings to new file.


This is a stability update addressing a few bugs.


Changelog

Code (Text):

* (MC 1.18) Fix issue with players unable to claim below 0.
* Fix claimlist 'blocks' label not being translated.
* Fix claiminfo 'Raid' label not being translated.
* Fix claiminfo 'ID' label not being translated.
* Fix trustlist 'Click here to add' hover label not being translated.
* Add 'painting-damage' definition to minecraft user preset.
* Add 'wilderness-default-message' setting to enable/disable default enter message.
* Implement QueryPermissionEvent.
* Move storage settings in 'global.conf' to its own config 'storage.conf' in order to better support version control.
Note: If you changed storage settings, make sure to migrate the changes to storage.conf.
 
----------, Dec 6, 2021

This update brings support for MC 1.18 and provides additional bug fixes.

Note: MC 1.18 extends the overworld height from 255 to 319 and its depth from 0 to -64. Check options.conf and make sure the min/max-level are adjusted accordingly.

Changelog

Code (Text):

* Add MC 1.18 support.
* Fix admin subdivision claim ownership when inherit is off.
* Fix wrong flag definition id on config load.
* Fix custom flag definitions not being registered on load.
* Fix typo in run_for/run_as messages.
* Fix single-block subdivision claim creation.
* Update kyori deps to 4.9.3.
* (MC 1.12.2) Fix entity boss NoClassDefFoundError.
* (MC 1.12.2) Fix PortalCreateEvent NoSuchMethodError.
* (Sponge) Fix missing user during liquid block breaks.
* (Sponge) Fix item frame placement not checking interact.
* (Sponge) Fix snow fall and melt flags.
* (Sponge) Fix wrong mod version info.
 
----------, Dec 1, 2021

IMPORTANT:
You will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
Note: If you heavily customized your lang file then generate a fresh file on a test server to copy new entries into custom one.

This is a stability update addressing a few bugs and adding a few QoL additions.


Improved WorldEdit Command

/gdwe claim|clear|select [identifier]
/gd worldedit claim|clear|select [identifier]

Subcommands
claim - creates GD claim from WE selection
clear - clears worldedit selection
select [identifier] - creates new WE selection from GD claim.



Changelog

Code (Text):

* Improve worldedit claim handling.
  - Add new command /gdwe claim|clear|select [identifier]
  - Fix WE claim creation bypassing various claim checks.
* Improve default welcome message handling.
   - Do not show default welcome message traveling between claims if same owner.
   - Do not show default welcome message if player is owner of claim.
* Fix subdivisions within admin claims not defaulting to admin owner.
* Fix /claimtool not disabling action bar message when toggled off.
* Fix option lookup using wrong context for subdivisions.
* Fix all claims saving during server startup.
* Invalidate claim permission cache when trust changes.
* Update to latest GD API.
* (Sponge) Fix debug log spam.
* (Sponge) Fix world/dim folders still being created in uppercase.
* (Sponge) Move library initialization to GameConstructionEvent. (Might see slightly longer startup time)
 
----------, Nov 13, 2021

Major Performance Update

The performance update is finally here!

A brand new caching system has been implemented to offload the constant protection lookups made during events. More logic has also been moved async to improve timings across the board. Servers should see up to 15x in performance improvement.


New GD Plugin Ports

AdvancedRegionMarket ( Original Version)

Note: Existing ARM configs can be used as the port contains a WG flag translator which will automatically translate WG flags to GD flag definitions on use.

Availability - Exclusively to patreons.


RealEstate ( Source | Original Version)

Availability - Discord


Changelog

Code (Text):

* Add new protection caching system to greatly improve performance across the board.
* Fix /gdconfirm not working with sell signs.
* Fix GP migrator failing to load some claims post migration.
* Fix GP migrator attempting to migrate same claim.
* Fix migrator count during GP DB migration.
* Fix claim titles showing when exiting from child claim to parent.
* Fix player not receiving any result message after confirming /claimtransfer message.
* Fix various GD registry not being initialized properly for API.
* Fix setDisplayName not saving via API.
* Force claim config saves sync during migrations.
* Use config DB name during GP DB migration.
* (Sponge) Force claim config saves sync during migrations.
* (Sponge) Relocate mysql/haxxar libs to solve conflicts with sponge and other plugins.
 
----------, Nov 7, 2021

IMPORTANT:
You will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang and ./plugins/GriefDefender/lib
  • On sponge, delete ./config/GriefDefender/lang and ./config/GriefDefender/lib

This is a stability update addressing various bugs, performance issues, and adding a few QoL additions.

Changelog

Code (Text):

* Fix additional flag definition preset files not applying transient permissions.
* Fix minecraft.conf preset not being generated.
* Fix non-user flag permission lookups not including all event contexts.
* Fix support for worlds below 0 and above 255 height.
* Fix isGroupTrusted not checking local group data.
* Fix NPE when changing claim types.
* Fix isUserTrusted not checking claim context.
* Fix owner greeting/farewell messages not displaying when greeting-farewell-action-bar is set to true and enter-claim-player-messages is set to 2.
* Fix /scb not checking max accrued blocks.
* Fix /abandonclaim allowing children claims to be abandonded. You must use /abandontop instead.
* Fix /abandontop not checking proper child claim owner when parent is admin claim.
* Fix wrong msg being displayed when abandoning claim with children.
* Fix child claim ownership check during abandon.
* Fix /claimtransfer with ignoreclaims.
* Fix gddebug not logging all true/false actions.
* (Sponge) Fix claims not loading when using file storage. Note: Make sure all dimension/world folder names are lowercase within ./config/worlds folder.
* Add missing title-town lang entry.
* Implement new option 'max-bonus-blocks'.
* Change /buyclaimblocks limit check to check max bonus blocks instead of max accrued.
* Move /acb meta call async. Fixes thread locking issues with votingplugin.
* Update to configurate 4.1.2 to fix performance issues during saves.
* Move configurate save call to dedicated async thread.
* Improve claimban checks.
* Change all internal UI command usage to use /gd commands. Note: This should help servers that restrict many commands as GD will only use one base command internally.
* Only show commands that a user has permission to see.
* (Bukkit) Update Slimefun dependency for MC versions 1.14.4+.
 
----------, Sep 11, 2021

Hotfix for library error during first boot.

For 2.0.0 update changes
See https://www.spigotmc.org/resources/...vention-protection.68900/update?update=415381
----------, Jul 26, 2021

Some users were unable to extract the zip file due to heavy compression.
For now, due to spigot file limitations, I have temporarily removed the sponge download from zip in order to be under the file size threshold. All sponge downloads will be available on discord and you will receive a discord link via paypal email on purchase.

For 2.0.0 update changes
See https://www.spigotmc.org/resources/...vention-protection.68900/update?update=415381
----------, Jul 26, 2021

After many long months of work, the big 2.0 update has finally arrived!

IMPORTANT:
As this is a major update from 1.5.X, it is important to take a full backup of all your GriefDefender and LuckPerms data before proceeding with update.
If you were using built-in hooks in 1.5.X for external plugins, most have been moved to the official addon GDHooks. See https://github.com/bloodmc/GDHooks for more information.
If you are upgrading from version 1.5.X, then you will need to perform the following :

Bukkit
  • Delete the language folder in ./plugins/griefdefender/lang
  • Delete the lib folder in ./plugins/griefdefender/lib
  • Backup global.conf, flags.conf, options.conf in ./plugins/griefdefender
  • Delete global.conf, flags.conf, and options.conf.
  • Transfer any settings from step 3 to newly generated files. (Requires at least 1 startup)
Sponge
  • Delete the language folder in ./plugins/griefdefender/lang
  • Delete the lib folder in ./config/griefdefender/lib
  • Backup global.conf, flags.conf, options.conf in ./config/griefdefender
  • Delete global.conf, flags.conf, and options.conf.
  • Transfer any settings from step 3 to newly generated files. (Requires at least 1 startup)
Note: If you have substantial changes to configs, it is recommended to make these changes on a test server then copying the new configs to production server.


Database Support

The following databases are now supported for storing GD claim data :

  • MySQL
  • MariaDB
  • PostgreSQL
  • SQLite
As this is a new addition, it is important to backup all existing data if you plan on migrating from file format to database format.

To migrate existing file claim data to database do the following
  1. Launch GriefDefender once to generate new migrator setting in global.conf.
  2. Set 'griefdefender-file-to-database' to true.
  3. Configure database settings under database category in global.conf
  4. Storage method must be set to 'hocon' in order for all existing claim files to load on startup.
  5. Start server and GD should automatically migrate each claim to database as it loads.



Interactive Menu

The entire GD menu has been redesigned from the ground up thanks to Venture's help. Every page now uses a consistent theme to make the overall experience better.
To launch the new menu, simply run the command '/gd'.
With the new menu, players will be able to seamlessly manage and view their claims.


Claim Groups

Claim groups allow users to join 2 or more claims to a group that share permissions and option data. There are two types of claim groups : ADMIN and USER.


Claim Snapshots

Claim snapshots allow users to backup all relevant claim data for restoration at a later time. This new feature is useful if you want to make big changes to a claim and want to revert if mistakes occur. It is also used for GD's rent system if restore is enabled.


Claim Identifiers

Users are now able to reference their claims by a friendly claim identifier that is unique per player. Use the new '/claimid <identifier>' command to set.

To use with a command that supports identifiers, pass the identifier as last arg. For example, to abandon a claim with an id 'shop1' you would enter '/abandonclaim shop1'



Improved Visual System

The following changes have been made to the visual system :

  • Async player visual support.
  • Stick functionality smooth as butter! Right/Left clicks enhanced for optimal show/hide of visuals.
  • Tracking system to keep track of which visual blocks have been sent to players to avoid sending duplicate packets hurting network performance.
  • Proper locality on point click of visual meaning it will use the configured radius and only show blocks within. Supports cuboids too.
  • New option 'inspect-radius' which controls the radius on claim inspections centered around player.
  • New option 'inspect-max-distance' which controls the max distance of inspect tool (default stick) to check for claims.
  • Improved underwater visual handling.
  • Improve claim error visuals.

Flag Definition System Improvements

Flag definitions are no longer dumped into a single file 'flags.conf'. With the new update, GD will now deliver a vanilla preset named 'minecraft.conf' allowing servers to create as many preset files as needed. When launching the flag menu, if more than 1 preset is detected, GD will show the list to choose then allow the user to select. This new improvement should allow modded servers to create flag definitions for various mods and keep them separated in their own configs files.
All flag definitions are now translatable and contain their own lang file.



Performance Improvements

Many optimizations have been made to maximize performance on servers such as :

  • The entire interactive chat menu is now generated async.
  • The entity move event has been optimized to run certain logic async such as option checks.
  • The visual system has been refactored to run much of its logic async.
  • A new 'optimization' category has been added to global.conf to improve default flag performance.
  • And more!


Titles

Main and subtitles are now fully supported with claims. Use the new '/claimtitle' command to configure.


Actionbars

The inspection and claim tools have been updated to show their status on actionbar. In previous versions, it was hard to determine what mode you were in.

All GD flag deny messages are now sent to actionbar to avoid chat spam.
New enter/exit claim actionbar messages have been added by default.
Everything can be configured in global.conf under message category.


RGB Support

All messages now support RGB. Use the format '&#FFFFFF'.


Rent Improvements

The rent GUI has been improved to support setting up rentals without the need of a sign.
The rent system now integrates into the new 'Claim Snapshot' feature if restores are enabled.
A new rent context has been added for flags in order to support any custom allow/deny settings.


Translations

All text can now be translated including every page on GD's new menu.


Plugin Hooks


All plugin extensions for GriefDefender can now be found in the new official addon GDHooks. The current supported plugins are as follows :

Map

  • BlueMap
  • Dynmap
  • Pl3xMap

Shop


  • BossShopPro
  • ChestShop
  • DynamicShop
  • InsaneShops
  • QuickShop
  • ShopChest
  • Shop
  • Slabbo
  • UltimateShops

Misc

  • CustomItems
  • EliteMobs
  • MMOItems
  • McMMO
  • MyPet
  • MythicMobs
  • RevoltCrates
  • SimpleClans


For more information see https://github.com/bloodmc/GDHooks


Improved API

GriefDefender's API has been greatly improved in order to support the new GDHooks addon. Plugin developers show have a lot more to work with when wanting to extend GD's functionality.


And much more...


Changelog

Code (Text):

* Fix TP button showing up when standing in untrusted claim due to having griefdefender.user.claim.command.info.teleport.inside permission. This was a temporary fix before /trapped command. Use /trapped command if stuck instead.
* Fix CME during visual revert task.
* Fix claim inspection tool logic in air returning claim you are in when pointing tool outside.
* Fix flag definitions setting wrong permissions on startup.
* Fix /claimcreate creating claims without permission for claim.
* Fix transient permission lookup conflict with flag definitions.
* Fix 'vehicle-use' definition.
* Fix 'sleep' definition.
* Fix liquid-flow protection when no user data is found.
* Fix claim inspection visuals on shift right-click.
* Fix redstone_ore not being lit for visuals.
* Fix trustgroupall not setting permissions.
* Fix child claims not moving to wilderness properly when resizing admin claims outside of child claim.
* Fix rent data not resetting properly on /claimrent cancel
* Fix wrong claimtransfer argument being used in lang.
* Fix /acb not finding offline players.
* Fix trust group inheritance.
* (Hybrid) Fix possible mod NPE during TileEntity registration.
* (Hybrid) Fix NPE in onBlockPlace.
* (Hybrid) Fix NPE during wilderness creation.
* Rewrite visual handling.
  - Async player visual support.
  - Stick functionality smooth as butter! Right/Left clicks enhanced for optimal show/hide of visuals.
  - Tracking system to keep track of which visual blocks have been sent to players to avoid sending duplicate packets hurting network performance.
  - Proper locality on point click of visual meaning it will use the configured radius and only show blocks within. Supports cuboids too.
  - New option 'inspect-radius' which controls the radius on claim inspections centered around player.
  - New option 'inspect-max-distance' which controls the max distance of inspect tool (default stick) to check for claims.
  - Improved underwater visual handling.
  - Improve claim error visuals.
* Refactor GD's GUI for 2.0.
  Note: The /gd command launches the new GUI.
* Improve rent system.
  - Rewrite Rent GUI.
  - Set min/max defaults to 1.
  - Wipe NBT on rent start to avoid duping and restore on rental end. (Note: This requires MC 1.13+ with latest WE)
* Improve flag definition system.
  - Flag definitions now support one or more preset files. When GD detects 2+ preset files, the GUI will have you select which one to load then display its data.
  - Minecraft flag definitions for vanilla have been moved to ./presets/minecraft.conf.
  - The flags.conf file now only contains flag configuration.
  - All flag definitions can now be applied to non-trusted, trusted, or owners.
  - Each preset flag definition config must include a corresponding lang file.
    - These lang files must be stored under '.\lang\presets\<name>\<lang>.conf'
    - For ex. The minecraft lang is located in '.\lang\presets\minecraft\en_US.conf'
* Add '/claimflagdefinition' command to set/unset flag definitions.
* Add database support for MySQL, MariaDB, PostgreSQL, and SQLite.
  - Add support for file migration to database
    - To migrate existing file claim data to database do the following
    - * Launch GriefDefender once to generate new migrator setting in global.conf.
    - * Set 'griefdefender-file-to-database' to true.
    - * Configure database settings under database category in global.conf
    - * Storage method must be set to 'hocon' in order for all existing claim files to load on startup.
    - * Start server and GD should automatically migrate each claim to database as it loads.
  - To setup GD for a new database do the following :
    - * Configure database settings in global.conf
    - * Set the storage method to any valid db type : mysql, sqlite, postgresql, or mariadb
    - * Launch server and GD should automatically create and populate database.
* Add new feature 'ClaimGroup' to allow users to share flag permission and option data with 2 or more claims.
  - There are two types of claim groups : ADMIN and USER
  - ADMIN claim groups are tied to admins.
  - USER claim groups are tied to each player.
  - For example, if you have 10 shop claims that use the same permissions you can join them all to the same claimgroup to share data.
  - Note: Joining a claim to a claimgroup does not wipe out claim permission or option data.
  - Note: Unjoining a claim from a claimgroup will revert back to the claim specific permission data.
* Add new feature 'ClaimSnapshot' to allow users to backup all relevant claim data in a claim.
  - There are 4 types of ClaimSnapshot groups : Claim, User, Public, and Admin
  - CLAIM snapshots are bound to the claim snapshot was created in.
  - USER snapshots are bound to the player to use on any claim they own.
  - PUBLIC snapshots are bound to all players who have permission to view them.
  - ADMIN snapshots are bound to admins to apply to any claim.
* Add new command '/claimid' to allow users to set friendly unique identifiers to manage their claims.
  - Claim identifiers are unique per player.
  - Claim identifiers can be passed on the end of most commands to avoid the requirement of being inside the claim.
  - For example, to abandon a claim with an id of 'shop1' you would enter the command '/abandonclaim shop1'
* Add cache for player claims to avoid constant lookups.
* Add PlayerTakeLecternBookEvent support for MC versions 1.14.4+.
* Add /claimcreate chunk support to create a claim in the chunk you are in.
Note: This is also supported in GUI. Use Claim -> Create
* Add wildcard support to flag definitions.
Note: The wildcard '?' represents a single character."
Note: The wildcard '*' represents zero or more characters."
* Add translation support for main menu.
* Add title support to /claiminfo menu.
* Add RGB support. Use the format '&#FFFFFF'
* Add support for changing error visuals.
* Add max-claimable-blocks option to control how many blocks a player can claim.
* Add translation support for advanced flag GUI and option GUI.
* Add world border protection.
* Add bonemeal protection.
* Add 'locale-unicode-fix' to message config to allow certain languages such as pl_PL and ru_RU to disable for proper Chat GUI display. If you experience misalignment with GD's chat GUI, disable this setting.
* Add new optimization category to improve performance.
  Note: If you require controlling specific protection that optimizations are ignoring, disable the setting.
* Add RedProtect migrator.
* Add translation support for all remaining text in GUI.
* Add console support for many commands.
* Add tab completion support for most commands.
* Add MC 1.17+ support.
* Add JDK 16+ support.
* Greatly improve visual functionality and handling with stick.
* Improve default enter claim player messages to be sent to chat, actionbar, or titles. The default is now actionbar.
* Generate Chat GUI components async. This should provide a nice perf boost when players are using GUI.
* Move block-trampling to admin as override.
* Move world/block details in /claiminfo menu to new details page.
* Change subdivisions to basic if moved out of admin claim to wilderness.
* Change fire-spread to user default context so owners can alter as they wish.
* Change [x] to [-] in GUI for consistency.
* Change OWNER flag definition toggle to include trusted users.
  Note: Toggling flags in OWNER within admin claim will set flags in user _GDAdmin_
  Note: Toggling flags in OWNER within wilderness claim will set flags in user _GDWorld_
* Remove underline from page next/prev to avoid clashing with text.
* Rename RECORD-CHAT to DO-NOT-DISTURB
* Rename '/giveblocks' command to '/transferblocks'
* Rename '/claimname' command to '/claimdisplayname'
* Rename placeholder `griefdefender_blocks_accrued
* Add new placeholder `%griefdefender_player_claims_total%` to return the total amount of claims owned by player.
* Append `player_` to current player block placeholders. See https://github.com/bloodmc/GriefDefender/wiki/PlaceholderAPI for changes.
* Relocate flow math dependency to avoid conflicts with plugins such as BlueMap.
* Relocate typetoken dependency to avoid conflicts with plugins.
* Clean up /claimlist output for owners.
* Ignore owner during entity boss explosions.
* Ignore pvp combat teleport check if teleport cause is plugin.
* (Optimization) Ignore bat entity damage caused by lava.
 
Note: As there have been substantial changes between GD 1.X and 2.X, some changes may be missed.
----------, Jul 25, 2021

IMPORTANT:
Due to recent 1.5.x changes, you will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang and ./plugin/GriefDefender/lib
  • On sponge, delete ./config/GriefDefender/lang and ./config/GriefDefender/lib
The flags.conf will have to be deleted or modified to account for new flag definitions from recent 1.5.x changes.

Note: As this update contains many bug fixes and improvements, it is recommended to take a full backup of LuckPerms and GriefDefender data.
Note: Due to a LP group trust fix, all existing LP group permissions that start with 'griefdefender.trust' will need to append '.*' to end of it. Previously, trusting a LP group would not trust in lower trust levels. For example, if you trusted a group called 'member' with the builder level then the permission would exist as 'griefdefender.1.2'. This permission would need to change to 'griefdefender.1.2.*'
You can also untrust then re-trust the group in claims affected to fix issue.
Note: If you are using a custom plugin that uses GD's API, it will have to be rebuilt with kyori event libs relocated.
The following kyori libs should be added to dependencies in build.gradle
Code (Text):

compileOnly "net.kyori:event-api:3.0.0"
compileOnly "net.kyori:event-method:3.0.0"
compileOnly "net.kyori:event-method-asm:3.0.0"
 
Then you must add the relocate lines within the shadow task
Code (Text):

relocate("net.kyori", "com.griefdefender.lib.kyori")
 


Performance Improvements

Bukkit servers should see a noticeable improvement in overall GD performance. GD's tracker has undergone many optimizations to improve performance.


Config Improvement

GriefDefender world configuration files will no longer automatically remove duplicate settings that exist in global config. Any settings admins place in these files will persist as expected.


Hybrid Update

Tracking has been improved for mods on hybrid servers. TileEntities will now be tracked on tick and should show up in GD's debug. Fakeplayers should no longer show up as unknown. Block place and break logic has been improved to better support fakeplayers.


Italian Translation

Italian is now supported for translations. Big thanks to Fabrimat for providing it.

Changelog

Code (Text):

* Fix 3D claims not checking claim blocks during resize.
* Fix group trust permissions not being set/checked properly.
* Fix unloaded users showing up with their UUID in LuckPerms editor.
* Fix cleanup task not checking expiration for small basic claims.
* Fix 'commandblock-place' flag definition.
* Fix active contexts sometimes using cached gd_claim context caused by LP race condition.
* Fix gd_claim_override persisted permissions being removed from griefdefender_definition group on startup.
* Fix missing 'claim-name' entry in en_US lang.
* Fix override permission lookups not checking transient data.
Note: As flag definition defaults are now stored as transient, overrides must check transient data along with persistent.
* Fix accrued blocks being set to max when player exceeded max accrued blocks.
* Fix entity-damage flag not being checked when pvp module is disabled.
* Fix chorus-fruit-teleport flag definition using wrong flag.
* Fix auto-schematic-restore not working when claims expire or /gd abandon all is used.
* Fix non-chest claims expiring when within auto-chest creation size.
* Mark claims auto-created by chests.
* Remove gd_claim_override persisted permissions from group 'griefdefender_definition' that are not single claim overrides.
* Improve player interact event handling.
* Improve player teleport/login handlers for performance.
* Improve tracker performance.
   - Move all block physics event handling to one handler.
   - Remove unnecessary block state lookups for observers.
   - Ignore wilderness tracking.
Note: This should provide a major boost to GD's BlockPhysicsEvent timings.
* Improve permission lookup performance.
* Don't load tracking data on chunk load.
Note: Tracking data will now only be loaded when requested.
* Reduce amount of object churn during claim lookups.
* Add claim creation settings to config.
Note: This allows you to control if a claim is expirable, resizable, shows deny messages, inherits parent, or requires claim blocks.
* Add support for hot plugin reload.
Note: This has only been tested with PlugMan.
* Clear transient permissions on reload.
* Add 'trustallgroupadmin' and 'untrustallgroupadmin' to trust/untrust all admin claims.
* Add missing flag disable checks in event listeners.
* Add missing blacklist checks to many events.
* Add italian translation.
Note: Big thanks to Fabrimat for providing translations.
* Add support for RevoltCrates
* Add Bluemap integration.
* Add last active permission node griefdefender.user.command.info.others.last-active for PlayerInfo.
* Automatically adjust GD default group priority on startup/reload.
Note: To control priority for GD groups, alter settings in permission group category within global config.
* Cancel PlayerInteractEvent after modification tool usage (golden shovel).
* Update to Configurate 4.0.0
* Implement configurate node visitor to maintain any user changes to children world/dimension configs.
* Rewrite getSafeLocation to improve /trapped usage and prevent WorldBorder issues.
* Automatically populate GriefDefender node in world/dimension configs if it does not exist.
* Force /buyclaimblocks, /giveblocks , and /sellclaimblocks on main thread to fix wrong result message.
Note: Chest expiration option will now only affect auto-created chest claims.
* Check trust during enter/exit flag checks.
* Clear transient options on reload.
* Only allow auto-chest-claim radius to be 1 or greater. A value of 0 will now disable auto-chest-claim creation.
* Cleanup auto-chest creation code.
* Cleanup permission removal for untrust commands.
* Allow /ignoreclaims to damage protected animals.
* Updated ASM dependencies to version 9.1.
* Update jar relocator to 1.4.
* (Hybrid) Improve user detection during block break and place caused by a fake player.
* (Hybrid) Fix unknown username with fakeplayer.
* (Hybrid) Add new context 'source=#fakeplayer' during fakeplayer actions.
* (Hybrid) Add TileEntity tick tracking during block place/break for hybrid servers.
* (Bukkit) Fix group trust not applying proper permission in LuckPerms.
* (Bukkit) Add workaround for Geyser ASM conflict on startup.
* (Bukkit) GP Bukkit migrator.
    - Add new setting 'classic-playerdata-threshold' to control whether to migrate GP playerdata based on last active date. (Default: 180 days)
    - Ignore migrating playerdata with no known bukkit playerdata.
Note: This will avoid adding LP user data for inactive users.
* (Sponge) Fix entities spawned by players triggering player move logic.
 
----------, May 18, 2021

IMPORTANT:
Due to recent 1.5.x changes, you will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
The flags.conf will have to be deleted or modified to account for new flag definitions from recent 1.5.x changes.

Note: If you are on 1.5.9, no changes are needed.

This is a stability update addressing various bugs and adding a few QoL additions.


Hybrid Improvements

  • Fix mohist EntityType mod registration.
  • Add TE NBT id support for mods such as gregtech. See new setting 'tile-id-nbt-map' under mod category in global.conf

Player command option Improvements

  • Commands no longer will run when changing between sub/parent claims
  • Added claim option GUI support.
  • Added WorldEdit command support.
  • Added support for teleport commands.
  • Fixed commands being executed on wrong claim.

Simplified Chinese Language

Thanks to ahdg6 for contributing Simplified Chinese language support (zh_CN).



Changelog

Code (Text):

* Fix ClaimBlockTask prematurely exiting if a player had max claim blocks.
* Fix TaxApplyTask not pulling funds from claim bank first.
* Fix ClaimContextCalculator overwriting option claim contexts.
* Fix player option commands running during a command causing a loop.
* Fix player-command-enter running command from subclaim.
* Fix player-command-exit running command to subclaim.
* Fix player contexts not being added in all cases where a player is involved.
* Fix flag definitions not accepting any context.
* Fix elytra enter-claim bypass.
* Fix configurate libs failing to download on startup.
* Add 'claim-create-radius-limit' to global config.
* Add Simplified Chinese language support (zh_CN).
* Add enter-claim flag permission check on player login.
* Add enter/exit-claim support for player respawns. If denied, GD will respawn player back in source claim in a safe location.
* Add TE NBT id support for mods such as gregtech.
* (Hybrid) Fix mohist EntityType mod registration.
* (Hybrid/Sponge) Add TE NBT id support for mods such as gregtech. See new setting 'tile-id-nbt-map' under mod category in global.conf
* (Sponge) Add 'interact-item-force-list' to global config. Used to force interact-item flag checks when a player left/right-clicks with an item in hand.
* (Sponge) Add check to prevent re-registration of worlds.
* (Sponge) Add workaround during collisions when user is wrapped in ProjectileSource.
* (Sponge) Add EntityThrowable support for getEntityOwner.
* (Sponge) Add method to get internal DamageSource type name.
* (Sponge) Fix NPE when cancelling claim with '/claimrent cancel'
* (Sponge) Fix wrong block being checked during bucket interactions such as lava and water.
* (Sponge) Fix block-pre not handing certain mod permission checks such as AE2 cables.
* (Sponge) Fix 'block-id-convert-list' feature not using correct id during player interactions.
* (Sponge) Fix item-pickup flag not checking trust.
 
----------, Jan 31, 2021

IMPORTANT:
Due to recent 1.5.x changes, you will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
The flags.conf will have to be deleted or modified to account for new flag definitions from recent 1.5.x changes.

This is a stability update addressing a few important issues and a few other minor changes.

Changelog

Code (Text):

* Fix playerdata getting wrong accrued claim block value if world context existed while in global mode.
* Fix Citizen NPC's being denied entry to claim when flag 'enter-claim' is false.
* Fix some zh_HK translations.
* Add 'claim-block-task' setting in global.conf to control whether block accrue task runs.
* Remove 'ForSale' click function in '/claiminfo' as it is no longer needed.
* (Sponge) Fix NPE in Nucleus listener.
* (Sponge) Fix rent sign interval.
* (Sponge) Fix compatibility with LittleTiles mod.
* (Sponge) Fix inability to disable modification/investigation tool in config.
 
----------, Jan 6, 2021

Just a small hotfix to fix timing NPE in EntityEventHandler that I forgot to add with 1.5.7 release.

Changelog

Code (Text):

* Fix timing NPE in EntityEventHandler.
* Add ru_RU translations for new flag definitions.
* (Sponge) Fix some more debug spam during block pre event.
 
----------, Jan 1, 2021

IMPORTANT:
Due to recent changes, you will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang
The flags.conf will have to be deleted or modified to account for new flag definitions below.


Vanilla compatibility enhancements/fixes

The following flag definitions have been added to flags.conf

  • animal-block-modify - Used to control whether animals can modify blocks (Default: true). Ex. Rabbit eating a carrot block.
  • ravager-block-break - Used to control whether ravagers can break blocks during raids (Default: true).
  • silverfish-block-infest - Used to control whether silverfish can infest blocks such as cobblestone (Default: false).
The following flag definitions have been fixed

  • enderman-grief
  • villager-trade
  • villager-farm

The following vanilla fix has been made

  • Untamed animals will no longer be denied when attacking eachother.



Changelog

Code (Text):

* Rewrite EntityChangeBlockEvent handling. Handler will now use the proper block flag when handling source/target block changes.
* Fix NPE during potion splash.
* Fix enderman-grief flag definition.
* Fix villager-trade flag definition.
* Fix villager-farm flag definition.
* Fix owner name showing for enter/exit prefix in wilderness/admin claims.
* Fix untamed animals being denied when attacking eachother.
* Add animal-block-modify flag definition.
* Add ravager-block-break flag definition.
* Add silverfish-block-infest flag definition.
* Add new visual config setting 'cuboid-level-visuals-2d' under visual category to control whether cuboid visuals should be show during inspection of 2d claims with owner min/max level between 0-255.
* (Sponge) Fix 'flowing_water' spam in gddebug.
* (Sponge) Add ice form/melt detection.
 
----------, Jan 1, 2021

IMPORTANT:
Due to recent changes, you will need to perform the following before starting server with new update

  • On bukkit, delete ./plugins/GriefDefender/lang
  • On sponge, delete ./config/GriefDefender/lang

This is a hotfix release for bukkit servers and adds a few additions.

See https://www.spigotmc.org/resources/1-8-8-1-16-4-griefdefender.68900/update?update=378395 for previous 1.5.5 changes.

Changelog

Code (Text):

* Fix timing NPE in onEntityDamage.
* Fix zh_HK translation not loading due to wrong file case.
* Add more translations for flag and option UI.
* Add new config setting 'claim-block-task-move-threshold' to control the mininum threshold of movement (in blocks) required to receive accrued claim blocks.
 
----------, Dec 31, 2020

IMPORTANT:
Due to recent changes, you will need to perform the following before starting server with new update

  • Delete ./plugins/GriefDefender/lang


The main highlights of this update are as follows

Hybrid Improvements

  • Greatly improved compatibility for Hybrid servers such as Mohist and Magma.
  • A new TileEntity registry was added to support mods such as IC2.
  • Mod entity types will now register properly.


Command Description Translations

Command descriptions will finally be translated to the appropriate language you have set on your server. To view command descriptions, use the command `/gd` then hover over each command for information.



Potion Effect/Enchantment contexts

To further improve protection, GD now supports potion effect and item enchantment contexts.

The new 'potion_effect' context will be automatically applied during permission checks if any potion effect is used.

Any item containing an enchantment, including books, will contain a new 'enchantment' and 'enchantment_data' context.

Note: Enchantments are disabled by default and will require the server admin to turn on 'enchantments' in global config under context category.



PlaceHolderAPI for Sponge servers

Sponge servers can now make use of all GD placeholders.

In order to enable this addition, you will need to grab the latest PlaceHolderAPI 4.5.1 which can be found here
https://github.com/randombyte-devel...ases/download/v4.5.1/PlaceholderAPI-4.5.1.jar



Nucleus v2 support for Sponge servers

Sponge servers can now use Nucleus v2 with GD 1.5.5.

Note: Nucleus v1 will also continue to work if you wish to stick with that.



Memory Improvement

Fixed a memory issue in GDCauseStackManager. Thanks to mikroskeem for discovering this bug.



zh_HK Translation

GD now supports zh_HK/TW translations. Thanks to himehina for the contribution!



Now for the changelog =)

Changelog

Code (Text):

* Add potion effects support.
* Add item enchantment support.
* Add pvp lookup methods for claim and playerdata.
* Add 'block-tileentity-id-list' used to override mod block id's that are used for many TE's.
  - Ex. IC2 uses a base block id 'ic2:te' for all TE's. When the id is detected during block/item usage, it will be converted to the actual id.
* Add TileEntity registry to better support hybrid servers.
* Add '/claiminfo' UUID click support to copy text to chat.
* Add support for overriding option 'player-command-exit/enter' on player.
* Add command description translation support.
* Add zh_HK language support.
* Fix event cause not clearing on push.
* Fix abandon claim within town returning funds to owner in economy mode.
* Fix player afk detection during claim block task.
* Fix async chunk load during visual revert.
* Fix advanced flag GUI toggle with definitions.
* Fix rent sign update not checking all children claims.
* Fix rent sign not being updated when cancelled via '/claimrent cancel'.
* Fix NPE when attempting to purchase an admin claim for sale.
* Fix command description translations.
* Fix isInvulnerable NPE on 1.8.8 servers.
* Fix '/abandonworld' exiting when no economy data found for player.
* Fix '/claimcontract' and '/claimexpand' NPE in economy mode.
* Fix '/claimsell' on admin claim.
* Fix '/deletealladmin' only deleting admin claims in current world when
passing no world argument.
* Fix '/gd claim we' command.
* Fix GD claim enter/exit prefix. The prefix will now use '[<playername>]'.
  Note: This can be configured in lang file under 'claim-prefix-enter' and 'claim-prefix-exit'
* Clean up advanced flag GUI code.
* Disable /buyblocks command when economy-block-cost is <= 0
* Deny town claim abandon if basic claims exist owned by owner.
* Allow to input string as option value.
* Improve pvp source contexts.
* Clean up '/acb' command code.
* (Bukkit) Add potion splash protection support.
* (Bukkit) Fix tamed entities being hit by projectiles.
* (Bukkit) Fix enderman block place protection.
* (Hybrid) Fix wrong EnumCreatureType being registered for entities.
* (Hybrid) Add TileEntity registry.
* (Hybrid) Add mod command support for 'command-execute' flag.
* (Sponge) Add PlaceHolderAPI support.
* (Sponge) Add Nucleus v2 support.
* (Sponge) Add IgniteEntityEvent support.
* (Sponge) Fix '/cpp' and '/cpg' command.
* (Sponge) Fix player block placement deny not sending message.
 
----------, Dec 28, 2020

Due to new language additions, please delete your lang folder to get the new entries.


The main highlights of this update are as follows

Trapped

The /trapped command will allow a player to teleport outside a random corner of claim if stuck.
The command can only be used if player does not have build permissions in claim where run.
Use setting 'player-trapped-cooldown' in 'global.conf' to configure the cooldown of this command. Default '300' seconds.
Use option 'player-teleport-delay' to add a delay when used.
Note: if a teleport delay is configured, the player must stand still or they will not be teleported.


UnlockDrops

The /unlockdrops command will allow a player to unlock their item drops after death when enabled.
There are 2 new options that have been added for this command
  • Use option 'player-item-drop-lock' to control item drop protection on death.
  • Use option 'pvp-item-drop-lock' to control item drop protection on pvp death.
These options are disabled by default. To enable, open 'options.conf' and enable them under 'option-control' section. Once they are enabled, you can configure them per user/group in LP.


Memory Improvements

One of our testers, MicleBrick, brought to our attention that there was excessive memory usage with GD's chunk objects. This would cause more than intended memory usage the more chunks that were loaded. I was able to identify the issue and optimized the data being stored in memory. Servers should see roughly 50% improvement in memory across the board from this change.


Upcoming Features/Improvements

The following is upcoming features/improvements that I expect to have in my next update
  • Claim Snapshot is a new system that will allow users to backup/restore claim data, trust, options, and permissions.
  • Rent has been overhauled to make use of the new claim snapshot system and will allow renters to trust and change flags of their claims.
  • Integrated SimpleClans support. Simpleclans is an excellent clan plugin allowing servers to engage in wars/pvp as a team.


Now for the changelog =)

Changelog

Code (Text):

* Fix GDChunk memory usage.
* Fix NPE when creating subdivision using WorldEdit.
* Fix NPE when executing '/claimrent info' in non-rented claims.
* Fix TrustClaimEvent Add/Remove events not triggering.
* Fix TransferClaimEvent not being cancellable.
* Fix WE CUI visuals not showing when calling visual apply.
* Fix visualization types not changing on setType call.
* Fix PvP option not working in claims.
* Fix player-deny-flight not resetting on teleport.
* Fix fire-spread flag definition for users.
* Fix resizing cuboids to 1 block high.
* Fix explosions not respecting inheritance.
* Fix world configs not using lowercase name on reload.
* Fix shovel resetting to basic on item change.
* Fix '/claimcreate' error message on invalid type.
* Add '/trapped' command to assist players when stuck.
  - Use setting 'player-trapped-cooldown' in 'global.conf' to configure the cooldown of this command. Default '300' seconds.
  - Use option 'player-teleport-delay' to add a delay when used.
* Add '/unlockdrops' command to unlock protected item drops after death.
  - Use option 'player-item-drop-lock' to control item drop protection on death.
  - Use option 'pvp-item-drop-lock' to control item drop protection on pvp death.
  Note: In order to use this feature, one of the item drop options must be enabled in 'options.conf'
* Add 'pvp_combat_active' placeholder.
* Add '%owneruuid%' support to DynmapProvider.
* Remove 'explosion-cancel-block-limit' as it breaks inheritance functionality.
* Remove 'player-deny-flight' option cache.
* Improve player afk location handling.
* Improve option config lookups.
* Verify chunk is loaded before sending block change to player.
* Players attacking within a protected claim with no longer be protected if in PvP combat.
* The 'pvp-combat-timeout' will now reset properly when engaging in PvP.
 
----------, Nov 23, 2020

This release adds support for MC 1.16.4, improves Slimefun compatibility and provides a few stability fixes.

Changelog

Code (Text):

* Add MC 1.16.4 support.
* Fix town creation cost in economy mode.
* Fix NPE during InventoryMoveItemEvent.
* Fix 'permission-build' es_ES translation.
* Fix slimefun item_name context.
* Check slimefun block storage during player interacts.
* Improve SlimefunProvider lookups.
* Don't check isInteractable for slimefun blocks.
 
----------, Nov 4, 2020

This release adds support for MC 1.16.3.

For previous changelog, see https://www.spigotmc.org/resources/1-8-8-1-16-2-griefdefender.68900/update?update=360289
----------, Sep 11, 2020

This is another stability update which fixes a critical bug with town creation , Flag GUI toggles, and more.

Changelog

Code (Text):

* Fixed missing initialization for startCorner/endCorner fields in ChangeClaimEvent.Resize.
* Fixed initialization of startCorner/endCorner in Claim#resize().
* Fix town creation over untrusted claims.
* Fix town children not transferring to new owner.
* Fix economy default option values.
* Fix flag definition GUI not checking definition permission group.
* Fix '/cpp' command applying permission to wrong user.
* Fix wrong command permission for /claimcontract.
* Fix wrong permission with cuboid subdivision creation.
* Revert WECUI visuals on logout.
* Update pl_PL translations.
* Update ru_RU translations.
 
----------, Sep 11, 2020

IMPORTANT: Due to recent changes, you will need to backup then delete the following :
  • ./plugins/GriefDefender/global.conf
  • ./plugins/GriefDefender/lang
  • ./plugins/GriefDefender/libs
This update finishes implementations of ALL options, adds LuckPerms v5 support, Multi-Server support for servers that share a LP database, and many quality of life improvements and bug fixes.


New player options

See https://github.com/bloodmc/GriefDefender/wiki/Advanced-Options

Code (Text):

'player-command-enter' - Handles executing commands when a player enters a claim.
  'player-command-exit' - Handles executing commands when a player exits a claim.
   Note: both command options support the following placeholders : %player%, %owner%, %uuid%, %world%, %server%, %location%

  'player-gamemode' - Used to determine the gamemode of a player when entering a claim.
  'player-deny-godmode' - Used to determine if a player can be in godmode when entering a claim.
  'player-walk-speed' - Controls the player walk speed when entering a claim.
  'player-weather' - Controls player local weather when entering a claim.
  'pvp-combat-command' - Used to determine if a player can use commands during PvP combat.
  'pvp-combat-teleport' - Used to determine if a player can teleport during PvP combat.
  'pvp-combat-timeout' - Used to determine how many seconds PvP combat is considered to continue after the most recent damage.
  'radius-inspect' - Controls the radius in blocks to search within when inspecting for claims.
  'spawn-limit' - Used to control the spawn limit for a specific set of entities in a claim.
 
Multi-Server Support

GriefDefender will now add a server context automatically if not set with a flag or option permission. This allows servers that share a permission database to not accidentally set permissions globally to all servers but only to the server they are on.

LuckPerms v5 Support

This version of GD now requires LP v5 in order to load correctly. You can find the latest LP version here https://luckperms.github.io/

Spanish Language Support

GriefDefender now comes with a new translation for es_ES to support Spanish servers. A big thanks to YoSuboDeToh for providing the translations.


Changelog


Code (Text):


Sponge/Bukkit

* Fix teleport cancelled message showing after successful teleport.
* Fix command-execute and command-execute-pvp flags.
* Fix NPE in entity move handler.
* Fix door spam allowing user access.
* Fix debug filter with usernames.
* Fix permission lookups for 'any'.
* Fix command overrides.
* Fix '/cfg' and '/cog' commands.
* Fix 'create-mode' not working as intended.
* Fix 'any' usage with flag commands.
* Fix 'command-execute' usage.
* Fix 'command-execute-pvp' usage.
* Fix option removal/save with LP v5.
* Fix missing options from claim tab.
* Fix '/claimlist' showing claims to non-trusted users.
* Fix setOptionValue return result.
* Fix wrong version in 'plugin.yml'.
* Force local weather change to player on toggle.
* Add server context support.
* Add context support for controlling user flag command usage.
* Add context support to option GUI.
* Add permission 'griefdefender.user.claim.command.flag.arg' which controls if a user can use flag command with arguments.
* Add permission 'griefdefender.user.claim.command.flag.gui' which controls if a user can use flag GUI.
* Add new group context '#all' which can be used to represent all sources or targets.
* Add check for max inspection distance.
* Add radius-inspect option to config.
* Add active contexts when checking permissions.
* Add server context to getPermissionValue calls.
* Remove 'max-claim-inspection-distance' from config as it is now controlled by 'radius-inspect' option.
* Remove 'combat-timeout' from config as it is now controlled by 'pvp-combat-timeout' option.
* Implement Flag Definition API.
* Implement the following new options
  'player-command-enter' - Handles executing commands when a player enters a claim.
  'player-command-exit' - Handles executing commands when a player exits a claim.
   Note: both command options support the following placeholders : %player%, %owner%, %uuid%, %world%, %server%, %location%

  'player-gamemode' - Used to determine the gamemode of a player when entering a claim.
  'player-deny-godmode' - Used to determine if a player can be in godmode when entering a claim.
  'player-walk-speed' - Controls the player walk speed when entering a claim.
  'player-weather' - Controls player local weather when entering a claim.
  'pvp-combat-command' - Used to determine if a player can use commands during PvP combat.
  'pvp-combat-teleport' - Used to determine if a player can teleport during PvP combat.
  'pvp-combat-timeout' - Used to determine how many seconds PvP combat is considered to continue after the most recent damage.
  'radius-inspect' - Controls the radius in blocks to search within when inspecting for claims.
  'spawn-limit' - Used to control the spawn limit for a specific set of entities in a claim.
* Only save once when toggling flag definitions that include multiple definitions.
* Update LuckPermsProvider to v5.
* Improve PvP handling.
* Improve de_DE translations.
* Allow DynmapProvider to hide claim's by UUID.
* Allow teleports to non-trusted if claim is for sale and they have
permission to teleport.
* Deny teleport to non-trusted users if no permission.
* Server contexts will be automatically added if not found on set.
* Flag definitions will automatically add a server context if none is
found on deserialization.
* Option and Flag GUI will fallback to no server context if none is
found.
* Validate claim type permissions when using '/claimcreate'.

Sponge Only
* Fix block place handler not checking all transactions.
* Fix claim create triggering twice in claim mode.
* Fix some issues with visuals while claiming.
* Fix '/cf' command when using modid:any.
* Add support for fake player interacts.
* Add support for living entity mod id context groups.
  Examples are as follows

  modid:#all - This would block all entities with modid.
  modid:#monster - This would block all monsters with modid.
  modid:#animal - This would block all animals with modid.

These can be used in either source or target contexts.

* Improve sponge playerdata migration.
 
----------, Jan 4, 2020

IMPORTANT: Due to recent changes, you will need to backup then delete the following :
  • ./plugins/GriefDefender/global.conf
  • ./plugins/GriefDefender/lang
  • ./plugins/GriefDefender/libs

This update adds MC 1.15, Dynmap, PlaceholderAPI and de_DE language support along with new features and bug/stability fixes.

PlaceholderAPI Support

GriefDefender now provides its own placeholders.
See https://github.com/bloodmc/GriefDefender/wiki/PlaceholderAPI

Dynmap Support

GriefDefender now supports Dynmap!

See https://github.com/bloodmc/GriefDefender/wiki/Dynmap

Claim Create

Players can now create claims around them.

/claimcreate <radius> [type]

Ex. /claimcreate 5 basic - This would create a basic claim with a radius of 5 around player.


Claim Contract/Expand

Both /claimcontract and /claimexpand now support a new parameter all
which will use all directions.

Ex. /claimexpand 5 all would expand claim by 5 blocks in all directions


German Language Support

GriefDefender now comes with a new translation for de_DE to support German. A big thanks to DrWurzeli for providing the translations.


Changelog


Code (Text):

* Fix funds not being returned after claim create failure in economy mode. * Fix '/gd option claim' command with global options such as 'economy-block-cost'. * Remove item frame defaults.
* Fix automatic schematic restore on claim expiration cleanup.
* Fix schematics not loading on startup.
* Fix /claimcreate not checking min/max size.
* Fix /buyblocks command adding to accrued instead of bonus blocks.
* Fix /giveblocks message not using proper player name.
* Fixed world permission checks.
* Fix /claimexpand and /claimcontract up and down directions.
* Fix create claim location cache not clearing properly on delete.
* Fix being unable to interact with doors with access trust if holding an item.
* Fix getAllPlayerClaims not accounting for global playerdata.
* Add confirmation to /cfr command
* Add /claimcreate <radius> [type] command. Used to create a claim around player.
  Ex. /claimcreate 5 basic
* Add support for all directions in commands /claimexpand and /claimcontract
  Ex. /claimexpand 5 all would expand claim by 5 blocks in all directions.
* Add support to visualize claims, using left-click, during claim creation.
* Add teleport support for BorderClaimEvent.
* Add PlaceholderAPI support.
  See https://github.com/bloodmc/GriefDefender/wiki/PlaceholderAPI
* Add Dynmap support.
  See https://github.com/bloodmc/GriefDefender/wiki/Dynmap
* Add support for Java 13.
* Add MC 1.15 support.
* Move visual revert and claim creation cancel to shift right-click. Note: With this change, visuals will no longer revert on left-click and/or item change.
* Force save after claim migration.
* Avoid migrating empty claim files during GP migration.
 
----------, Dec 11, 2019

IMPORTANT: Due to recent changes, you will need to backup then delete the following :
  • ./plugins/GriefDefender/global.conf
  • ./plugins/GriefDefender/lang
This will allow the new version of GD to regenerate these files with the latest changes.

Note: I hope to improve this in future so you do not need to reset these files whenever they are changed.


This update focuses on stability and quality of life improvements.

Claim Mode

Claim mode is a new feature that removes the need of requiring tools(such as the golden shovel and stick) for claiming and inspecting land. In 1.2.2, players no longer require items and can simply toggle into claim mode by typing /claim. Once in this mode, the player will be able to do the following

  • Left-click will inspect land.
  • Right-click will claim land.
When finished, the player simply enters /claim again to disable it.


Claim Contract/Expand

Players no longer need to use a shovel to contract or expand their land.

To expand a claim, a player can enter the following

/claimexpand block_amount [direction]

For example, to expand a claim 5 blocks where you are facing

/claimexpand 5

The same would apply for /claimcontract.




Changelog


Code (Text):

* Fix active pages with flag preset menu.
* Fix claim inheritance.
* Fix getPermissionValue not continuing after matching contexts.
* Fix messages being sent to players during entity attacks.
* Fix item frame protection.
* Fix safe teleport being used for /claimspawn (temp fix)
* Fix safe teleport ending above nether.
* Fix PvP toggle not showing proper default value in /claiminfo.
* Fix a few issues with option GUI.
* Fix flags being reset on claim deletion.
* Fix user claim flag permission check.
* Fix sign interaction not using proper flag 'interact-block-secondary'.
* Fix '/claimexpand' and '/claimcontract' tab completion.
* Fix 'entity-damage' flag attempting to protect dropped items.
* Fix 'player-keep-inventory' not clearing drops on death.
* Fix 'player-keep-level' not clearing XP drops on death.
* Fix EntityChangeBlockEvent using wrong source location.
* Fix claim create mode triggering twice on first right-click.
* Fix default/override claim types not showing up properly in Flag GUI.
* Fix entity-damage flag not using proper user on left-click.
* Fix abandon-delay default value.
* Fix inspection tool interact on right-click when targetting a block.
* Fix custom flags being applied twice.
* Fix entity type NPE.
* Fix /claimlist user trust.
* Fix /claimlist usage with player name.
* Fix LP provider hasPermission check.
* Fix item frame transient defaults in wilderness.
* Add /claimexpand <amount> [direction] and /claimcontract <amount> [direction] to resize claims without shovel.
* Add support for VehicleMoveEvent.
* Add support for setting no modification/investigation tool in config.
* Add '/claim', '/gd mode claim' command to toggle a new claim mode for inspecting and claim creation.
* Add 'combat-timeout' pvp setting to config to control how long a player stays in pvp combat after an attack.
* Don't listen to InventoryOpenEvent. Handle inventory via interacts instead.
* Reset claim visuals on resize.
* Remove 'gd_claim_type' context as it is no longer needed.
* Remove ability to resize claims when auto-schematic-restore is enabled.
* Implement 'abandon-delay' option.
* Implement 'player-teleport-delay' option.
* Implement 'pvp' option.
  - When a player attempts to attack another player, both players must have pvp allowed.
  If 1 player is not allowed to PvP, the attack will be cancelled.
* Improve '/claimlist' command.
  - Only trusted claims will be shown to users.
  - Admins can use '/ignoreclaims' to see all claims.
  - Fixed server crash if too many claims were listed.
  - Fixed subdivision filter.
* Improve '/claimspawn' command.
  - The command now takes the following arguments  '/claimspawn [name] [player]'
  Ex. If you want to spawn in a claim that you own named 'lair', you would enter '/claimspawn lair'
  Ex. If you want to spawn in a claim owned by 'Mike' named 'stables', you would enter '/claimspawn stables mike'
* Improve flag definition defaults.
* Improve flag default configuration.
 
----------, Oct 10, 2019

This is a hotfix update to address an explosion NPE as well as safe teleport to claims.
----------, Aug 25, 2019

IMPORTANT: Due to the massive amount of changes between 1.1.0 and 1.2.0, you will need to backup then delete the following :
  • ./plugins/GriefDefender/global.conf
  • ./plugins/GriefDefender/lang
This will allow the new version of GD to regenerate these files with the latest changes.

Custom Flag System

This update brings forth a brand new feature that I'm sure will make many administrators excited : The Custom Flag System.

This system allows you to create custom flag groups along with definitions that GD will use to generate a GUI for your users and staff.

GD 1.2.0 ships with 2 delivered flag groups to help administrators get started. Below is an example of the config that will be generated.

Code (Text):
   
# Used to define a group of custom flags for players/admins.
    # Each group defined will be displayed in the flag GUI for users.
    # Groups can have the following settings :
    #    enabled=<true|false>: Whether the group is enabled.
    #    admin-group=<true|false>: Whether this group is considered for admin use only.
    #    hover=<text>: The hover text to be displayed when hovering over group name in GUI.
    #    title=<text>: The title text to be used for TAB display.
    #    value=<true|false>: This is used to set a default value for the flag definition. It is only used in conjunction with 'override=<type>, default=<type> settings.
    #    contexts=["key=value"]: A list of optional definition contexts that will be applied to all permissions.
    # Note: This is primary used with 'default' and 'override' contexts. Ex. contexts=["default=global"]
    # Each group will have an associated permission in order to be viewable.
    # The 'user' group will use the permission : 'griefdefender.custom.flag.group.user'
    # The 'admin' group will use the permission : 'griefdefender.custom.flag.group.admin'
    # Within each group, you can define flag definitions.
    # Each flag definition must be defined in the following format:
    # enabled: Controls whether the definition is enabled. Accepts a value of 'true' or 'false'
    # description: The flag description to display on hover. Uses the legacy text format.
    # permissions: The list of permissions to link to definition. Each permission accepts the following contexts :
    #    flag=<linked-flag>: This context is used to link the permission to a GD specific flag. Ex. 'flag=block-break' would link permission to GD's block-break flag
    #    source=<id>: This context is used to specify a source id such as 'minecraft:creeper'.
    #    target=<id>: This context is used to specify a target id such as 'minecraft:chest'.
    #    state=<properties>: This context is used to specify a blockstate property such as 'state=lit:true'.
    # Note: Required if no source or target context is specified, the permission will default to ALL.
    # Note: Available contexts are : flag, source, target, state, used_item, item_name
    # These contexts may change, See https://github.com/bloodmc/GriefDefender/wiki for latest information.
    custom-flags {
        groups {
            admin {
                # Set to true if this flag group is for admin use only.
                # Note: If admin group, the permission is 'griefdefender.admin.custom.flag.<groupname>
                # Note: If user group (admin set false), the permission is 'griefdefender.user.custom.flag.<groupname>
                admin-group=true
                definitions {
                    block-break {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether blocks can be broken."
                        enabled=true
                        permissions=[
                            "flag=block-break"
                        ]
                    }
                    block-grow {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether blocks can grow."
                        enabled=true
                        permissions=[
                            "flag=block-grow"
                        ]
                    }
                    block-place {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether blocks can be placed."
                        enabled=true
                        permissions=[
                            "flag=block-place"
                        ]
                    }
                    block-spread {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether blocks can spread."
                        enabled=true
                        permissions=[
                            "flag=block-spread"
                        ]
                    }
                    enderpearl {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether enderpearl can be used."
                        enabled=true
                        permissions=[
                            "flag=interact-item-secondary, source=minecraft:enderman"
                        ]
                    }
                    exp-drop {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether experience orbs can drop."
                        enabled=true
                        permissions=[
                            "flag=entity-spawn, target=minecraft:xp_orb"
                        ]
                    }
                    explosion-block {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether explosions affect blocks."
                        enabled=true
                        permissions=[
                            "flag=explosion-block"
                        ]
                    }
                    explosion-entity {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether explosions affect entities."
                        enabled=true
                        permissions=[
                            "flag=explosion-entity"
                        ]
                    }
                    fall-damage {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can take fall damage."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, target=minecraft:player, source=minecraft:fall"
                        ]
                    }
                    interact-block {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can interact with blocks.\n&bNote&f: This does not include inventory blocks such as chests."
                        enabled=true
                        permissions=[
                            "flag=interact-block-secondary, source=minecraft:player"
                        ]
                    }
                    interact-entity {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can interact with entities.\n&bNote&f: This does not include chest access with entities such as horses."
                        enabled=true
                        permissions=[
                            "flag=interact-entity-secondary, source=minecraft:player"
                        ]
                    }
                    interact-inventory {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can interact with inventory."
                        enabled=true
                        permissions=[
                            "flag=interact-inventory, source=minecraft:player"
                        ]
                    }
                    invincible {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players are invincible against damage."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, target=minecraft:player"
                        ]
                    }
                    item-drop {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can drop items."
                        enabled=true
                        permissions=[
                            "flag=item-drop, source=minecraft:player"
                        ]
                    }
                    item-pickup {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can pickup items."
                        enabled=true
                        permissions=[
                            "flag=item-pickup, source=minecraft:player"
                        ]
                    }
                    monster-damage {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether monsters can deal damage."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, source=#monster"
                        ]
                    }
                    pistons {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether pistons can be used."
                        enabled=true
                        permissions=[
                            "flag=interact-block-secondary, target=minecraft:piston"
                        ]
                    }
                    portal-use {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether portals can be used."
                        enabled=true
                        permissions=[
                            "flag=interact-block-secondary, target=#portal, source=minecraft:player"
                        ]
                    }
                    spawn-ambient {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether ambients, such as bats, can spawn."
                        enabled=true
                        permissions=[
                            "flag=entity-spawn, target=#ambient"
                        ]
                    }
                    spawn-animal {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether animals, such as cows and pigs, can spawn."
                        enabled=true
                        permissions=[
                            "flag=entity-spawn, target=#animal"
                        ]
                    }
                    spawn-aquatic {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether aquatics, such as squids and guardians, can spawn."
                        enabled=true
                        permissions=[
                            "flag=entity-spawn, target=#aquatic"
                        ]
                    }
                    spawn-monster {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether monsters, such as creepers and skeletons, can spawn."
                        enabled=true
                        permissions=[
                            "flag=entity-spawn, target=#monster"
                        ]
                    }
                    teleport-from {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can teleport from this claim."
                        enabled=true
                        permissions=[
                            "flag=entity-teleport-from, target=minecraft:player"
                        ]
                    }
                    teleport-to {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can teleport to this claim."
                        enabled=true
                        permissions=[
                            "flag=entity-teleport-to, target=minecraft:player"
                        ]
                    }
                    use {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether players can use non-inventory blocks in this claim."
                        enabled=true
                        permissions=[
                            "flag=interact-block-secondary, source=minecraft:player",
                            "flag=interact-entity-secondary, source=minecraft:player"
                        ]
                    }
                    vehicle-destroy {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether vehicles can be destroyed."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, target=#vehicle"
                        ]
                    }
                    wither-damage {
                        contexts=[
                            "gd_claim_default=global"
                        ]
                        description="Controls whether withers can do damage."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, source=minecraft:wither"
                        ]
                    }
                }
                enabled=true
                # The hover text to be displayed when hovering over group name in GUI.
                hover=""
                # The title text to be used for TAB display.
                title=""
            }
            user {
                # Set to true if this flag group is for admin use only.
                # Note: If admin group, the permission is 'griefdefender.admin.custom.flag.<groupname>
                # Note: If user group (admin set false), the permission is 'griefdefender.user.custom.flag.<groupname>
                admin-group=false
                definitions {
                    chest-access {
                        description="Controls whether a player can access chest inventories."
                        enabled=true
                        permissions=[
                            "flag=interact-block-secondary, target=minecraft:chest, source=minecraft:player",
                            "flag=interact-inventory, target=minecraft:chest, source=minecraft:player"
                        ]
                    }
                    chorus-fruit-teleport {
                        description="Controls whether a player can use chorus fruit to teleport."
                        enabled=true
                        permissions=[
                            "flag=interact-item-secondary, target=minecraft:chorus_fruit"
                        ]
                    }
                    crop-growth {
                        description="Controls whether crops can grow."
                        enabled=true
                        permissions=[
                            "flag=block-grow, target=#crop"
                        ]
                    }
                    damage-animals {
                        description="Controls whether animals can be damaged."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, target=#animal"
                        ]
                    }
                    enderman-grief {
                        description="Controls whether enderman can grief."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, source=minecraft:enderman"
                        ]
                    }
                    enter-player {
                        description="Controls whether a player can enter this claim."
                        enabled=true
                        permissions=[
                            "flag=enter-claim, source=minecraft:player"
                        ]
                    }
                    explosion-creeper {
                        description="Controls whether a creeper can explode."
                        enabled=true
                        permissions=[
                            "flag=explosion-block, source=minecraft:creeper",
                            "flag=explosion-entity, source=minecraft:creeper"
                        ]
                    }
                    explosion-tnt {
                        description="Controls whether tnt can explode."
                        enabled=true
                        permissions=[
                            "flag=explosion-block, source=minecraft:tnt",
                            "flag=explosion-entity, source=minecraft:tnt"
                        ]
                    }
                    fire-damage {
                        description="Controls whether fire can cause damage."
                        enabled=true
                        permissions=[
                            "flag=block-modify, source=minecraft:fire"
                        ]
                    }
                    fire-spread {
                        description="Controls whether fire can spread."
                        enabled=true
                        permissions=[
                            "flag=block-spread, source=minecraft:fire"
                        ]
                    }
                    grass-growth {
                        description="Controls whether grass can grow."
                        enabled=true
                        permissions=[
                            "flag=block-grow, target=minecraft:grass"
                        ]
                    }
                    ice-form {
                        description="Controls whether ice can form."
                        enabled=true
                        permissions=[
                            "flag=block-modify, target=minecraft:ice"
                        ]
                    }
                    ice-melt {
                        description="Controls whether ice can melt."
                        enabled=true
                        permissions=[
                            "flag=block-modify, target=minecraft:water"
                        ]
                    }
                    lava-flow {
                        description="Controls whether lava can flow."
                        enabled=true
                        permissions=[
                            "flag=liquid-flow, source=minecraft:flowing_lava"
                        ]
                    }
                    leaf-decay {
                        description="Controls whether leaves can decay."
                        enabled=true
                        permissions=[
                            "flag=leaf-decay"
                        ]
                    }
                    lighter {
                        description="Controls whether a player can use flint and steel."
                        enabled=true
                        permissions=[
                            "flag=interact-item-secondary, target=minecraft:flint_and_steel"
                        ]
                    }
                    lightning {
                        description="Controls whether lightning can cause harm."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, source=minecraft:lightning_bolt"
                        ]
                    }
                    mycelium-spread {
                        description="Controls whether mycelium can spread."
                        enabled=true
                        permissions=[
                            "flag=block-spread, target=minecraft:mycelium"
                        ]
                    }
                    pvp {
                        description="Controls whether PvP combat is allowed."
                        enabled=true
                        permissions=[
                            "flag=entity-damage, target=minecraft:player, source=minecraft:player"
                        ]
                    }
                    ride {
                        description="Controls whether vehicles(including animals) can be mounted."
                        enabled=true
                        permissions=[
                            "flag=entity-riding, target=#vehicle, source=minecraft:player"
                        ]
                    }
                    sleep {
                        description="Controls whether players can sleep in beds."
                        enabled=true
                        permissions=[
                            "flag=interact-block-secondary, target=minecraft:bed, source=minecraft:player"
                        ]
                    }
                    snow-fall {
                        description="Controls whether snow can fall."
                        enabled=true
                        permissions=[
                            "flag=block-place, target=minecraft:snow_layer"
                        ]
                    }
                    snow-melt {
                        description="Controls whether snow can melt."
                        enabled=true
                        permissions=[
                            "flag=block-break, target=minecraft:snow_layer"
                        ]
                    }
                    soil-dry {
                        description="Controls whether soil will dry."
                        enabled=true
                        permissions=[
                            "flag=block-modify, state=moisture:0"
                        ]
                    }
                    vehicle-place {
                        description="Controls whether vehicles(boats, minecarts, etc.) can be placed."
                        enabled=true
                        permissions=[
                            "flag=block-place, target=#vehicle"
                        ]
                    }
                    water-flow {
                        description="Controls whether water can flow."
                        enabled=true
                        permissions=[
                            "flag=liquid-flow, source=minecraft:flowing_water"
                        ]
                    }
                }
                enabled=true
                # The hover text to be displayed when hovering over group name in GUI.
                hover=""
                # The title text to be used for TAB display.
                title=""
            }
        }
    }
 

As shown in config, there are 2 groups defined : ADMIN and USER. When GD launches, the above configuration is read and generates a flag GUI with each group in its own tab. Here are some screenshots of how it looks in game.
Note: Everything you see is controlled by permissions.

[​IMG]

[​IMG]


And here is a screenshot showing the original GUI from 1.1.0 but redesigned for admins use only.

[​IMG]


As you can see from above, this is only the delivered setup. You have the ability to create whatever you want. The possibilities are endless once you learn how to configure flags for your players.


Economy Mode

For many servers that have used GriefPrevention in the past, it was very common to allow players to buy and sell blocks with currency using an economy plugin. While this is good in a sense that it gives value to claim blocks, it also requires you to have both systems to co-exist. The claim block system and an economy system.

With GriefDefender's economy mode, you can completely move to an economy based system for claiming. When a player creates a claim, they are presented with an amount as shown below

[​IMG]


[​IMG]


You also have the ability to keep claim block task accrual as an extra way for players to earn income. The only difference will be they earn currency rather than claim blocks.

The amount per block is controlled by the option 'economy-block-cost'. The sell return cost is controlled by option 'economy-block-sell-return'. Options (also known as meta) are stored with permissions and give you complete control of how you want them to be applied to users and groups.




Option System


The option system has been completely rehauled in 1.2.0. It now mimics the same permission lookups as flags to make things more consistent for administrators.

In previous versions, one big issue was not being able to apply options easily. To solve this issue, I have created a brand new option GUI for administrators to use. Below is a screenshot of how it looks

[​IMG]


Any option that represents a number can be toggled with the left and right arrows. Each arrow reduces or increases the amount by 1. Options without arrows are simply toggles.

For a full list of available options, see
https://github.com/bloodmc/GriefDef...efdefender/api/permission/option/Options.java



Ban System

You now have the ability to ban any item, block, or entity. The commands used are
  • '/claimban hand | <type> <target> <message>'
  • '/claimunban hand | <type> <target>'
Valid types are : item, block, and entity.
Message allows you to link a ban with a deny message to players. It supports minecraft's legacy text format.

If you are unsure what the id is for a specific item or block, you can use '/claimban hand' which will automatically resolve the registered id for item/block in hand.

A ban list command will be added in future update so for now you can only view current bans from config.

Here are 2 screenshots showing enderpearl being banned

[​IMG]

[​IMG]


Below is a sample config generate for bans

Code (Text):
    # Controls which item/block/entity id's are banned globally from all events.
    # Note: Id's support wildcards '?' and '*' by using Apache's wildcard matcher.
    # The wildcard '?' represents a single character.
    # The wildcard '*' represents zero or more characters.
    # For more information on usage, see https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FilenameUtils.html#wildcardMatch(java.lang.String,%20java.lang.String)
    bans {
        blocks {}
        entities {}
        items {
            "minecraft:ender_pearl"="&cEnderpearl usage has been banned on this server. Contact administrator for more info."
        }
    }


French Language Support

FR is now a supported language thanks to the contribution and dedicated hard work of Ark'I'Dian

[​IMG]


Russian Language Support

RU is now a supported language thanks to the contribution and dedicated hard work of Polyacov_Yury.

[​IMG]






Quality of Life Changes


All abandon and delete claim commands now have confirmations to prevent accidental removal of claims.

[​IMG]
[​IMG]


New /giveblocks command

[​IMG]


[​IMG]



1.14.x Raid support!


[​IMG]

Raids can also be controlled via the 'raid' option.

And much more....



Changelog


Now for the long list of changes....

Code (Text):
* Implement custom flag system to allow admins to create any flag they desire with contexts.
  See wiki for more info.
* Rewrite option and flag GUI's to be more user friendly.
* Refactor permission handling to support more permission plugins.
* Refactor permission lookups to use storage directly for better context handling
* Refactor option system to support generics.
* Add many new options.
See https://github.com/bloodmc/GriefDefenderAPI/blob/master/src/main/java/com/griefdefender/api/permission/option/Options.java

* Add new permission 'griefdefender.user.claim.option' to control what options user's can use
in their claims. Ex. If a user tries to use 'player-deny-fly', GD will check 'griefdefender.user.claim.option.player-deny-fly'
* Added the following permissions to allow admins to designate a player to manage options
'griefdefender.admin.claim.command.option.group.{type}'
'griefdefender.admin.claim.command.option.player.{type}'

* Add new claim restore setting 'auto-schematic-restore'.
This setting will allow servers to have newly created claims auto-generate a schematic.
When these claims expire, the auto-generated schematic will be used for restore.
Note: This setting is only designed for newly created worlds where players cannot build
in the wilderness. Use with caution and read comments carefully.

* Add new message setting 'enter-exit-chat-type'.
This setting is used to control the default chat type (Chat/ActionBar/Title) used when sending
enter/exit claim messages to players.
Note: This can be overridden by plugins.

* Add support for controlling raids. You can find the new toggle in /raid
* Add various GP command aliases to make it easier for users transitioning to GD
* Add confirmations for all claim delete commands.
* Add GPFlags migrator.
Note: When the GP Bukkit migrator is enabled, GD will automatically look for GPFlags data and migrate
with claim data.
* Add support for EntityCombustByBlockEvent, EntityCombustByEntityEvent, and EntityDamageByBlockEvent.
* Add EssentialsX hook to deny '/fly' command when 'player-deny-flight' is true for a user
* Add event result cache.
* Add contexts to hover in '/cf' command
* Add /givepet command
* Add confirmations to abandon and delete commands
* Add support for /sellblocks in economy mode
* Add new messages for economy mode
* Add explosion pre support.
* Add extra teleport check for claim corners.
* Add additional overlay/style for custom flags.
* Add javadocs for PermissionProvider.
* Add many improvements to custom flag GUI.
* Fix NPE during checkSizeLimits
* Fix interactions with custom inventories.
* Fix custom flags not showing up in '/cf' command.
* Fix interact-inventory denying action when interact-block-secondary is true
* Fix interact-inventory not checking entity ids.
* Fix shovel location being reset with insufficient blocks
* Fix GP Bukkit migrator not handling subdivisions properly.
* Fix 'block-break' flag being ignored in wilderness
* Fix invalid playerdata UUID files being loaded causing errors in console.
* Fix HashSet error in TaxApplyTask
* Fix 'command-execute' flag
* Fix PvP setting in /claiminfo.
* Fix claim overrides not checking default group.
* Fix various message issues
* Fix 'minecraft:air' showing up as used_item context.
* Fix EntityChangeBlockEvent user tracking.
* Fix abandonclaims not returning blocks to player.
* Fix players not being able to use pet inventories in other claims.
* Fix players being kicked when using gd callbacks.
* Fix '/cf' display issues
* Fix '/cf' mod id not being set properly with contexts
* Fix '/cf' item id context lookups
* Fix '/scb' command
* Fix '/gddebug' start/end time.
* Fix economy plugin detection
* Fix economy mode buy/sell not applying proper funds
* Fix ClaimBlocks task not depositing funds while in economy mode
* Fix user custom flag GUI init not showing USER group.
* Fix item frame protection during explosions.
* Fix entity-spawn not being triggered with slime splits.
* Fix 'SouthCorners' lang translation in /claiminfo.
* Fix 'explosion-entity' flag.
* Fix shovel visual not hitting leaves.
* Prevent /buyblocks working in economy mode
* Remove economy mode check from /scb and /acb
* Rewrite option and flag GUI's to be more user friendly.
* Improve PermissionHolderCache
* Refactor permission handling to support more permission plugins.
* Refactor permission lookups to use storage directly for better context handling
Note: '/lp verbose' will no longer be able to track GD flag lookups.
* Increase cache to 30min
* Change gddebug paste site to griefdefender.github.io


Well that about wraps it up for another major update. I hope you all enjoy it as much as I did developing it =)

Thanks again for the support!
----------, Aug 25, 2019

New Language System

IMPORTANT: The new language system is a major restructure of GD's messages and requires a manual step if you were running earlier versions. Before updating, move or delete the lang folder found under plugins/GriefDefender/lang. This will allow GD to regenerate a fresh lang file with latest changes. Failure to do this step will result in broken messages.

I spent a good amount of time refactoring all of GriefDefender's messages in order to support translations. Previously, many messages were not in the language files preventing them to be translated. With the latest changes, you now have the ability to modify any message that GriefDefender shows to a player including all commands and user interfaces.

Here is how the language file looked BEFORE my latest changes

https://gist.github.com/bloodmc/3833c0241ba432e1d7a11d1dfeaa2532

Here is the new language file with all remaining text in GriefDefender

https://gist.github.com/bloodmc/6e4bb53af108563bc0d7e0f4bd8d2166

As you can see the new file is much more readable and easier to translate.
Unfortunately, due to the massive restructuring of GriefDefender's message system, previous supported languages : de_DE, ru_RU, and zh_CN will need to be re-translated. Anyone who wants to assist with translating en_US to any other language can give me a PM to discuss.


Visual Update

In previous versions, there were various visual issues while creating claims and resizing. I am happy to say that all reported issues have been resolved. The bug fixes resolved are the following :

  • Fix start block visual disappearing when second block overlaps an existing claim.
  • Fix second block point on existing claim corner starting a resize.
  • Fix all active visuals disappearing when starting a resize.
  • Add config setting 'hide-wecui-drag-visuals-2d' to disable drag visuals while in 2D mode. (true by default)

The other issue was how the start create visual block would always be glowstone where in GriefPrevention, it would be diamond which players are used to. Not only is the visual block changed to diamond but I have went even further and moved ALL visual blocks used by GriefDefender to configs.

Here is the new visual section in config

Code (Text):
visual {
        # The visual accent block used for admin claims. (Default: minecraft:pumpkin)
        admin-accent-block="minecraft:pumpkin"
        # The visual corner block used for admin claims. (Default: minecraft:glowstone)
        admin-corner-block="minecraft:glowstone"
        # The visual filler block used for admin claims. (Default: minecraft:pumpkin)
        admin-filler-block="minecraft:pumpkin"
        # The visual accent block used for basic claims. (Default: minecraft:gold_block)
        basic-accent-block="minecraft:gold_block"
        # The visual corner block used for basic claims. (Default: minecraft:glowstone)
        basic-corner-block="minecraft:glowstone"
        # The visual filler block used for basic claims. (Default: minecraft:gold_block)
        basic-filler-block="minecraft:gold_block"
        # The visual block used during claim creation. (Default: minecraft:diamond_block)
        claim-create-block="minecraft:diamond_block"
        # The visual accent block used to visualize an error in a claim. (Default: minecraft:netherrack)
        error-accent-block="minecraft:netherrack"
        # The visual corner block used to visualize an error in a claim. (Default: minecraft:redstone_ore)
        error-corner-block="minecraft:redstone_ore"
        # The visual filler block used to visualize an error in a claim. (Default: minecraft:diamond_block)
        error-filler-block="minecraft:diamond_block"
        # Whether to hide the glowstone/gold block borders when using WECUI.
        hide-borders-when-using-wecui=false
        # Whether drag visuals should be shown while creating a claim in 2D mode.
        hide-wecui-drag-visuals-2d=true
        # The visual accent block used while in restore nature mode. (Default: minecraft:diamond_block)
        nature-accent-block="minecraft:diamond_block"
        # The visual corner block used while in restore nature mode. (Default: minecraft:diamond_block)
        nature-corner-block="minecraft:diamond_block"
        # The visual accent block used for subdivision claims. (Default: minecraft:white_wool or minecraft:wool for legacy versions)
        subdivision-accent-block="minecraft:white_wool"
        # The visual corner block used for subdivision claims. (Default: minecraft:iron_block)
        subdivision-corner-block="minecraft:iron_block"
        # The visual filler block used for subdivision claims. (Default: minecraft:white_wool or minecraft:wool for legacy versions)
        subdivision-filler-block="minecraft:white_wool"
        # The visual accent block used for town claims. (Default: minecraft:emerald_block)
        town-accent-block="minecraft:emerald_block"
        # The visual corner block used for town claims. (Default: minecraft:glowstone)
        town-corner-block="minecraft:glowstone"
        # The visual filler block used for town claims. (Default: minecraft:emerald_block)
        town-filler-block="minecraft:emerald_block"
    }
As you can see, the visual config will allow you to modify any visual block used in GriefDefender to a block of your liking. You can modify config settings on the fly by running the command /gdreload after change. This will reload ALL configuration.



Now for the rest of the changelog

  • Add WorldGuard migrator.
    Note: This does not support custom flags currently.
    Backup data including LuckPerms data before using.
    See https://github.com/bloodmc/GriefDefender/wiki/WorldGuard
  • Add JDK 11+ support.
  • Add command completion support.
  • Add support for all visual blocks to be changed in config.
  • Add support for migrating existing Sponge claim data.
  • Add missing CommandFlagReset registration.
  • Add missing contexts for global option lookups.
  • Add message cache for all messages that do not use parameters.
  • Add config setting 'hide-wecui-drag-visuals-2d' to disable drag visuals while in 2D mode. (true by default)
  • Fix accessor trust not affecting block collisions.
  • Fix accessor trust with non-inventory blocks.
  • Fix group trust.
  • Fix container trust
  • Fix start block visual disappearing when second block overlaps an existing claim.
  • Fix second block point on existing claim corner starting a resize.
  • Fix all active visuals disappearing when starting a resize.
  • Fix tools in config not supporting mod ids.
  • Fix lava placement bug.
  • Fix flag default tab permission.
  • Fix claim visuals not reverting properly.
  • Fix ClaimBlockTask distance world error.
  • Fix GD display version.
  • Fix public/admin usernames not displaying properly after restart.
  • Fix block collision debug spam.
  • Fix min/max claim size messages.
  • Fix /claiminfo displaying public and wilderness owner incorrectly.
  • Refactor option permission lookups.
  • Use non-async cache for PermissionHolder.
  • Ignore '_nextClaimID' file during GP Bukkit migration.
  • Improve item/block registry id lookups.
  • Update kyori text dependencies.
I hope you all enjoy this update as it took many long nights of work to get done. This will be the first major update of many =) Thanks for the support!
----------, Jul 31, 2019

  • Add 1.14.4 support
  • Add untrust commands
  • Add missing command permissions
  • Add missing id's to flag tab populate.
  • Add symlink support
  • Fix LP permanent node lookup.
  • Fix claim type registration
  • Fix claim type context not being passed in permission checks
  • Fix various issues with trust commands
  • Fix onBlockDispenseEvent not checking permissions
  • Fix GDOptionEvent
  • Fix WorldEditProvider min/max Y values
  • Fix getFacing returning null with legacy data.
  • Update /playerinfo command
  • Clear default permission cache on reload.
  • Remove /co alias as coreprotect uses it.
  • Remove 'block-grow' from being set to false by default
----------, Jul 24, 2019

Resource Information
Author:
----------
Total Downloads: 3,452
First Release: Jul 23, 2019
Last Update: Dec 5, 2024
Category: ---------------
All-Time Rating:
143 ratings
Find more info at www.griefdefender.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings