- Moved ServerTable#getServerUUIDsByID to NicknameLastSeenPatch
- Removed unused things in UserInfoTable, Setting & RawDataResponse
- Refactored FileWatcher into smaller methods
- Renamed 'locale' in DateFormatter (Hiding an instance variable)
- Now only UPDATE, INSERT, DELETE & REPLACE statements are executed
using executeUpdate. Rest is executed using execute.
- This fixes database patching on 1.13.2 (SQLite 3.25.0 or newer)
- Replaced user_id with uuid
- Replaced server_id with server_uuid
- Changed network page related user counts to Map<UUID, Integer> instead
of Map<Integer, Integer> signature (Server UUID instead of id)
- Added missing rethrow clause to RegisterCommand that caused error meant
to the user being logged instead.
- Fixed username placeholder replacement to success message
Fixed NPE when a null runnable was given to Processing.
This occurs when Geolocation gathering is off and register processing
adds a null instead of the IP processor.
- Added a new config updater that can move and remove config values
- Updated the config format to be easier to understand and read.
- Made config updater update old configs to the new format
- Removed Settings enum
- Added generics to Setting, changed from interface to a class
- Created new classes that hold static Setting objects
- Added generics to PlanConfig
- Added PlanConfig#get for getting Setting with generic types.
- Moved config calls made during object initialization,
possibly eliminating bugs that ignored config settings on first boot
- Added more export settings
- Added JSON Export (#700)
- Fixed Buycraft graph not following Locale setting for timestamps
- Extracted PluginBridge Bridge interface for mocking during tests
javax.xml was removed in recent Java versions, so depending on it breaks
compatibility with servers running on them. The Base64 class is the way
to use Base64 serialization.
- Added Selenium test dependency
- Added Awaitility test dependency
- Added SeleniumDriver junit Rule that uses Chrome WebDriver
- Added all web files to Mocker in withPluginFiles()
- Added JSErrorRegressionTest
- Fixed Debug page error when testing
- Fixed BukkitTaskSystem error during tests
- Fixed missing demo.js from HtmlExport
These tests should prevent most issues of broken page in the future.
Empty box for some PluginData was displayed if only Player table values
were present (Plugins/Player Data tab)
This was because at some point there was confusion about the integration
not working as intended. If the confusion arises again, I'll figure
something else out, but it'll most likely mean adding values to empty
PluginData rather than displaying empty box.
- private constructor for DebugChannels, RedisCheck, VersionInfoLoader
- shortened RedisCheck code to use Check
- InfoRequests delegation instead of extension of HashMap to avoid
serialization issues.
- Moved InfoRequestHandlerFactory inside InfoRequestFactory.Handlers
to avoid duplicate constructor and variable pointers.
- Removed Lazy call to itself from the constructor
- equals+hashcode to StackDataSet, ErrorResponse
- Refactored a while loop in VersionInfoLoader to not have two continue
statements
- Replaced all uses of boxed primitive type Suppliers with specialized
suppliers Eg. Supplier<Integer> with IntSupplier
- Replaced uses of CharSet.forName("UTF-8") with StandardCharsets.UTF-8
- Removed Class.forName("org.h2.Driver") as this check is not required
since JDBC drivers in the classpath are always loaded since JDK 6.