From 7fe4c65820d012d684405c56942b01da8e77bd23 Mon Sep 17 00:00:00 2001 From: Anatoliy Sablin Date: Mon, 6 Nov 2017 16:34:39 +0300 Subject: Added help command. --- .../src/main/java/com/juick/command/Processor.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'juick-commands/src/main/java/com/juick/command/Processor.java') diff --git a/juick-commands/src/main/java/com/juick/command/Processor.java b/juick-commands/src/main/java/com/juick/command/Processor.java index 51ce2830..60815d16 100644 --- a/juick-commands/src/main/java/com/juick/command/Processor.java +++ b/juick-commands/src/main/java/com/juick/command/Processor.java @@ -11,8 +11,6 @@ import org.springframework.stereotype.Component; import java.util.Set; import java.util.regex.Pattern; -import java.util.stream.Collectors; -import javax.annotation.PostConstruct; /** * @author ma1uta @@ -26,30 +24,23 @@ public class Processor { private final Set commands; @Setter private ProtocolListener protocolListener; - private String help; @Autowired public Processor(Set commands) { this.commands = commands; } - @PostConstruct - public void init() { - this.help = - "HELP - returns this help message.\n" + getCommands().stream().map(Command::help).sorted().collect(Collectors.joining("\n")); - } - public String execute(User sender, String command) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Execute command: {}", command); } command = command != null ? command.trim() : ""; - if ("help".equalsIgnoreCase(command)) { - LOGGER.debug("Show help"); - return getHelp(); - } Command defaultCommand = null; + Command helpCommand = null; for (Command commandItem : getCommands()) { + if (commandItem instanceof ShowHelp) { + helpCommand = commandItem; + } Pattern pattern = commandItem.pattern(); if (pattern != null && pattern.matcher(command).matches()) { if (LOGGER.isDebugEnabled()) { @@ -68,6 +59,6 @@ public class Processor { return defaultCommand.execute(sender, getProtocolListener(), command); } LOGGER.debug("Command processor not found, return help"); - return getHelp(); + return helpCommand != null ? helpCommand.execute(sender, getProtocolListener(), command) : "Help not found"; } } -- cgit v1.2.3