5.5 build 1951 - Change log
This release contains update to Java 11, Sponge 8, Fabric 1.19.1, as well as Webserver rewrite to Jetty. In addition it contains new features and improvements, and more progress on Frontent BETA in the form of rewritten server & network pages.
Special thanks to
Vankka,
Kopo,
Drex &
stashenko for contributions to this update
Change Log
Breaking changes
This version
updates config so backup your config in case you need to revert back to 5.4!
- Java 11: Plan now requires Java 11 or newer to run. Java 8 is no longer supported.
- Sponge API 8: Sponge API 7 is no longer supported.
- Fabric 1.19.1: Fabric 1.18 is no longer supported
If you can't update, you can continue using
5.4 build 1722 even if connected to same database as newer versions. (No database schema changes!)
Supported APIs
- Updated to Java 11, which was required by Jetty and Sponge API 8.
- Vankka implemented Sponge API 8 changes.
- Drex implemented support for Fabric 1.19.1
New features
Jetty Webserver
New webserver implementation speeds up response transmission times considerably
- 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)
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.
Data Gathering
- 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.
- Added 'Data_gathering.Preserve_join_address_case' setting (default false) that attempts to preserve join address case. Note that some servers/clients may lowercase addresses regardless.
- Possibly fixed an issue where Quit event is processed before Join, leading to long incorrect sessions being stored on next join/shutdown
- Possibly fixed an issue where saving sessions that ended on shutdown failed when another join had just stored one of the join addresses that were previously unseen. (It would retry next reload and probably succeed - so low priority issue.)
Frontend BETA progress
Enable with Plugin.Frontend_BETA setting in the config. Note that Html Customization and Export are not yet supported in the beta.
- Rewrote /login page in React
- Rewrote /server page in React
- You can now switch between visualizations for 'current playerbase' and 'latest join address' pie-graphs
![[IMG]](/proxy/image?url=https%3A%2F%2Fcamo.githubusercontent.com%2F5e6811bb88d01da0d1989be308929691434ea71957e352e558e9934763bdbfab%2F68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f3633353838373332383737303132393932322f313031363334373938323634313234363239382f76697375616c697a65722d7377697463682e676966)
- Join addresses by day graph is now available to analyze incoming join addresses further.
![[IMG]](/proxy/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F24460436%2F189348711-d972ef77-8fc9-4ddf-a524-b22298a54c63.png)
- Rewrote /network page in React
- You can now switch between Map projections in Geolocations
![[IMG]](/proxy/image?url=https%3A%2F%2Fcamo.githubusercontent.com%2F2a588b1e9410441214f8465aef0a55d56959606622bbb1f55d2eb66c9e37fef6%2F68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f3633353838373332383737303132393932322f313031383536313932333130363734363439382f70726f6a656374696f6e2d7377697463682e676966)
- You can now sort servers in server list by specific values
![[IMG]](/proxy/image?url=https%3A%2F%2Fcamo.githubusercontent.com%2F2930b4337b45750ee3bdaf9dde86dd6de707186aafa957b1d0f323e79d0686bf%2F68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f3633353838373332383737303132393932322f313031383536323333373334303430333736322f736f72742d7377697463682e676966)
- Join addresses by day graph also available for network page
- Added Players online to network performance tab - data from multiple servers can be viewed in one graph on network performance tab
- Fixed various issues and cleaned up overall appearance
You can track progress of frontend beta
here
Bugfixes
- 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
- Reduced maximum join address length to 191 characters due to limitation of old MySQL versions
Configuration
- Added plan.command permission (default: true) on Spigot servers to allow hiding /plan command from tab completion by negating this permission
- Config structure was modified to be valid yaml so that other programs can validate it. The config is updated automatically with current values of old config versions.
- Increased default inactive player removal threshold 180 days -> 3650 days (10 years). This change is not applied automatically to old configs.
- stashenko updated RU locale
- Added /plan db migrate_to_online_uuids command to help migrating from an offline-mode server to online-mode
- 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
- See /plan db for more help
Extensions
- Plugin method calls should no longer be made during Plan disable.
- Updated PlotSquared extension, should now register correctly
- Updated Floodgate extension, should now register correctly
- Updated Nucleus extension for Sponge 8
- Removed RedProtect support for Sponge (No longer supported in Sponge 8)
Automation
- Dev builds for every commit is now available DEV build pipeline (Click on title and scroll down to Artifacts, note that you need to log in to Github.)