5.5 DEV build 1923 - Release Candidate
Pre-release
Pre-release
5.5 DEV build 1923 - Release Candidate
This update contains update to Java 11, Sponge API 8, Fabric 1.19.1, as well as Webserver rewrite to use Jetty. In addition new features such as Access logging & Swagger are available.
This version updates config so backup your config in case you need to revert back to 5.4!
Special thanks to Vankka, Kopo, Drex & stashenko for contributions to this update
Changes from DEV build 1833
- Frontend BETA
- Login page is now rewritten in React
- Server page is now rewritten in React
- Various improvements to night theming
- Animations when changing tabs
- Added missing locale keys to locale yml files
- Fixed player -> server page link
- Fixed logout button in the user menu
- Added 'Data_gathering.Preserve_join_address_case' setting (default false)
- Extensions
- Updated PlotSquared extension
- Updated Floodgate extension
- Updated Nucleus extension for Sponge 8
- Removed RedProtect support from Sponge (No longer supported in Sponge 8)
- RU locale was updated by stashenko
- Possibly fixed an issue where Quit event is processed before Join, leading to long incorrect sessions being stored on next join/shutdown
- Fixed gzip compression (Faster request loading times)
- Improvements to startup error messages
- Invalid certificates now error and don't start https instead of failing silently
- Failing to bind port/address has help
- MySQL connection error has help
- Reduced "database is closed" errors
- Added /plan db migrate_to_online_uuids command to help migrating from an offline server to online one
- Moves data of offline uuids to online uuids (Looks up online uuid from Mojang)
- Combines data of offline uuids and online uuids if both exist
Change Log
Java 11
- Plan now requires Java 11 or newer to run. This version is required for Sponge API 8, Jetty and other dependency updates.
- Java 8 is no longer supported. If you are unable to update, you can continue using 5.4 build 1722 even if connected to same database.
- Plan API jar is still compiled with Java 8 to provide backwards compatibility for other plugins, so the use of Plan API doesn't force you to update your plugin to need Java 11.
Sponge API 8
- Vankka implemented Sponge API 8 changes. Sponge API 7 is no longer supported. If you are unable to update, you can continue using 5.4 build 1722 even if connected to same database.
Fabric
- Drex implemented support for Fabric 1.19.1
- Fabric should now gather join addresses correctly. Previously player IPs were gathered by mistake. To clear the invalid data use
/plan db removejoinaddresses {servername}
once you install the plugin.
Jetty Webserver
- Replaced Sun Webserver with Jetty (https://www.eclipse.org/jetty/), an open source embedded webserver library.
- Plan now supports HTTP/2
- Plan now supports TLSv1.3 for HTTPS, and browsers have a larger selection of cipher suites they can use.
- Users of PlanCert.jks (Included in the jar) are encouraged to create their own self signed cert. I had to implement some extra code to support expired certificate (Since PlanCert.jks inside the jar has expired), and that may not be as secure as creating a new self-signed .p12 - Instructions will be added to the wiki, but the plugin also logs the instructions if you use that cert.
- Fixed gzip compression for responses (speeds up transmission)
Access log
Access logs are now stored in Plan database in plan_access_log table.
- You can also log access to console with
Webserver.Security.Access_log.Print_to_console
(default false) in the config. This is useful for debugging reverse-proxy issues. - The IP of each request is stored in the database - as it is necessary for security (a valid legal basis for use with GDPR).
- The request logs in database are removed after
Webserver.Security.Access_log.Remove_logs_after_days
(default 30)
Frontend BETA
- Rewrote /login page in React
- Rewrote /server page in React
- Fixed various issues and cleaned up overall appearance
Swagger
Plan json endpoints are now documented with Swagger available on the webserver itself. You can access the Swagger documentation from /docs
on your Plan webserver after updating.
Removal of some deprecated internal code
- Removed ServerKeys, some PlayerKeys fields as well as PlayerDeath class. This code has been deprecated since 5.0.
Commands and permissions
- Added
plan.command
permission (default: true) on Spigot servers to allow hiding /plan command from tab completion by negating this permission
Config
- Config structure was modified to be valid yaml so that other programs can validate it. The structure is updated automatically with same values for old versions of the config.
- Increased default inactive player removal theshold 180 days -> 3650 days (10 years). This change is not applied automatically, only new configs.
Extensions
- Plugin method calls should no longer be made during Plan disable.
- Updated PlotSquared extension
- Updated Floodgate extension
- Updated Nucleus extension for Sponge 8
- Removed RedProtect support from Sponge (No longer supported in Sponge 8)
Locale
- stashenko updated RU locale
Build & Automation
- Restructured Github Actions builds to have less workflow files
- Dev builds for every commit is now available DEV build pipeline (Click on title and scroll down to Artifacts)
- Automated version.txt update on release (The file which Plan reads for update information)
- Restructured gradle configurations to better utilize shadowJar and reduce amount of code IntelliJ IDEA needs to index after each build.
Other
- Fixed lag caused by large tab completion results if server had a lot of players and someone tab completed
/plan player
. - Fixed empty cookies preventing Plan login due to error
- Updated geoip2, caffeine & HikariCP to versions that needed Java 11
- Reduced maximum join address length to 191 characters due to limitation of old MySQL versions
- Added primary keys to all database tables (Fix not applied retroactively, since this is to allow installing on servers where MySQL mandates primary keys for all tables)
- Added log message about HTTPS certificate expiry date, and warning if it is less than 7 days from now
- Reworked player join and leave event handling to reduce duplicate code