Skip to content

Releases: plan-player-analytics/Plan

5.6 DEV build 2542

24 Sep 07:55
Compare
Choose a tag to compare
5.6 DEV build 2542 Pre-release
Pre-release

5.6 DEV build 2542

This dev release contains goodies such as Web User Access-Control, removes files related to old non-React frontend, Fabric 1.20.2 support, as well as fixes bugs.

Updating to this version modifies database schema, so if you want to return to 5.5 later backup your database files. The database schema is backwards compatible, so 5.4 and 5.5 will continue to insert data (except webuser registrations)

Special thanks to yu_solt, ToxiWoxi, Kopo and xlanyleeet for their contributions to this update!

Known bugs:

Change Log

Web user access control (HTTPS required)

image

A more granular user access control has been requested for quite a long time. Now you can limit users to only see smaller parts of the website. This feature is documented in https://github.com/plan-player-analytics/Plan/wiki/Web-permissions though you will find some help embedded on the /manage page.

Migrating from old version with permission_level adds groups 'legacy_level_0' etc with permissions that match previous behavior, users are linked to them automatically. It is recommended that you migrate them to the new default groups: https://github.com/plan-player-analytics/Plan/wiki/Web-permissions#legacy-permission-level-groups

In order to edit web permissions on the website you need to set at least one webuser as admin with /plan setgroup {username} admin.

In order to keep /plan register working, give your players 'plan.webgroup.{group_name}'-permission in your permission plugin (such as LuckPerms) for the group you want them to have. If user has none of these permissions they can't register at all.

Removal of old frontend files

With the React rewrite being complete an in use by most users, this version deletes the old frontend files from the jar. This reduces jar size by 1.5 MB.

If you still haven't migrated your html customizations this version does not load them anymore. Migration guide: https://github.com/plan-player-analytics/Plan/wiki/Html-Customization--migration-guide-to-React

  • Removed Plugin.Use_Legacy_Frontend setting.
  • Removed any code related to this setting, old behavior and the old web files.
  • Moved most html rendering from backend to the frontend.
  • DataTables did not support rendering React inside table headers so the library was removed and all functionality used by Plan rewritten in React. The visual differences should be minimal.

Website

