This update brings improvements to configuration, first batch of database optimizations as well as some much needed bugfixes. It took a while as more bugs kept popping up.
Special thanks to contributors and everyone who reported issues with the DEV releases. :)
- Configuration format has been cleaned up to reduce confusion. In order to keep old configs compatible, config patching was written. The new format should still hold the values of your old config after the first enable.
- Config values are now validated, and invalid values will error instead of silently failing.
- In order to make life easier for network owners, server configs will now be copied to /plugins/Plan/serverConfiguration.
Any change on the other side will update the config on the other side.
This is achieved via the database, so there is a slight delay on the updates. The “Server” section was removed from the main proxy config.
- Database structure was flattened to reduce the amount of JOINs needed. This will reduce CPU usage with a small disk space usage increase.
- Database indexes were created to optimize lookups in tables, which should improve query performance.
- There is now a “back” link on top right corner of /player and /server pages (on networks)
- JSON files can now be exported. Export config settings also provide more fine grain control.
- Added PlanEnableEvent that is called when Plan enables or reloads. Following events are available:
- Bukkit: PlanBukkitEnableEvent
- Sponge: PlanSpongeEnableEvent
- BungeeCord: PlanBungeeEnableEvent
- Velocity: PlanVelocityEnableEvent
- /player/name and /player/name/raw can now be accessed via /player/uuid and /player/uuid/raw
- PlanAPI#fetchFromPlanDB has been deprecated
- Player links are now opened in the current tab by default.
- Memory debug logging now based on Plugin.Debug setting - Now supports combined values eg “file, console, memory” for logging to all 3 possible places.
- A bug was present in 4.5.2 that caused default values not copying for some settings on new installs.
One of the settings was AFK Threshold, which meant that every session was being marked as 100% afk. The empty values will be correctly copied when this update has been installed.
- To make the data gathered with bad afk thershold viable, first enable will reset AFK time on sessions with 100% afk time to 0.
- @MicleBrick Fixed an error on enable if running Java 11 or newer
- Fixed SQLite patching on Spigot 1.13.2
- Fixed Geolocations: false resulting in an NPE
- Fixed an error being logged when /plan register was given bad arguments
- Fixed “Active Players might be running out of things to do” times being flipped
- Fixed ClosedByInterruptionException spam
- Fixed errors on server shutdown related to ShutdownHook
- Attempt to prevent NPE related to GriefPrevention
A lot of time was spent on writing tests that ensure smooth sailing between 4.5.2 and 4.6.0 update, including config patch tests as well as database patch tests for all databases.
Plan is now built using Gradle!