- Drop initialization of all columns on table create in favor of checking each column individually. This is slower but guarantees that each column is only defined once in the code. Columns are only created once so having clean code outweighs performance.
- Write more datasource integration tests
- New injector method allows to retrieve services if they've already been instantiated -> useful for onDisable() which might be run after aborted initialization
- Deprecate various methods that need to be removed
- Use field on PlayerListener for storing nickname pattern -> repeatedly parsing pattern is expensive
- Remove unused legacy setting fields
- ForceFlatToSqlite cannot be run from converter command -> remove Converter interface to create more natural method signatures
- Make /authme unregister behave the same way as /unregister for optional registration: user is informed but can continue playing; no teleportation to spawn
- Various migrations from legacy settings to new settings
- PlayerListener: use shouldCancelEvent() to see if chat should be canceled
- Merge permission manager listener with general server listener
- Move console initialization for tests into TestHelper
- Remove unused properties in legacy Settings
- Add issue number to TODO comments where applicable
- Create validation service; fixes same code being duplicated in four places
- Goal is to remove Utils class, by moving methods to validation service or other services
- Remove unused properties in legacy settings
- Adjust javadoc
- Remove unused PlayerAuth constructor
- Replace legacy Settings with NewSetting calls
- Add process service to all (a)sync processes
- Change IP manager to only cache the calls to the VeryGames API
- Create IP address manager for handling and caching IP addresses -> outside of the manager I do not want to care about caching details
- Make more processes use the ProcessService in favor of statically injected objects
- Harmonize configuration paths in code and in config.yml (fixes failing unit test)
- Add way to load Property objects in legacy Settings
- Create migration for delayJoinLeaveMessages to separate delayJoin..., removeJoin... and removeLeave...
- Create SettingsMigrationService#copyFileFromResource (inspired from CustomSettings)
- Use new method to copy missing files in plugin folder from JAR
- Create YamlFileConfiguration inside NewSetting: FileConfiguration object provided by JavaPlugin#getConfig() sets default values from the JAR's config.yml :(
- Change ConsoleLogger to take logger from plugin (work in progress)