The issue was that I was adding to a builder after it was used to build
With the command class passed, it only works with /plugin:cmd and doesn't give hints for the arguments
Without the command class, it doesn't show the next argument until it's typed in and also accepts invalid subcommands
#82
Removed project files
Added permission for each subcommand (#89)
Made separate instances of the command handler for each plugin
Spent a lot of time crafting type arguments then realized it won't work (per-plugin managers)
#87
Fixed permission issue without perm plugin (#74)
Checking Bukkit perms if Vault says no, so PEX works with default perms (#80)
Most of the time it just means checking the perm plugin twice since the PermissibleBase is injected usually
Fixed read-only config handling (here as well)
Added a warning for RandomTP if the worldborder is too large (#70)
Implemented config comments with the help of Towny's CommentedConfiguration
TODO: Glboal config, remove Towny dep
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.