image

  • You can now choose visible columns on any table that uses the rewritten DataTable (such as Players tables and large plugin tables.
  • Navigation button can now go to Plan Error Logs and Swagger Docs
  • Fixed some table text color issues, especially in Night Mode
  • Fixed issues with reverse-proxy https falling back to relative addresses in frontend when proxy-mode https was not in use. (Plan would assume address is http:// but browser would have https://, leading to different start for the address, which was interpret as incorrect address.)

Webserver

  • Disabled X-Forwarded-For reverse-proxy warning temporarily since it was giving false positive warnings often.
  • Fixed out of date information appearing on the /player page due to HTTP caching
  • Added /v1/preferences and /v1/storePreferences endpoints that has some default formatting values coming from config.yml and user specific preferences if they have them set. Preferences UI is not yet implemented so for now this only returns the defaults.
  • Deprecated /v1/players endpoint, replaced with /v1/playersTable which gives data in raw format instead of formatted.
  • Added Group Management related endpoints /v1/webGroups, /v1/groupPermissions, /v1/permissions, /v1/saveGroupPermissions, /v1/deleteGroup

Database

  • Fixed join address truncation error on backup
  • Added tables plan_web_group, plan_web_group_to_permission, plan_web_permission and plan_web_user_preferences

Spigot

  • Possibly fixed Ping not being gathered on Spigot 1.20+ servers

Fabric

  • Fabric 1.20.2 support was implemented by Kopo. Older versions of fabric are no longer supported.

Sponge

  • ToxiWoxi fixed SpongeForge failing to load Plan due to unspecified LuckPerms dependency version in Plan

Locale

  • Ukranian Locale (UK) added by xlanyleeet
  • Japanese Locale (JA) updated by yu_solt

Placeholders

  • Fixed off by one mistake in %plan_top_...% placeholders where 1 would give the 2nd highest and 10 nothing.

Extensions

  • Fixed an issue where rapid fire Vulcan AntiCheat violations would cause database exceptions.
  • Updated Lands API to newer version
  • Possibly fixed an issue where Litebans data was not being updated

5.5 build 2461

21 Jul 16:53
Compare
Choose a tag to compare

5.5 build 2461

This update contains bugfixes. This is probably the last version that will support 'Plugin.Legacy_Frontend' setting. Version 5.6 will remove the old frontend code so migrate your html customizations to React as soon as possible.

Special thanks to DrexHD, lis2a & ringoXD for contributions to this update.

Change log

Data gathering

  • AFK time is now updated when server shuts down to avoid AFK players from appearing active if they remain AFK during shutdown.

Fabric

  • DrexHD updated to support fabric 1.20
  • Added support for netty based socket addresses to possibly fix geolocation gathering issue.
  • Fixed plugin incompatibility with Geyser and other plugins with default mixin reference map (Thanks to onebeastcris for reporting this)

Website

  • Fixed permission level 2 redirect to /player/{uuid}
  • Fixed issues with Query page not allowing to change Registered between or Played between filter dates
  • Latest join address pie is now sorted by 'Most players first'

Database

  • Added experimental support for MariaDB 11. (MariaDB 11.0.2 has a data insertion bug, use 11.1.1 if possible). This is automatically enabled if MySQL driver fails to connect to the database.
  • Fixed issue with plugin groups query related to Vault on Query page
  • Fixed join address truncation error when join address was over 191 characters.

Locale

  • lis2a and ringoXD updated Japanese (JA) Locale

5.5 DEV build 2411

11 Jun 12:48
450d131
Compare
Choose a tag to compare
5.5 DEV build 2411 Pre-release
Pre-release

5.5 DEV build 2411

This update brings Fabric 1.20 support

Special thanks to DrexHD for contributions to this update!

Change log

  • DrexHD updated Fabric support to 1.20, older fabric versions are no longer supported by this version.
  • Fixed /player/{uuid} redirect when logging in as user with permission level 2

5.5 build 2391

21 May 07:26
c19f90e
Compare
Choose a tag to compare

5.5 build 2391

This is a feature packed update, as it brings support for multiple proxy servers, IP allowlist CIDR and Dynamic DNS support, Fabric 1.19.4, and lots and lots of improvements.

Special thanks to Kopo, WolverStones & inductor for contributions to this update!

Change log

Fabric 1.19.4

  • Kopo updated Fabric support to 1.19.4, older versions are no longer be supported by this version
  • Kopo fixed Gamemode change event not triggering
  • Fixed a dog killing something crashing the server when running older fabric version

Multi proxy support

Plan can now be installed on multiple proxy servers. This is useful for networks that divide their players between multiple proxy servers.

  • You can now name proxy servers with Server.ServerName config option (to distinguish in Performance tab)
  • Server.IP setting is no longer required to be set, since some proxy servers may have their webserver disabled. It's recommended to have only a single Plan webserver running.
  • If multiple proxy servers have their webserver enabled, the commands that have links link to one of them.
  • If all webservers are disabled, but export is enabled, the commands that have links link to one with export enabled.
  • Network online graph stacks the player online counts of all the proxies if RedisBungee is not used. Non-stacked version can be checked from Performance tab.

Known limitations: Online sessions/status are not synced on multiple proxies

IP Allowlist improvements

  • IP Allowlist now supports a lot more notations for easier use: CIDR, Wildcard, IPv6 with omitted zeros. See comment above the setting for examples.
  • IP Allowlist now supports dynamic DNS addresses. Add "dns:{address}" to the allowlist to have Plan resolve the IP address of the dynamic DNS. This may be useful for those without static IP addresses at home.

Database

  • MySQL databases using incorrect character set are now corrected to use utf8mb4 collate utf8mb4_general_ci upon startup. This should prevent some errors from popping up.
  • Fixed join address by day graph error if MySQL strict group by policy is enabled.
  • If Plan detects that two servers are storing data with the same UUID, a warning will be logged to console once every 30 minutes.
    • This usually happens if ServerInfoFile.yml is copied between servers during installation.
    • /plan info command now shows the ServerUUID of the server so that it is easier to debug which server it is
    • The detection looks if previous tps was stored < 30s ago, which suggests two servers are storing data as the same one
  • Add Database.MySQL.Max_Lifetime setting. This setting can be used if database connection keeps timing out

Website

  • Added option to disable registering new users Webserver.Security.Disable_registration (default false)
  • Improvements to network performance tab
    • Added some information why TPS, entities or chunks is not available if only proxy servers are selected
    • Reduced resolution of the data to minutes, so that all servers with data show up in the tooltip when hovering over the graph
    • Fixed server selector not allowing to change servers in some cases
    • Fixed the graph re-rendering when selecting different servers even though the data wasn't reloaded
    • Added warning if none of the selected servers have sent data over 30 days
  • Improvements to network server list
    • An icon is shown if server hasn't sent data for some time (Red triangle if no data in last 24h, Grey triangle if no data in last 7d, Grey archive icon if no data in last 30d)
  • /plan server command now gives link to /server/UUID instead of /server/Name
  • Fixed configured theme not applying by default
  • Extension data with colors or links now render properly
  • Fixed the logged in player's head image not loading on the top right

Locale

  • Custom locale files (locale.yml) are now updated with new translation lines whenever server starts
  • WolverStones updated Czech (CS) locale
  • inductor updated Japanese (JA) locale

Extensions

  • Fixed ExceptionInInitializerError in Extension construction causing Plan to not enable properly
  • Fixed exception related to LibertyBans Extension
  • Fixed exception related to Towny Extension

5.5 DEV build 2379

13 May 06:03
Compare
Choose a tag to compare
5.5 DEV build 2379 Pre-release
Pre-release

5.5 DEV build 2379

This update brings support for multiple proxy servers, fabric 1.19.4 and lots of lots of improvements.

Special thanks to Kopo & WolverStones for contributions to this update!

Change log

Fabric 1.19.4

  • Kopo updated Fabric support to 1.19.4, older versions are no longer be supported by this version
  • Kopo fixed Gamemode change event not triggering
  • Fixed a dog killing something crashing the server when running older fabric version

Multi proxy support

Plan can now be installed on multiple proxy servers. This is useful for networks that divide their players between multiple proxy servers.

  • You can now name proxy servers with Server.Name config option
  • Server.IP is no longer required to be set, since some proxy servers may have their webserver disabled. It's recommended to have a single Plan webserver running.
  • If multiple proxy servers have their webserver enabled, the commands that have links link to one of them.
  • Network online graph stacks the player online counts of all the proxies if RedisBungee is not used. Non-stacked version can be checked from Performance tab.

Known limitations: Online sessions/status are not yet synced on multiple proxies

IP Allowlist improvements

  • IP Allowlist now supports a lot more notations for easier use CIDR, Wildcard, IPv6 with omitted zeros. See comment on the setting for more.
  • IP Allowlist now supports dynamic DNS addresses. Add "dns:{address}" to the allowlist to have Plan resolve the IP address of the dynamic DNS. This may be useful for those without static IP addresses.

Website

  • Improvements to network performance tab
    • Added some information why TPS, entities or chunks is not available if only proxy servers are selected
    • Reduced resolution of the data to minutes, so that all servers with data show up in the tooltip when hovering over the graph
    • Fixed server selector not allowing to change servers in some cases
    • Fixed the graph re-rendering when selecting different servers even though the data wasn't reloaded
    • Added warning if none of the selected servers have sent data over 30 days
  • Improvements to network server list
    • An icon is shown if server hasn't sent data for some time (Red triangle if no data in last 24h, Grey triangle if no data in last 7d, Grey archive icon if no data in last 30d)
  • /plan server command now gives link to /server/UUID instead of /server/Name
  • Fixed configured theme not applying by default
  • Extension data with colors or links now render properly
  • Fixed the logged in player's head image not loading on the top right

Database

  • MySQL databases using incorrect character set are now corrected to use utf8mb4 collate utf8mb4_general_ci upon startup. This should prevent some errors from popping up.
  • Fixed join address by day graph error if MySQL strict group by policy is enabled.
  • If Plan detects that two servers are storing data with the same UUID, a warning will be logged to console once every 30 minutes.
    • This usually happens if ServerInfoFile.yml is copied between servers during installation.
    • /plan info command now shows the ServerUUID of the server so that it is easier to debug which server it is
  • Add Database.MySQL.Max_Lifetime setting. This setting can be used if database connection keeps timing out

Locale

  • Custom locale files (locale.yml) are now updated with new translation lines whenever server starts
  • WolverStones updated Czech (CS) locale

Extensions

  • Fixed ExceptionInInitializerError in Extension construction causing Plan to not enable properly
  • Fixed exception related to LibertyBans Extension
  • Fixed exception related to Towny Extension

5.5 DEV build 2335

09 Apr 07:37
f7cec19
Compare
Choose a tag to compare
5.5 DEV build 2335 Pre-release
Pre-release

5.5 DEV build 2335

This update brings support for multiple proxy servers, fabric 1.19.4 and lots of lots of improvements.

Special thanks to Kopo & WolverStones for contributions to this update!

Change log

Fabric 1.19.4

  • Kopo updated Fabric support to 1.19.4, older versions may no longer be supported by this version
  • Kopo fixed Gamemode change event not triggering

Multi proxy support

Plan can now be installed on multiple proxy servers. This is useful for networks that divide their players between multiple proxy servers.

  • You can now name proxy servers with Server.Name config option
  • Server.IP is no longer required to be set, since some proxy servers may have their webserver disabled. It's recommended to have a single Plan webserver running.
  • If multiple proxy servers have their webserver enabled, the commands that have links link to one of them.
  • Network online graph stacks the player online counts of all the proxies if RedisBungee is not used. Non-stacked version can be checked from Performance tab.

Known limitations: Online sessions/status are not yet synced on multiple proxies

Website

  • Improvements to network performance tab
    • Added some information why TPS, entities or chunks is not available if only proxy servers are selected
    • Reduced resolution of the data to minutes, so that all servers with data show up in the tooltip when hovering over the graph
    • Fixed server selector not allowing to change servers in some cases
    • Fixed the graph re-rendering when selecting different servers even though the data wasn't reloaded
    • Added warning if none of the selected servers have sent data over 30 days
  • Improvements to network server list
    • An icon is shown if server hasn't sent data for some time (Red triangle if no data in last 24h, Grey triangle if no data in last 7d, Grey archive icon if no data in last 30d)
  • /plan server command now gives link to /server/UUID instead of /server/Name

Database

  • MySQL databases using incorrect character set are now corrected to use utf8mb4 collate utf8mb4_general_ci upon startup. This should prevent some errors from popping up.
  • Fixed join address by day graph error if MySQL strict group by policy is enabled.
  • If Plan detects that two servers are storing data with the same UUID, a warning will be logged to console once every 30 minutes.
    • This usually happens if ServerInfoFile.yml is copied between servers during installation.
    • /plan info command now shows the ServerUUID of the server so that it is easier to debug which server it is

Locale

  • Custom locale files (locale.yml) are now updated with new translation lines whenever server starts
  • WolverStones updated Czech (CS) locale

Extensions

  • Fixed ExceptionInInitializerError in Extension construction causing Plan to not enable properly

5.5 build 2307

26 Mar 09:06
904e928
Compare
Choose a tag to compare

5.5 build 2307

This release has some new tools for analyzing player retention, as well as further improvements to the website.

Special thanks to TheLittle_Yang for contributing to this update.

Change log

Player Retention Analysis Graph

retention-graph-possibilities

This update adds a graph to network and server pages (Playerbase > Player Retention) that has options to:

  • Draw graphs at different time resolutions
  • Limit input data by time
  • Group players by register date or join address
  • Visualize player retention in different ways
    • Time since registration date
    • Playtime
    • Date
    • Cumulative player gain
    • Percentage / Player count / Stacked player count

Any and all combinations are allowed which allows extensive analysis of player retention. Help sections attempt to make the data understandable and show examples.

Data gathering

  • Attempt to correct register dates if they report a date in the year 1970 (Epoch millisecond 0 = Jan 1 1970).

Website

  • Any extension tables can now be sorted
  • Fixed Network > Servers Overview Quick view graph not loading
  • Fixed sidebar being transparent in nightmode on mobile
  • Fixed Activity index help modal not drawing the index function after certain x threshold
  • Fixed data not updating when switching from Server to Network page in cases where they shared same components (eg. Playerbase graphs, Join address graphs, etc)
  • Improved player overview card layout on mobile
  • Reduced font size on mobile when in portrait mode, so that more tables remain readable

Extensions

  • Fixed NPE when player joined and FloodGate had not loaded its API

Locale

  • TheLittle_Yang updated Traditional Chinese (CN) Locale

5.5 DEV build 2290

17 Mar 18:09
e96a26b
Compare
Choose a tag to compare
5.5 DEV build 2290 Pre-release
Pre-release

5.5 DEV build 2290

This dev release adds a new player retention analysis graph and fixes a couple bugs. There are still some bugs that I want to fix before full release, but those bugs are also present in build 2272.

Special thanks to TheLittle_Yang for contributing to this update.

Change log

Player Retention Analysis Graph

retention-graph-possibilities

This update adds a graph to network and server pages (Playerbase > Player Retention) that has options to:

  • Draw graphs at different time resolutions
  • Limit input data by time
  • Group players by register date or join address
  • Visualize player retention in different ways
    • Time since registration date
    • Playtime
    • Date
    • Cumulative player gain
    • Percentage / Player count / Stacked player count

Any and all combinations are allowed which allows extensive analysis of player retention. Help sections attempt to make the data understandable and show examples.

Website

  • Fixed Network > Servers Overview Quick view graph not loading
  • Fixed sidebar being transparent in nightmode on mobile
  • Fixed Activity index help not drawing the index function after certain x threshold

Locale

  • TheLittle_Yang updated Traditional Chinese (CN) Locale

5.5 build 2272

05 Mar 07:40
Compare
Choose a tag to compare

5.5 build 2272

This update enables the new React based frontend by default, speeds up loading various parts of the website, and fixes a couple of issues.

If you are using Html Customization, it is now possible to migrate to the new system, see https://github.com/plan-player-analytics/Plan/wiki/Html-Customization--migration-guide-to-React - You can use Plugin.Use_Legacy_Frontend setting until your migrations are complete.

Back up your config in case you need to revert to previous version. Updating should be easy, simply replace the jar.

Change log

React Frontend (Previously called Frontend BETA)

The frontend rewrite is complete, so the new frontend is now enabled by default. Plugin.Use_Legacy_Frontend (default: false) setting still allows using old frontend for a while until it's completely removed.

Here is a summary of improvements this brings if you have not participated in the Beta:

  • Faster loading time since less data requests are made at once
  • Improved mobile navigation
  • New features
    • Page navigation button for switching between pages
    • Switching language on the frontend
    • Join address tab
    • Visualizer switches for some graphs
    • Average players online data to Performance tabs
    • Interactive '?' help for Activity Index and New Player Retention (These were the two most common questions on how they work)
    • Redesigned Network > Servers tab
  • Easier to maintain and develop further

Changes from previous update:

  • Added a page navigation button that allows moving to different servers and other pages easily. This replaces the 'Back to main page' button. You can switch between the same page for two servers (eg. Move from Server 1 > Performance to Server 2 > Performance in one click)
    image
  • Improved mobile navigation. With the navigation button this should help mobile users a lot.
  • Interactive '?' help for Activity Index and New Player Retention (These were the two most common questions on how they work)
  • Fixed network server list saying "No servers installed" while servers were being loaded.
  • Fixed page translation issues
  • React was updated to version 18
  • Javascript APIs for extending the page programmatically were implemented https://github.com/plan-player-analytics/Plan/wiki/APIv5-PageExtension-API#javascript-api
  • Fixed join address data breaking the page when visualized as a table
  • Fixed issues of plugin cards overlapping when switching between plugins of two servers on player page

New feature: public_html

A new feature in the webserver allows hosting any web files on the Plan webserver. Please note that any files placed in the public_html folder (/plugins/Plan/public_html by default) can be read by anyone who knows the address to the webserver even if you have login enabled. The folder can be configured with Webserver.Public_html_directory setting.

The main purpose of this feature is to allow Html Customization of the React bundle https://github.com/plan-player-analytics/Plan/wiki/Html-Customization

Webserver

  • Implemented HTTP Caching: Browser will now cache some responses and avoid sending unnecessary data if it was already loaded. This can improve page loading times from multiple seconds to milliseconds.
  • Implemented public_html feature that allows hosting custom files from a configurable folder Webserver.Public_html_directory (default /plugins/Plan/public_html). This can be used to host http-challenge file for certbot and other files.

Database

  • PlayerTableRowPatch should no longer be re-applied all the time
  • Optimized server player table query: /server/players now loads much faster. Tested optimization: 4s -> 500ms: 8x improvement
  • Optimized server latest join addresses query: /sever/join_addresses now loads much faster. Tested optimization: 19s -> 150ms: 120x improvement
  • Optimized /v1/network/servers endpoint, got a 66% speed increase, so Servers tab on network page should load faster.

PlaceholderAPI

  • Unregister placeholder extension when Plan disables: this possibly fixes an issue where PlaceholderAPI would log errors when Plan disabled before PlaceholderAPI.

5.5 DEV build 2254

25 Feb 13:03
Compare
Choose a tag to compare
5.5 DEV build 2254 Pre-release
Pre-release

5.5 DEV build 2254

This dev release enables the React Frontend by default and adds new APIs for adding content to the React website via Javascript and Java.

This is a release candidate, I just didn't have time to write enough documentation for a full release this weekend.

Changes from DEV build 2208

  • Enabled React frontend by default
  • Added 'Plugin.Use_Legacy_Frontend' (default: false) that still allows using old frontend for a while until it's completely removed.
  • Added new PageExtension javascript APIs. Documentation is still in progress.
    • pageExtensionApi.js
    • ResourceService got two new methods
    • ResourceService.Position.AFTER_MAIN_SCRIPT is now deprecated and is a no-op if used with index.html (The react bundle .html file)

Change log

React Frontend (Previously called Frontend BETA)

New frontend is now enabled by default. 'Plugin.Use_Legacy_Frontend' (default: false) setting still allows using old frontend for a while until it's completely removed.

  • Use public_html for customizing React-bundle. See https://github.com/plan-player-analytics/Plan/wiki/Html-Customization--migration-guide-to-React on how to use the customization features with new frontend.
  • Added a page navigation button that allows moving to different servers and other pages easily. This replaces the 'Back to main page' button.
    image
  • Improved mobile navigation. With the navigation button this should help mobile users a lot.
  • Fixed network server list saying "No servers installed" while servers were being loaded.
  • Fixed page translation issues
  • React was updated to version 18

Webserver

  • Implemented HTTP Caching: Browser will now cache some responses and avoid sending unnecessary data if it was already loaded. This can improve page loading times from multiple seconds to milliseconds.
  • Implemented public_html feature that allows hosting custom files from a configurable folder Webserver.Public_html_directory (default /plugins/Plan/public_html). This can be used to host http-challenge file for certbot and other files.
  • /v1/network/servers endpoint was optimized, got a 66% speed increase, so Servers tab on network page should load faster.

Database

  • PlayerTableRowPatch should no longer be re-applied all the time
  • Optimized server player table query: /server/players now loads much faster. Tested optimization: 4s -> 500ms: 8x improvement
  • Optimized server latest join addresses query: /sever/join_addresses now loads much faster. Tested optimization: 19s -> 150ms: 120x improvement

PlaceholderAPI

  • Unregister placeholder extension when Plan disables: this possibly fixes an issue where PlaceholderAPI would log errors when Plan disabled before PlaceholderAPI.