- Implemented APF for Nukkit
- Copied Bukkit implementation and modified it for Nukkit
- Fixed SQLite not being present on Nukkit by switching to H2 on boot
Affects issues:
- Close#1020
TimeZone setting accepts 'GMT+2', 'GMT-05:30', 'UTC' and 'server'
Accidentally discovered a bug where first boot used UTC when default was
supposed to be server timezone. The bug was fixed by removing
PlanConfig#getTimeZone calls in different constructors.
Affects issues:
- Close#718
Reason: Parse means extracting information - In many cases the word was being
used wrong (In Finnish 'parsia' means 'to patch together', which caused
the wrong use)
The word 'parse' replaced with 'build', 'create' or 'generate' where appropriate
Reasoning: 'Handler' does not give extra information to the reader.
'Resolver' tells something is being decided/found answer to
or resolution is found (Response in this case)
- Comments related to Response Handlers were updated.
- One missed Response in ResponseResolver now built using
ResponseFactory
Save was preventing unnecessary transactions
from being skipped, leading to hang during
session shutdown save.
Fixed by moving the wait to only JVM
shutdown save, and trusting on database
shutdown transaction execution to do
the job.
Affects issues:
- Fixed#1241
Server calendar had an issue with days going on
the wrong date if timezone was negative GMT.
Fixed the issue by implementing a timezone
independent ISO-8601 formatter to use with the dates on
the session calendar. The date given to ServerCalendar is already
set to midnight on each day.
Affects issues:
- Fixed#1239
An issue in register date minimization was reported,
which was caused by a flipped < in
PlayerServerRegisterTransaction - Maximizing the
register date instead.
< was flipped and a Patch was written to fix the
incorrect data.
PlayerPageExporter was exporting player json file to player%3Duuid.json
but browser parsed that to be file player=uuid.json, leading to the
player page not loading the value
This was because copy-pasting the PageExporter from Server page missed
server= being replaced, while player= was supposed to be replaced.
Fixed by changing server= to player=
Affects issues:
- Fixed#1223
Previous path did not match the path used in player.html, leading to
the path not being replaced in the exported files.
Now the new path should be replaced into the files, allowing people to
view exported player.html data.
Affects issues:
- Fixed#1223
On networks register date is not available so plan_users register date
was set as the first login date Plan sees the player. This lead to
confusion when Plan was installed and old players were counted as
new players by Plan since it had not seen them before.
Code was changed to reduce confusion by updating the register date
in plan_users to smallest possible value if register date exists on a
bukkit server.
Activity index grouping query for /network page was using plan_user_info
instead of plan_users.
This lead to duplication of users if a player had played on multiple
servers.
Affects issues:
- Fixed#1216
Changed Redirects
From / -> "/server/" to /server/ServerName
From /server/Unexisting -> "/server/" to "/server/ServerName"
Affects issues:
- Close 1210
Fixes an issue where authentication is not required but is present
anyway, leading to WebAuthFailException when trying to get
web user for authentication headers coming from a reverse-proxy.
Affects issues:
- #1215
- This might increase memory usage when viewing player page by a little
- This might increase time it takes to get player page json
- 'avg_ping' is not always present for a session
Affects issues:
- Close#864
Playtime was not being updated live for the player placeholders because
the Active session was not added in the PlayerContainer before
calculations.
- Added the active session (if present) to the placeholders
- Updated session state when it is fetched from the cache (world time)
Affects issues:
- Close#1209
- Fixed possible null issues with NicknameCache
- Removed bunch of unused code, such as:
- Point reduction algorithm implementations
- HighCharts data String parsing methods
- Unused Mutators
- Unused AnalysisKeys
- Leftovers from ConnectionSystem (Response codes)
- Unused queries (Leftovers from Server box and Players table queries)
- rendering.html.icon.Icons
- Made bunch of fields final
Note that old deprecated API classes do not have signature changes.