Major 2.0 Update! - 1.17, JDK 16+, Database, Titles, Actionbars, Interactive menu, and much more!
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
- 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.
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
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.