5.4 build 1690
5.4 build 1690
This update fixes some annoying bugs and prepares the plugin for the move to 5.5 and Java 11 while keeping this version compatible for those unable to update their servers to Java 11.
If no further critical bugs surface next update will be 5.5.
Change log
Plugin stability
- Fixed issue where Plan would prevent server enable from continuing if database was not responsive during enable.
- Fixed 2 crashes when database write latency is high
- Fixed thread starvation crash during high latency when using ViaVersion or ProtocolSupport
- Reduced chance of out of memory crash when during high latency by starting to drop plugin data transactions for a while if queue grows over 500 transactions. (The transactions continue if queue returns to <50)
Database
Join address schema change
- Join addresses are now stored in plan_join_address table and id referencing that is added to plan_sessions table for time based analysis implementation later.
- Backwards compatible schema change - old versions will insert 'unknown' as each sessions address.
- plan_user_info.join_address column was not removed, but its use is discouraged for 3rd parties as its use may be removed in the future.
Fixes to patches
- Fixed UserInfoOptimizationPatch resetting join_address data when applied
- Fixed typo in RemoveDanglingServerDataPatch that caused it to fail
- Possibly improved speed of RemoveDanglingUserDataPatch
Other fixes to database
- Prevented transactions from executing if database ran into fatal error. This reduces amount of errors logged on a failed patch
- Fixed error related to user_id constraint violation for Ping and Session store transactions. If they execute faster than the user register transaction the player will not have up-to-date information until the proper transaction executes, but the storage of other data will no longer fail.
- Prevented ActiveCookieStore related DbOpException if plugin failed to enable
Website
- Server page > Performance now lists Average players under Performance as Numbers.
Frontend BETA
- Implemented player ping graph on the player page when opted into frontend beta
- Fixed nickname list not showing colors properly
- Fixed terminal icon not loading when user registered with console
- Fallback to using relative address if Alternative_IP is misconfigured to reduce confusion. Previously nothing would load if address was different, now there's a chance something loads.
Placeholders
- Wrote tests for placeholders
- Fixed player_recent_kill_{1-10} and player_recent_death_{1-10} off-by-one mistake and related error for n=10.
- Fixed player_unique_players_today erroring if there had been no sessions during today.
- New placeholders
- %plan_player_current_session_length%: The length of active session (Online time)
- %plan_player_current_session_length_raw%: unformatted ms
- %plan_player_latest_session_length%: The length of active session or previous session if not online
- %plan_player_latest_session_length_raw%: unformatted ms
- %plan_player_previous_session_length%: The length of previous non-active session even if online
- %plan_player_previous_session_length_raw%: unformatted ms
- player_ placeholders now support adding :playername or :uuid at the end of placeholder to show data for another player
- Note that if the player by given identifier is not found the placeholder is not replaced.
Other bugfixes
- Console will now log colors properly on Bukkit and Bungee based servers
- Fixed some _raw placeholders from being formatted
- Fixed Error related to GriefDefender Extension