diff --git a/src/main/java/net/minestom/server/command/CommandProcessor.java b/src/main/java/net/minestom/server/command/CommandProcessor.java index 0bbf3afd5..43ace9eb0 100644 --- a/src/main/java/net/minestom/server/command/CommandProcessor.java +++ b/src/main/java/net/minestom/server/command/CommandProcessor.java @@ -57,12 +57,12 @@ public interface CommandProcessor { boolean hasAccess(@NotNull Player player); /** - * Needed to enable {@link #onWrite(String)} callback. + * Needed to enable {@link #onWrite(CommandSender, String)} callback. *

* Be aware that enabling it can cost some performance because of how often it will be called. * * @return true to enable writing tracking (and server auto completion) - * @see #onWrite(String) + * @see #onWrite(CommandSender, String) */ default boolean enableWritingTracking() { return false; @@ -73,21 +73,6 @@ public interface CommandProcessor { *

* WARNING: {@link #enableWritingTracking()} needs to return true, you need to override it by default. * - * @param text the whole player text - * @return the array containing all the suggestion for the current arg (split " "), can be null - * @see #enableWritingTracking() - */ - @Nullable - default String[] onWrite(@NotNull String text) { - return null; - } - - /** - * Allows for tab auto completion, this is called everytime the player press a key in the chat. - *

- * WARNING: {@link #enableWritingTracking()} needs to return true, you need to override it by default. - * This does not work if {@link #onWrite(String) is overriden} - * * @param sender the command sender * @param text the whole player text * @return the array containing all the suggestions for the current arg (split " "), can be null diff --git a/src/main/java/net/minestom/server/command/builder/Command.java b/src/main/java/net/minestom/server/command/builder/Command.java index dfd57f194..bd9e42559 100644 --- a/src/main/java/net/minestom/server/command/builder/Command.java +++ b/src/main/java/net/minestom/server/command/builder/Command.java @@ -254,11 +254,12 @@ public class Command { * when in a dynamic argument ({@link ArgumentDynamicWord} (when {@link SuggestionType#ASK_SERVER} is used) * and {@link ArgumentDynamicStringArray}). * - * @param text the whole player's text + * @param sender the command sender + * @param text the whole player's text * @return the array containing all the suggestion for the current arg (split " "), can be null */ @Nullable - public String[] onDynamicWrite(@NotNull String text) { + public String[] onDynamicWrite(@NotNull CommandSender sender, @NotNull String text) { return null; } diff --git a/src/main/java/net/minestom/server/listener/TabCompleteListener.java b/src/main/java/net/minestom/server/listener/TabCompleteListener.java index d845548a8..ea8f27eb8 100644 --- a/src/main/java/net/minestom/server/listener/TabCompleteListener.java +++ b/src/main/java/net/minestom/server/listener/TabCompleteListener.java @@ -25,10 +25,7 @@ public class TabCompleteListener { final CommandProcessor commandProcessor = COMMAND_MANAGER.getCommandProcessor(commandName); if (commandProcessor != null) { final int start = findStart(text, split); - String[] matches = commandProcessor.onWrite(text); - if (matches == null) { - matches = commandProcessor.onWrite(player, text); - } + final String[] matches = commandProcessor.onWrite(player, text); if (matches != null && matches.length > 0) { sendTabCompletePacket(packet.transactionId, start, matches, player); } @@ -37,7 +34,7 @@ public class TabCompleteListener { final Command command = COMMAND_MANAGER.getCommand(commandName); if (command != null) { final int start = findStart(text, split); - final String[] matches = command.onDynamicWrite(text); + final String[] matches = command.onDynamicWrite(player, text); if (matches != null && matches.length > 0) { sendTabCompletePacket(packet.transactionId, start, matches, player); } diff --git a/src/test/java/demo/commands/ReloadExtensionCommand.java b/src/test/java/demo/commands/ReloadExtensionCommand.java index 17d94feeb..8cd9d75fb 100644 --- a/src/test/java/demo/commands/ReloadExtensionCommand.java +++ b/src/test/java/demo/commands/ReloadExtensionCommand.java @@ -80,7 +80,7 @@ public class ReloadExtensionCommand extends Command { @Nullable @Override - public String[] onDynamicWrite(@NotNull String text) { + public String[] onDynamicWrite(@NotNull CommandSender sender, @NotNull String text) { return extensionsName; } diff --git a/src/test/java/demo/commands/SimpleCommand.java b/src/test/java/demo/commands/SimpleCommand.java index ae9ababc4..0e3cd0b54 100644 --- a/src/test/java/demo/commands/SimpleCommand.java +++ b/src/test/java/demo/commands/SimpleCommand.java @@ -40,7 +40,7 @@ public class SimpleCommand implements CommandProcessor { } @Override - public String[] onWrite(@NotNull String text) { + public String[] onWrite(@NotNull CommandSender sender, @NotNull String text) { return new String[]{"Complete1", "Complete2"}; } }