diff --git a/CommandFramework/src/de/steamwar/command/AbstractSWCommand.java b/CommandFramework/src/de/steamwar/command/AbstractSWCommand.java index 7ec88017..5062319f 100644 --- a/CommandFramework/src/de/steamwar/command/AbstractSWCommand.java +++ b/CommandFramework/src/de/steamwar/command/AbstractSWCommand.java @@ -91,9 +91,13 @@ public abstract class AbstractSWCommand { if (commandList.stream().noneMatch(s -> s.invoke(errors::add, sender, alias, args))) { errors.forEach(Runnable::run); } else return; - if (errors.isEmpty() && helpCommandList.stream().noneMatch(s -> s.invoke(errors::add, sender, alias, args))) { - errors.forEach(Runnable::run); + if (!errors.isEmpty()) return; + for (SubCommand help : helpCommandList) { + // Generic help must not hide the error of a more specific command + if (help.noTabComplete && !errors.isEmpty()) break; + if (help.invoke(errors::add, sender, alias, args)) return; } + errors.forEach(Runnable::run); } catch (CommandFrameworkException e) { commandSystemError(sender, e); throw e;