5.1 build 808
This build contains a few bugfixes.
Special thanks to Shadowhackercz for updating Czech locale.
Change log
Commands
Plugin Enable
- Fixed /help causing NPE on Sponge
- Fixed /plan command not working on 1.8 servers (they use old version of the chatcomponent library)
- Fixed in game links working on 1.8 servers
More information is stored in ServerInfoFile.yml to speed up plugin enable when database is busy
Locale
- Proxy servers now also store the information in the file (Note: manually changing the file might lead to issues)
- Fixes a few NPEs that occurred when website was accessed before Plan had fully enabled
Extensions
- Czech locale was updated by Shadowhackercz
- Fixed SQL syntax error in FloodGate Extension
- Fixed mcMMO Extension giving warnings from mcMMO modern
- Fixed mcMMO Extension not showing data on server pages
- Fixed mcMMO Extension throwing an error when player left
5.1 build 791 - Change log
This update brings lots of improvements made by contributors, as well as bugfixes.
Special thanks to Vankka, FluxCapacitor2 & antonok-edm for their contributions!
Thank you for the numerous answers to the feedback survey. I have looked at the 54 answers and did some analysis of them on discord.
You can also find answers to some of the questions posted on the survey here #1624.
Change log
Website
Commands
- Added things that stop search engine spiders like Google from crawling the Plan website. This should stop your Plan appearing on google search in the future. (thanks FluxCapacitor2) Please note that exported files don't contain robots.txt.
- FullCalendar updated to v5 and the style to go with it (thanks FluxCapacitor2)
- Browser back button goes to the previous page instead of the previous tab. Reduces the amount of back button clicks by a ton (thanks FluxCapacitor2)
- Night mode can now be set as default in theme.yml by setting DefaultColor to night (thanks FluxCapacitor2)
- Fixed DefaultColor setting in theme.yml. (thanks FluxCapacitor2) Note: If you missed 4.x.x to 5.0 migration the panel might appear light green after the update instead of Plan green
- Removed special error case for Brave browser adblock as /v1/performance endpoint should no longer be blocked by adblockers. (easylist was updated) (thanks antonok-edm)
- Removed scroll to top button (it was broken)
Webserver
- Fixed db move subcommand clearing the source database and failing to move data
- Register command now says "Registration failed, try again (code expires in 15 minutes)" instead of "User not found" when the register code is not found.
Export
- Webserver no longer displays warnings on console related to 204 HTTP response (thanks FluxCapacitor2)
- Future proofed cookies by adding SameSite=Lax; Secure; to them as Firefox was warning that they might break soon.
Extensions
- Fixed player links on exported server pages on networks going to /server/player instead of /player
- Added Floodgate / geysermc extension (thanks Vankka)
- Added mcMMO extension (supports the new mcMMO and mcMMO classic) (thanks Vankka)
- Fixed FactionsUUID extension throwing an error with SaberFactions
5.1 build 770 - Command Rework +hotfix for b768
Hotfix for build 768
- Fixed NoClassDefFoundError: TextStringBuilder
This update contains reworked command system and permissions.
Special thanks to Shadowhackercz and Vankka for their contributions to this update.
- You need to update Plan permissions to use this version: Link to permission changes
If you would like to affect Plan development priorities, fulfill this survey. It might take around 5-10 minutes.
https://forms.gle/w9ZniR8vfe1U1aHm6
Major changes
Command system rewrite
See https://github.com/plan-player-analytics/Plan/wiki/Commands-&-Permissions for updated permission & command information
- All platforms now use same permissions for same commands
- All platforms now have all of the commands that have been available
- When using commands as a player the help menu now has more information on hover
- Actions that remove data now ask for confirmation instead of -a argument
- Some commands that previously did not have a specific permission now have a permission (such as /plan register)
- /planbungee and /planvelocity now called /planproxy (They still work as aliases though). Another alias /planp
Website
DataExtensions
- Login page now logs in when Enter is pressed
- Login page now uses a <button> instead of <a> (might help password managers)
Locale
- Vankka contributed a FactionsUUID Extension that should support FactionsUUID and forks eg. SaberFactions (and the now dead SavageFactions)
- EssentialsX Extension no longer stores economy information due to large amount of "Economy lag" messages.
If you run into any issues, please open a ticket at http://bugs.playeranalytics.net
- Shadowhackercz contributed a Czech locale, use it by setting locale to CS
- Lots of the command related messages had to be updated so some messages might be in English because they have not been translated yet.
5.1 build 768 - Command Rework
This update contains reworked command system and permissions.
Special thanks to Shadowhackercz and Vankka for their contributions to this update.
- You need to update Plan permissions to use this version: Link to permission changes
If you would like to affect Plan development priorities, fulfill this survey. It might take around 5-10 minutes.
https://forms.gle/w9ZniR8vfe1U1aHm6
Major changes
Command system rewrite
See https://github.com/plan-player-analytics/Plan/wiki/Commands-&-Permissions for updated permission & command information
- All platforms now use same permissions for same commands
- All platforms now have all of the commands that have been available
- When using commands as a player the help menu now has more information on hover
- Actions that remove data now ask for confirmation instead of -a argument
- Some commands that previously did not have a specific permission now have a permission (such as /plan register)
- /planbungee and /planvelocity now called /planproxy (They still work as aliases though). Another alias /planp
Website
DataExtensions
- Login page now logs in when Enter is pressed
- Login page now uses a <button> instead of <a> (might help password managers)
Locale
- Vankka contributed a FactionsUUID Extension that should support FactionsUUID and forks eg. SaberFactions (and the now dead SavageFactions)
- EssentialsX Extension no longer stores economy information due to large amount of "Economy lag" messages.
If you run into any issues, please open a ticket at http://bugs.playeranalytics.net
- Shadowhackercz contributed a Czech locale, use it by setting locale to CS
- Lots of the command related messages had to be updated so some messages might be in English because they have not been translated yet.
5.1 build 657
This update has taken a while to get together, as I've been busy at work.
None the less, this update contains lots of bugfixes, quite many related to database related exceptions.
Special thanks to Saph1s for their contribution to this update.
Change log
Database
Bugfixes
- New tables are now created with utf8mb4 as the default charset to avoid character encoding errors.
- Increased deadlock retry attempts to 5, and added the attempt count to the error context.
- If the database fails to do tasks related to opening (Such as creating tables or patching schema) the plugin now disables.
- If the database is under heavy load (Visible as "Lock wait timeout exceeded" errors) Plan now attempts to reduce the load for 10 minutes each time. If the reduction is not enough, a pause between transactions is increased.
Webserver
- Fixed JSON serialization of /v1/players endpoint when a datapoint had \ character in it that broke the players table.
- Fixed IllegalArgumentException fromKey > toKey when adding ping to sessions on /player page (56bb3b3a6a)
- Fixed incompatibility with AAC due to use of Reflection during class loading (Moved reflection use to enable)
- Possibly fixed logo appearing stretched on the login page when using Safari
Locale
- Webserver is now enabled by default when installing on Sponge servers
Error instructions ('What to do')
- Russian Locale was updated by Saph1s
- If character encoding is wrong in the database the user is instructed how to convert the charset of their MySQL.
- If MySQL user is missing privileges, the user is instructed to give privileges to the user (Usually REFERENCES privilege is missing).
- If SQLite has corrupted, the user is given instructions to restore the database, and a link to repair article.
5.1 build 624 - Hotfix
Bugfixes
Fixed an infinite loop in the error handling code when an Exception had a cause (most exceptions)
There was an infinite loop in the error handling code that has been causing high CPU usage and OutOfMemory crashes.
The loop prevented the actual exception from being logged, and was a very dumb mistake in the code, that is easy to miss.
I should have originally written some unit tests, but at least they are here now, and the error handling code is confirmed to work properly.
5.1 build 615
This build contains one new feature (IP whitelist) and bugfixes.
Special thanks to Elguerrero & MastoryMd5 for their contributions to this update
Change log
Commands
Error Handling
- Fixed permission check issue with /plan unregister that allowed anyone to unregister any user by if they knew their username.
- Fixed these commands from executing database queries on server thread:
- /plan players
- /plan network
- /plan register
- /plan manage raw
- Fixed /plan inspect throwing an NPE when a player tried to view someone elses profile without 'plan.inspect.other' permisison
Webserver
- Crash due to OutOfMemoryException should now be resolved (The error handling should no longer consume so much memory)
Added IP Whitelist
Config now contains Webserver.Security.IP_Whitelist and Webserver.Security.IP_Whitelist.Whitelist settings for whitelisting IP addresses that can access the webserver.
Database
- The whitelist is disabled by default
- Default whitelist has IP addresses for local machine
- When enabled all requests from non-whitelisted IPs will be forbidden (403)
- Denied attempts are logged.
Locale
- MySQL Launch Options setting now has &serverTimezone=UTC by default (not added to existing settings automatically)
Placeholders
- Spanish locale updated by Elguerrero
- Italian locale updated by MastoryMd5
- Fixed an NPE when a plugin gave PlaceholderAPI a null Player that was passed to Plan.
5.1 build 600
This update has some bugfixes in it, and adds a deprecation warning for H2.
Special thanks to enterih & hallo1142 for their contributions to this update.
Changes
Database
Webserver
- Added a warning for h2 users: h2 will be deprecated in 5.2 See issue #1472
- Added user and password settings for H2 that are separate from MySQL's. Because the old versions use same user and password as MySQL, you might need to copy the user and pass field over if using h2.
- Fixed Moving data from H2 to MySQL.
- MySQL connection improvements
- Possibly fixed 'unknown timezone' error when connecting
- Possibly fixed Plan not using the MySQL driver included inside Plan.jar
Placeholders
- Made logout links relative (Fixes logout for some subdirectory reverse-proxy setups)
- Made /login?from=<link> link relative (Fixes login redirect for some subdirectory reverse-proxy setups)
Errors
- Added %plan_sessions_unique_players_today% placeholder: Shows unique players for current day (based on timezone) while plan_sessions_unique_players_day shows last 24h
Locale
- Fixed high CPU usage when an Extension ran into an exception
- Extensions service no longer attempts again when an extension method fails.
- Stacktrace logger duplicate line finding optimized to not use HashSet
- Deutsch locale updated by enterih and hallo1142
Change log 5.1 build 586
Here is an update with some improvements.
Special thanks to all contributors to this update; Fur_xia (Updates to Chinese locale), hallo1142 (Updates to Deutsch locale), itaquito (Updates to Spanish locale) Karlatemp (Bugfixes related to locale + async update check)
Change log
Website
Error handling
- Added a 'Hour by Hour' graph similar to 'Day by Day' graph to server and network pages. It displays hourly new players and unique players for the last 7 days.
Locale
- Error handling was rewritten to address the issue of large error log files. Now each exception is assigned an unique hash to avoid duplicates of same exception being logged.
- Error context was added so that it is easier to solve issues
- The context can also include "What to do" instructions to the user in case they can fix the issue themselves, in cases like File permission errors.
- Up to 5 contexts are logged in order to avoid these log files from growing endlessly.
- Error stacktraces are no longer logged to console to avoid console logs becoming large.
- Default log deletion setting was reverted back to 7 days
- Extension method disabling (if a method throws an exception) should now work properly
Other
- Chinese locale was updated by Fur_xia and Karlatemp
- Deutsch locale was updated by hallo1142
- Spanish locale was updated by itaquito
- Some pages erroring when using a locale were fixed by Karlatemp
- Some links getting translated was fixed by Karlatemp
- Update check is now performed asynchronously on enable (by Karlatemp)
- A typo in a comment in ServerInfoFile.yml was fixed by aimorris
- Registration information now expires after 15 minutes (Fixes a memory leak)
Change log 5.1 build 563
This update contains bugfixes.
Special thanks to yukieiji, Saph1s & shaokeyibb for their contributions to this update.
Changes
Activity Index
Website
- Fixed activity index inconsistencies between player and server/network/players pages. The inconsistencies were due to the SQL ignoring weeks with no playtime, leading to higher activity index than supposed to. The issue was not caught earlier due to improper unit testing, but now the consistency is guaranteed with randomized data in the tests.
Locale
- Passwords that include characters &, = or ? can be used again
- Login cookies now expire appropriately in the backend (Fixes a small memory leak)
- HEAD http requests now return no request body
- Network page serverlist scrollbar height increased from 60% to 85%
- Fixed Ping graph colors not being applied
Other
- Added Russian (RU) locale by Saph1s
- Japanese locale was updated by yukieiji
- Chinese locale was updated by shaokeyibb
- A couple users have been reporting large error logs due to "MySQL Connection Pool is closed". As a remedy default log deletion threshold in config was reduced to 2 days. In addition some more timeouts were added to HTTP connections in IP2C geolocator in case the pool close is caused by a socket leak. Issue #1246 to improve error file logging was bumped to high priority.