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()); + } } }