diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/CommandHelpHandler.java b/cloud-core/src/main/java/com/intellectualsites/commands/CommandHelpHandler.java index 910dbcf0..5076ae90 100644 --- a/cloud-core/src/main/java/com/intellectualsites/commands/CommandHelpHandler.java +++ b/cloud-core/src/main/java/com/intellectualsites/commands/CommandHelpHandler.java @@ -148,6 +148,8 @@ public final class CommandHelpHandler { final List> availableCommands = new LinkedList<>(); final Set availableCommandLabels = new HashSet<>(); + boolean exactMatch = false; + for (final VerboseHelpEntry entry : verboseEntries) { final Command command = entry.getCommand(); @SuppressWarnings("unchecked") final StaticArgument staticArgument = (StaticArgument) command.getArguments() @@ -160,6 +162,13 @@ public final class CommandHelpHandler { } } + for (final String alias : staticArgument.getAliases()) { + if (alias.equalsIgnoreCase(rootFragment)) { + exactMatch = true; + break; + } + } + if (rootFragment.equalsIgnoreCase(staticArgument.getName())) { availableCommandLabels.clear(); availableCommands.clear(); @@ -172,7 +181,7 @@ public final class CommandHelpHandler { /* No command found, return all possible commands */ if (availableCommands.isEmpty()) { return new IndexHelpTopic<>(Collections.emptyList()); - } else if (availableCommandLabels.size() > 1) { + } else if (!exactMatch || availableCommandLabels.size() > 1) { final List> syntaxHints = new ArrayList<>(); for (final Command command : availableCommands) { final List> arguments = command.getArguments();