- GeoLite2 downloads the file using License key, only if EULA is accepted
- Fallback to IP2C if GeoLite2 is not available
- Remove GeoIP.dat after successfully downloading GeoLite2-Country.mmdb
- Added case where geolocation fails to enable and doesn't cause issues
- Adds Apache commons-compress to the dependencies because of a tar archive
Affects issues:
- Fixed#1273
- Some extension API implementation things refactored
- getOrDefault+put calls replaced with computeIfAbsent
using Maps#create, Lists#create
- stream().map(mapper).collect(toList/toSet) optimized
using Lists#map, #mapUnique
- stream().filter(by).collect(toList) optimized
using Lists#filter
- Removed unused code in Reflection
- Removed duplicated Strings in GMTimes
- Added private constructor to TimeZoneUtility
- Renamed local variable in RegisterDateMinimizationPatch
- Replaced Function<String, Boolean> with Predicate in ExtensionRegister
- Changed AFKListeners to use primitive boolean
- Changed Config#get(Setting<Boolean>) uses to isTrue and isFalse
- comment to NukkitListenerSystem
An earlier fix attempt for another bug #247 (ages ago)
was still in the code, moving 12 am to the next day by
adding 24 hours to the time.
Fixed by removing the check
Affects issues:
- Fixed#712
- Added Config setting Webserver.Security.CORS.Allow_origin
- Webserver returns the header for all requests
- Added an HTTP 204 response for OPTIONS-method to speed up CORS requests.
Affects issues:
- Close#1251
- 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