This is a large large update with a bunch of new features and even more bugfixes. As you may notice, I have changed my username to AuroraLS3 (so the developer hasn't changed, don't worry).
Special thanks to
Guinness_Akihiko,
galexrt,
QuakyCZ &
MrFriggo for their contributions to this update.
Change log
Main features Query-page Have you ever wanted to know who played the most in a specific month or week? How about knowing how active your donators are? Or who was online during a lag-spike? Now it's all possible, with the /query page!
Showcase of the feature:
Select any dates as a data-range
Dynamically choose who you want the data to be about with multiple filters to choose from: play dates, register dates, operators, banned status, current activity group, plugin groups (such as permissions)
Share query results with other admins via URL
Disk-based caching (Remedy to timeout issue) Sometimes database queries are slow and waiting for results takes a while. Now the pages display previously calculated results until the queries complete instead of timing out.
Because of this it is now also possible to update parts of the page by clicking the little refresh icon instead of reloading the whole page.
Main improvements Extension data to /players page Players page now contains the same extension data as the /servers pages, so that those on networks can also view the Extension data from bungeecord in a neat table.
Player list: Playtime replaced with Active playtime In order to make it more useful for servers where players AFK a lot, the players table now uses active playtime instead of playtime.
Performance graph optimizations Test payload .json was reduced from 24MB to 3.35MB
Reduced the amount of queried performance graph points
Data for 30 days: 1 point / minute (like before)
Data older than 30 days: 1 point / 5 minutes
Data older than 60 days: 1 point / 20 minutes
Reduced duplicate data (The point dates) in the .json by changing transmit data format
Locale
Guinness_Akihiko has contributed a Korean locale, use it with Locale: KO
galexrt fixed a typo in German locale
QuakyCZ & MrFriggo updated Czech locale
Locale files updated to add missing language
Security Fixed 3 security vulnerabilities
Fixed redirection to another page after login
Fixed XSS vulnerability in 500 Error page
Wrong pass and user not existing now treated the same (To avoid exposing registered usernames)
IP Whitelist for reverse-proxy users A new setting under Webserver.Security now allows use of X-Forwarded-For header to determine the connecting IP.
This setting is disabled by default, it is important when you use this setting that the reverse-proxy can not be bypassed as otherwise spoofing IPs is possible.
Main bugfixes MySQL connection reliability improved (Fixed "HikariCP Datasource is closed") A MySQL connection hiccup should no longer causes Plan to close the connection pool. A bug in the code caused the pool to be closed and opening it again always failed.
Fixed Timezone oddities on the page
Graphs on the website now respond properly to minutes in timezones (For example GMT+3:30)
Server calendar should no longer move data -1 day in negative timezones.
Other features
Added MySQL max connections setting to limit Plan connection pool size if needed
Clean tasks no longer run at the same time across the entire network, reducing spikes in MySQL CPU usage.
Added %plan_player_activity_index% and %plan_player_activity_group% placeholders
Placeholders now safely replaced off server thread with a cache (Note that the placeholder needs to be replaced at least twice for it to show up if using server thread for replacement). This is to avoid server crashes.
Other improvements
Proxy servers now properly detected even if server config was copied to a proxy server before installation
Login now properly redirects to tabs if sharing links to specific tab (like performance)
MySQL launch options are now more lenient to allow custom certificate definition
Table styling for player tables has been updated
bStats now available for Velocity
Other bugfixes
Fixed Day to day and Hour to hour graphs disappearing with Display_gaps setting
Fixed Server Preference Pie on /network page
Fixed [object Object] showing on Kill history when Player name was not in the database
Updated bStats to fix a Crash on SpongeForge
Fixed dark mode on exported files
Fixed + being decoded as a space in player names
Fixed HPE_UNEXPECTED_CONTENT_LENGTH with reverse-proxies
Fixed CPU null constraint violation when CPU Usage was reported as NaN (Mac OS)
DataExtensions
mcMMO extension: Fixed Optional[] around player names(The old data might still have that for a while)
Vault extension: Fixed UnsupportedOperationException not being caught
AAC extension: Disabled AAC Extension on AAC versions 5+ due to no data being available in the new API
ProtocolSupport extension: Fixed IllegalStateException: Access to implementation before detect