5.5 DEV build 1833
Pre-release
Pre-release
5.5 DEV build 1833
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 and Drex for contributions to this update
Untested features:
- Fabric join address gathering, unknown if new addresses are correct format.
Bugfixes from DEV build 1791
- Fabric
- Fabric 1.19.1 is now supported. Fabric 1.19 is no longer supported. Thanks Drex!
- Fabric now starts Plan webserver properly if HTTPS is enabled
- Fabric now gets HTTP/2 enabled since ALPN protocol provider is loaded properly
- 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.
- Velocity
- Velocity now starts properly with slf4j logger and all
- Bugfixes
- Jetty no longer holds the server hostage and shuts down properly on server shutdown
- 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)
- Other
- Increased default inactive player removal theshold 180 days -> 3650 days (10 years). This change is not applied automatically, only new configs.
- 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
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.
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)
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.
- Redprotect and Nucleus disabled temporarily as the extension code still needs to be updated to Sponge API 8
Build & Automation
- Restructured Github Actions builds to have less workflow files
- Automated Ore uploads
- 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