If the default isn't null (for Discord, it could find the channel) then it'd use set() - but that isn't allowed to do anything, so the value isn't saved
Currently, the server runs on Java 8 and some plugins, notably Terrain Control depend on a version-specific hack. Now, we do want to drop TC anyway to upgrade to 1.14.4 but there's also the goal of sharing this plugin for others, who likely run Java 8.
It took me a while to figure out how to make it work with Lombok - have to use the right order.
The command argument processing and permission checking is done asynchronously, mainly because LuckPerms (rightfully) complains that loading player data (for unconnected DC users) should not be done on the main thread.
The actual command execution is still done on the main thread.
Removed Vault repo as it seems to be offline and wasn't even used
Fixed CommandSender type, no subcommands handling
Made the default handler use the correct sender type (actually, the generic type might be completely unnecessary but oh well)
No longer checking param types to match methods (needed for generic types)
Fixed/implemented number handling in config
Fixed help text error
Fixed annotation processing in other plugins
Fixed error message on console chat
Fixed CI building (hopefully) - Spigot repo
Fixed default command handler not being overridable in some cases
Schrestart now takes seconds as param, not ticks
Allowing to change the current timer value in the restart event
HelpText support added
Automatically generating usage text (ButtonProcessor)
Separated enabling the component from registering it - a component will be always registerd, even if it's disabled
Component data implemented similarily to player data, just kind of better
Bunch of changes, less code repetition
SendChatMessage now takes a ChatMessage param (with a builder)
Code cleanup
/schrestart error msg added
Whole plugin update made async (the plugin list)
Javadoc additions