Releases: plan-player-analytics/Plan
5.5 build 2100 - 6 years of Plan!
5.5 build 2100 - 6 years of Plan!
This release contains a lot of things. Frontend BETA enters next phase since all pages have been rewritten in React, next steps are export and html customization implementation for it. This update also contains data gathering fixes, additions, new placeholders along with other bugfixes.
Today also marks 6th year of Plan development! As is customary at this point there's a Year in Review -post after the change log.
Special thanks to Vankka, angela0930 for contributions to this update
Change log
Data Gathering
- Removed data after null-byte in Join Address data. Bungeecord and Velocity use the handshake-packet to forward UUID and IP information of players, and since the join address comes from handshake packet, that data ended up in the join addresses Plan gathered. Forge Mod Loader forwards its version information in the same handshake packet in similar fashion. Discarding data after the null-byte should resolve any issues.
Frontend BETA
- Names of new players are now shown in Light Green in PvP tables when they are the player who was killed within 24h of their first join. This is to help find players who kill newer players.
- /query page has been rewritten in React.
- /register page has been rewritten in React
- Fixed plugin cards overlapping when moving to different page on a table
- Fixed /network/... redirecting to /network
- Fixed colors of buttons when hovering mouse on them
I'm excited, the frontend part of rewrite is complete and I can move to implementing export and html customization for the new frontend.
Export
- Experimental version of export for React version is now enabled if Frontend BETA and Export are both enabled. This will place index.html at the root of the export directory along with all the react files. I have not yet been able to test it properly, so it might be completely unusable. Just throwing it out there.
DataExtension API: Component API by Vankka
If your plugin's data contains chat colors or mini-message information, that information can now be included so that it will eventually show up on the website. Check documentation for the new API here
Extensions
- Vankka fixed error that occurred when deleting LuckPerms groups
- Vankka fixed LuckPerms not showing colors properly on the website
Placeholders
Added new placeholders
- %plan_time_active_{day/week/month}%
- %plan_time_active_{day/week/month}_raw%
- %plan_top_player_kills_{day/week/month/total}_{n}%
Locale
- angela0930 updated ZH_TW locale
Other
- Fixed ConcurrentModificationException related to world aliases
- Fixed some queries erroring in Strict group by mode for MySQL
- Fixed Ore not showing Plan sponge version
- Fixed removal of cookies that expired while server was offline
- Fixed RemoveUsernameFromAccessLogPatch applying every time
- Changed "Database can't keep up with transactions" to less dire message
- Fixed SQLITE_CONSTRAINT_NOTNULL when request uri is null
Year in review: Year 6
This year has been a lot different from the previous five, since there has been a lot more things going on in my personal life. Last year I got a job, and in January I started writing my Master’s thesis. It was very tough balancing all that on top of developing Plan on the side. I had to take some months off development entirely with a hiatus in the summer and fall to finish up the thesis. In September I returned the thesis for review and I’m happy to now have graduated! Things definitely calmed down after finishing up the thesis and resuming Plan development after the hiatus.
The running theme this year has been steady and stable changes. Inspired by the answers to last year’s poll, the goals for this year were to improve the loading speed of the website, as well as visualizing more of the gathered data.
There’s been a lot of work done this year towards those goals. The database schema was changed drastically, the webserver was changed to Jetty, and Frontend BETA is rewriting the code running in browser to React. Alone each change brings small improvements, but together they improve things a lot.
I’m very excited for the future, since the React frontend speeds up development of new things considerably thanks to environment where changes can be seen instantly. Previously I would have had to compile Plan and restart the test server – It takes 1 second vs 3 minutes it used to take to see changes now.
Main goals for 2023 is to get the new frontend out of Beta after feature parity with previous frontend is reached (Export and Html Customization still to go), and after that it’ll be time to tackle a lot of tickets with ’Visualization’ tag. A lot of the ongoing work has been done to make the future changes easier to do, which should speed up feature additions in the upcoming year.
I’m very happy that all the automation created in the past years is now finally paying off, helping keep confidence in that everything works as intended when changing something. I love that it’s now possible to deliver development builds fast, even within the same hour when someone is asking for help.
Special thanks to Github sponsors, donators, discord moderators, support, and contributors this year! Extra special thanks to Kopo & Vankka for their constant input into the project.
This year in numbers
- From build 1516 to build 2100: 584 commits released as updates
- From #43 to #20 in top plugins by rating – and keeping the #8 spot in top spigot plugins by rating.
- Installations has stayed stable at over 4000 servers
- From 59k lines of code to 64k (not counting extensions or web code)
- From 51.3% test coverage to 57.4%
- 194 issues and 32 (+247 dependabot) pull requests closed this year
Have a good one! :)
5.5 DEV build 2076
5.5 DEV build 2076
This dev release contains a lot of changes, let's dive in.
Special thanks to Vankka, angela0930 for contributions to this update
Change log
Data Gathering
- Removed data after null-byte in Join Address data. Bungeecord and Velocity use the handshake-packet to forward UUID and IP information of players, and since the join address comes from handshake packet, that data ended up in the join addresses Plan gathered. Forge Mod Loader forwards its version information in the same handshake packet in similar fashion. Discarding data after the null-byte should resolve any issues.
Frontend BETA
- Names of new players are now shown in Light Green in PvP tables when they are the player who was killed within 24h of their first join. This is to help find players who kill newer players.
- /query page has been rewritten in React.
- Fixed plugin cards overlapping when moving to different page on a table
- Fixed /network/... redirecting to /network
- Fixed colors of buttons when hovering mouse on them
I'm excited, the frontend part of rewrite is soon complete and I can move to implementing export and html customization for the new frontend.
DataExtension API: Component API by Vankka
If your plugin's data contains chat colors or mini-message information, that information can now be included so that it will eventually show up on the website. Check documentation for the new API here
Extensions
- Vankka fixed error that occurred when deleting LuckPerms groups
- Vankka fixed LuckPerms not showing colors properly on the website
Placeholders
Added new placeholders
- %plan_time_active_{day/week/month}%
- %plan_time_active_{day/week/month}_raw%
- %plan_top_player_kills_{day/week/month/total}_{n}%
Locale
- angela0930 updated ZH_TW locale
Other
- Fixed ConcurrentModificationException related to world aliases
- Fixed some queries erroring in Strict group by mode for MySQL
- Fixed Ore not showing Plan sponge version
- Fixed removal of cookies that expired while server was offline
- Fixed RemoveUsernameFromAccessLogPatch applying every time
- Changed "Database can't keep up with transactions" to less dire message
- Fixed SQLITE_CONSTRAINT_NOTNULL when request uri is null
5.5 build 1984
5.5 build 1984
This update contains small improvements.
Special thanks to DubHacker for contributions to this update.
Change log
- [Webserver] Fixed login redirecting back to /login if multiple cookies were present (for example CloudFlare cookies)
- [Locale] DubHacker updated DE locale
5.5 build 1969 - Bugfixes
5.5 build 1969 - Bugfixes
Special thanks to PikaMug for contributions to this update!
Change log
Website
- Fixed login and register pages saying 'You need to specify a password!' incorrectly when using non-default Locale
- Frontend BETA: Fixed players table on network page linking to wrong URL
Velocity
- ProxioDev fork of RedisBungee is now supported for Velocity to gather correct network online player count.
Extensions
- PikaMug updated Quests extension, adding new datapoints and fixing non-repeatable default quests showing as times completed: 0.
- Fixed Extension tab icons showing wrong icon (Showed the icon for first datapoint)
MySQL
- Fixed SQL exceptions related to ONLY_FULL_GROUP_BY mode being enabled.
5.5 build 1953 - Hotfixes to build 1951
5.5 build 1953 - Hotfixes to build 1951
- Fixed extensions with only PLAYER_LEAVE not getting updated on player leave
- Fixed data truncation error related to join addresses on restart when trying to store sessions from last shutdown
- Self fix: If you're unable to login after updating (usually with reverse-proxy setups), clear cookies.
5.5 build 1951
5.5 build 1951
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
- Rewrote /network page in React
- You can now switch between Map projections in Geolocations
- You can now sort servers in server list by specific values
- 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
- You can now switch between Map projections in Geolocations
- 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.)
5.5 DEV build 1923 - Release Candidate
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
5.5 DEV build 1833
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
5.5 DEV build 1791
5.5 DEV build 1791
This update contains update to Java 11, Sponge API 8, 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!
Sponge, Velocity and Fabric versions have not been fully tested for this release, please report any issues
Special thanks to Vankka and Kopo for contributions to this update
Bugfixes from DEV build 1740
- Fixed 'proxy' mode for Jetty
- Fixed slf4j warnings appearing during plugin enable
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.
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.
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
5.5 DEV build 1740
5.5 DEV build 1740
This update contains update to Java 11, Sponge API 8, as well as Webserver rewrite to use Jetty.
This update is backwards compatible with 5.4 so you may revert to previous version if the dev release does not work as intended.
Special thanks to Vankka and Kopo for contributions to this update
Change Log
Java 11
- Plan now requires Java 11 or newer to run.
- 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.
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.
Removal of some deprecated internal code
- Removed ServerKeys, some PlayerKeys fields as well as PlayerDeath class. This code has been deprecated since 5.0.
Other
- Fixed lag caused by large tab completion results if server had a lot of players and someone tab completed
/plan player
. - Updated geoip2, caffeine & HikariCP to versions that needed Java 11