From b298aeee9f5e97d4d1819783bcfde2e62993db69 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: hide player-only surgery suggestions from console --- .../net/tfminecraft/surgery/commands/SurgeryCommand.java | 5 ++++- .../net/tfminecraft/surgery/commands/SurgeryCommandTest.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/tfminecraft/surgery/commands/SurgeryCommand.java b/src/main/java/net/tfminecraft/surgery/commands/SurgeryCommand.java index 21cbe7d..f230114 100644 --- a/src/main/java/net/tfminecraft/surgery/commands/SurgeryCommand.java +++ b/src/main/java/net/tfminecraft/surgery/commands/SurgeryCommand.java @@ -207,6 +207,9 @@ private boolean checkCanStart(Player surgeon, Player patient) { @Override public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + if (!(sender instanceof Player player)) { + return List.of(); + } List options = new ArrayList<>(); if (args.length != 1) { return options; @@ -217,7 +220,7 @@ public List onTabComplete(CommandSender sender, Command command, String options.add(sub); } } - if (sender instanceof Player player && canOperate(player)) { + if (canOperate(player)) { for (Player online : Bukkit.getOnlinePlayers()) { if (!online.equals(player) && player.canSee(online) && online.getName().toLowerCase(Locale.ROOT).startsWith(prefix)) { diff --git a/src/test/java/net/tfminecraft/surgery/commands/SurgeryCommandTest.java b/src/test/java/net/tfminecraft/surgery/commands/SurgeryCommandTest.java index ffebf00..78d1fa5 100644 --- a/src/test/java/net/tfminecraft/surgery/commands/SurgeryCommandTest.java +++ b/src/test/java/net/tfminecraft/surgery/commands/SurgeryCommandTest.java @@ -252,6 +252,9 @@ void completionFiltersByPermissionVisibilityPrefixAndArgumentPosition() { assertTrue(command.onTabComplete(surgeon, bukkitCommand, "surgery", new String[]{"PA"}).isEmpty()); when(surgeon.hasPermission(anyString())).thenReturn(false); assertEquals(List.of("accept", "deny"), command.onTabComplete(surgeon, bukkitCommand, "surgery", new String[]{""})); - assertEquals(List.of("accept"), command.onTabComplete(mock(CommandSender.class), bukkitCommand, "surgery", new String[]{"A"})); + assertEquals(List.of("accept"), command.onTabComplete(surgeon, bukkitCommand, "surgery", new String[]{"A"})); + assertTrue(command.onTabComplete(mock(CommandSender.class), bukkitCommand, "surgery", new String[]{""}).isEmpty()); + assertTrue(command.onTabComplete(mock(CommandSender.class), bukkitCommand, "surgery", new String[]{"A"}).isEmpty()); + assertTrue(command.onTabComplete(mock(CommandSender.class), bukkitCommand, "surgery", new String[]{"deny"}).isEmpty()); } }