package net.rizon.moo;
+import net.rizon.moo.conf.Config;
import net.rizon.moo.irc.User;
import com.google.inject.Inject;
import java.util.Set;
@Inject
private Protocol protocol;
+
+ @Inject
+ private Config config;
private Command find(String name)
{
public void run(IRCMessage m)
{
- String[] message = m.getParams();
-
- if (message.length < 2 || message[0].startsWith("#") == false || (message[1].startsWith("!") == false && message[1].startsWith(".") == false))
+ final String[] params = m.getParams();
+
+ if (params.length < 2)
+ return;
+
+ final String target = params[0];
+ final String message = params[1];
+
+ if (!target.startsWith("#"))
+ return;
+
+ if (!message.startsWith("!")
+ && !message.startsWith(".")
+ && !message.startsWith(config.general.nick + ": ")
+ && !message.startsWith(config.general.nick + " "))
return;
- String tokens[] = message[1].split(" ");
- Command c = find(tokens[0]);
+ final String[] tokens = message.split(" ");
+ final String cmd = message.startsWith(config.general.nick) ? "!" + tokens[1] : tokens[0];
+
+ Command c = find(cmd);
if (c == null)
return;
- if (!c.isRequiredChannel(message[0]))
+ if (!c.isRequiredChannel(target))
return;
User user = irc.findUser(m.getNick());
if (user == null)
user = new User(m.getNick());
- CommandSource csource = new CommandSource(protocol, user, irc.findChannel(message[0]));
-
+ CommandSource csource = new CommandSource(protocol, user, irc.findChannel(target));
c.execute(csource, tokens);
}
}