diff --git a/src/main/java/net/tfminecraft/research/command/CommandManager.java b/src/main/java/net/tfminecraft/research/command/CommandManager.java index 5ee3b1d..07ea4f7 100644 --- a/src/main/java/net/tfminecraft/research/command/CommandManager.java +++ b/src/main/java/net/tfminecraft/research/command/CommandManager.java @@ -2,6 +2,7 @@ import java.util.Collections; import java.util.List; +import java.util.Locale; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -43,7 +44,8 @@ public List onTabComplete(CommandSender sender, Command command, String return Collections.emptyList(); } if (args.length == 1) { - return SUBCOMMANDS; + String prefix = args[0].toLowerCase(Locale.ROOT); + return SUBCOMMANDS.stream().filter(sub -> sub.startsWith(prefix)).toList(); } return Collections.emptyList(); } diff --git a/src/test/java/net/tfminecraft/research/ResearchLifecycleTest.java b/src/test/java/net/tfminecraft/research/ResearchLifecycleTest.java index 5d7d9ae..5893581 100644 --- a/src/test/java/net/tfminecraft/research/ResearchLifecycleTest.java +++ b/src/test/java/net/tfminecraft/research/ResearchLifecycleTest.java @@ -131,6 +131,9 @@ class ResearchLifecycleTest { commands.onCommand(sender,command,"research",new String[]{"RELOAD"}); verify(sender).sendMessage("reload.success"); commands.onCommand(sender,command,"research",new String[]{"bad"}); verify(sender).sendMessage("command.unknown_subcommand"); assertEquals(List.of("reload"),commands.onTabComplete(sender,command,"research",new String[]{""})); + assertEquals(List.of("reload"),commands.onTabComplete(sender,command,"research",new String[]{"RE"})); + assertEquals(List.of("reload"),commands.onTabComplete(sender,command,"research",new String[]{"reload"})); + assertEquals(List.of(),commands.onTabComplete(sender,command,"research",new String[]{"zzz"})); assertEquals(List.of(),commands.onTabComplete(sender,command,"research",new String[]{"reload",""})); } }