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) {