From 3049a18f882948f03fecd34dd9023b470f3eb0ca Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Mon, 20 May 2024 05:31:38 -0700 Subject: [PATCH] Only show commands that the player can use in `/help` --- src/main/java/emu/lunarcore/command/CommandManager.java | 2 +- .../java/emu/lunarcore/command/commands/HelpCommand.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/lunarcore/command/CommandManager.java b/src/main/java/emu/lunarcore/command/CommandManager.java index 95f15f6..a473ce2 100644 --- a/src/main/java/emu/lunarcore/command/CommandManager.java +++ b/src/main/java/emu/lunarcore/command/CommandManager.java @@ -86,7 +86,7 @@ public class CommandManager { * @param command * @return true if the sender has permission to use this command */ - private boolean checkPermission(Player sender, Command command) { + public boolean checkPermission(Player sender, Command command) { if (sender == null || command.permission().isEmpty()) { return true; } diff --git a/src/main/java/emu/lunarcore/command/commands/HelpCommand.java b/src/main/java/emu/lunarcore/command/commands/HelpCommand.java index 9dad813..0e14230 100644 --- a/src/main/java/emu/lunarcore/command/commands/HelpCommand.java +++ b/src/main/java/emu/lunarcore/command/commands/HelpCommand.java @@ -12,12 +12,17 @@ public class HelpCommand implements CommandHandler { public void execute(CommandArgs args) { args.sendMessage("Displaying list of commands:"); + // Sort command names var labels = LunarCore.getCommandManager().getLabels().keySet().stream().sorted().toList(); for (var label : labels) { + // Get command Command command = LunarCore.getCommandManager().getLabels().get(label).getClass().getAnnotation(Command.class); if (command == null) continue; - args.sendMessage(command.desc()); + // Only send command description if the sender has permission to use the command + if (LunarCore.getCommandManager().checkPermission(args.getSender(), command)) { + args.sendMessage(command.desc()); + } } }