From d6ce74f2d942cd0929016708f1785239209dd970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20S=C3=B6derberg?= Date: Mon, 21 Sep 2020 19:29:15 +0200 Subject: [PATCH] Minor improvements to the help system --- .../commands/CommandHelpHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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();