diff --git a/src/org/yaaic/command/CommandParser.java b/src/org/yaaic/command/CommandParser.java index e74e8a4..f2b11eb 100644 --- a/src/org/yaaic/command/CommandParser.java +++ b/src/org/yaaic/command/CommandParser.java @@ -21,7 +21,6 @@ along with Yaaic. If not, see . package org.yaaic.command; import java.util.HashMap; -import java.util.Set; import android.content.Intent; @@ -61,6 +60,7 @@ public class CommandParser public static final String TAG = "Yaaic/CommandParser"; private HashMap commands; + private HashMap aliases; private static CommandParser instance; private final static String[] serverCommands = { @@ -99,9 +99,11 @@ public class CommandParser commands.put("mode", new ModeHandler()); commands.put("help", new HelpHandler()); + aliases = new HashMap(); // Aliases - commands.put("j", commands.get("join")); - commands.put("q", commands.get("query")); + aliases.put("j","join"); + aliases.put("q", "query"); + aliases.put("h", "help"); } /** @@ -123,11 +125,22 @@ public class CommandParser * * @return HashMap - command, commandHandler */ - public HashMap getCommands() { - + public HashMap getCommands() + { return commands; } + /** + * Get the command aliases HashMap + * + * @return HashMap - alias, command the alias belogs to + */ + public HashMap getAliases() + { + return aliases; + } + + /** * Is the given command a valid client command? * @@ -136,7 +149,13 @@ public class CommandParser */ public boolean isClientCommand(String command) { - return commands.containsKey(command.toLowerCase()); + if (commands.containsKey(command.toLowerCase())) { + return true; + } else if (aliases.containsKey(command.toLowerCase())) { + return true; + } else { + return false; + } } /** @@ -168,7 +187,13 @@ public class CommandParser */ public void handleClientCommand(String type, String[] params, Server server, Conversation conversation, IRCService service) { - BaseHandler command = commands.get(type); + BaseHandler command = null; + if (commands.containsKey(type.toLowerCase())) { + command = commands.get(type); + } else if (aliases.containsKey(type.toLowerCase())) { + String commandInCommands = aliases.get(type.toLowerCase()); + command = commands.get(commandInCommands); + } try { command.execute(params, server, conversation, service); } catch(CommandException e) {