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)
The channel is no longer required for sending a message
All user accounts now store which channel they are in to make things simpler
Added the concept of 'sender converters' which is used to get the CG user which sent a command for example
No longer allowing getAs() for the same user type
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