From e399715133b17e72c8a608344564d9639a3f3a4d Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Thu, 15 Oct 2026 17:45:33 +0000 Subject: [PATCH] fix: filter research completion by the current prefix --- .../java/net/tfminecraft/research/command/CommandManager.java | 4 +++- .../java/net/tfminecraft/research/ResearchLifecycleTest.java | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) 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",""})); } }