```java
@CommandAlias("foo")
@Subcommand("bar")
class FooBarCommand {
@Default
public void onFooBar(CommandIssuer issuer) {}
}
```
Will now pass `/foo bar` to onFooBar.
Previously this required @Subcommand("") which was unintuitive
This adds the ability for plugins to define completion handlers as async safe (not on games main thread)
When they are defined async safe, and ran on a Paper 1.12.2+ server, with a Paper ACF manager,
completions will be handled mostly async, letting you safely do heavier operations in tab completions.
Apparently doing it in the ctor is a different order.
The addReplacements call in CommandReplacements checks registeredCommands in the constructor
This was being called before Bukkit manager even fully loaded, and the registered commands was still null
I don't know why java can't treat this the same code wise....
@Subcommand("list") @Default
public void onFoo(CommandSender sender, @Default("1") Integer page) {}
type stuff will now work with /cmd list 2 and /cmd 2
* 'feature/help' of https://github.com/mrkirby153/commands:
Generify help generation
Rework how help is generated
First revision of help system
Wire up command descriptions
Slight risk of API breakage but risk is minimal enough that I'm not bumping versions.
0.5.0 Migration guide suggested (Platform)CommandManager, which will set the generics for you.
Only if you stored the ref as the Abstract CommandManager would you now run into generic issues.
Also, cleaned up the sendMessage API's to not need Object now since we know the Generic type.
This is technically an API break, but considering Locales was only released last night and
the likelyhood someone overrode that method, is unlikey.
If you did, just fix the method signature! Sorry <3