44import cz .foresttech .commandapi .paper .argument .PlayerArgumentProcessor ;
55import cz .foresttech .commandapi .shared .AbstractCommandAPI ;
66import org .bukkit .OfflinePlayer ;
7- import org .bukkit .command .Command ;
8- import org .bukkit .command .CommandExecutor ;
9- import org .bukkit .command .CommandSender ;
7+ import org .bukkit .command .*;
108import org .bukkit .entity .Player ;
119import org .bukkit .plugin .java .JavaPlugin ;
1210import org .jetbrains .annotations .NotNull ;
11+ import org .jetbrains .annotations .Nullable ;
1312
14- public class CommandAPI extends AbstractCommandAPI <CommandSenderWrapper > implements CommandExecutor {
13+ import java .util .List ;
14+
15+ public class CommandAPI extends AbstractCommandAPI <CommandSenderWrapper > implements CommandExecutor , TabCompleter {
1516
1617 private final JavaPlugin javaPlugin ;
1718
@@ -20,9 +21,15 @@ public CommandAPI(JavaPlugin javaPlugin) {
2021 }
2122
2223 @ Override
23- public boolean onCommand (@ NotNull CommandSender commandSender , @ NotNull Command command , @ NotNull String s , @ NotNull String [] strings ) {
24+ public boolean onCommand (@ NotNull CommandSender commandSender , @ NotNull Command command , @ NotNull String s , @ NotNull String [] args ) {
25+ CommandSenderWrapper senderWrapper = new CommandSenderWrapper (commandSender );
26+ return onCommand (senderWrapper , command .getName (), args );
27+ }
28+
29+ @ Override
30+ public @ Nullable List <String > onTabComplete (@ NotNull CommandSender commandSender , @ NotNull Command command , @ NotNull String label , @ NotNull String [] args ) {
2431 CommandSenderWrapper senderWrapper = new CommandSenderWrapper (commandSender );
25- return onCommand (senderWrapper , command .getName (), strings );
32+ return tabComplete (senderWrapper , command .getName (), args );
2633 }
2734
2835 @ Override
@@ -32,9 +39,14 @@ protected void setup() {
3239 }
3340
3441 @ Override
35- protected void register () {
36- javaPlugin .getServer ().getCommandMap ().getKnownCommands ().values ().forEach (command -> {
37- javaPlugin .getCommand (command .getName ()).setExecutor (this );
38- });
42+ protected boolean registerToPlatform (String cmdName ) {
43+ PluginCommand pluginCommand = javaPlugin .getCommand (cmdName );
44+ if (pluginCommand == null ) {
45+ return false ;
46+ }
47+
48+ pluginCommand .setExecutor (this );
49+ pluginCommand .setTabCompleter (this );
50+ return true ;
3951 }
4052}
0 commit comments