/* * This module's responsibility is simply to make sure the manager is up * to date. */ public String[] run(IrcMessage m) { if (m.command.equals("JOIN") && m.nick.equals(IrcConfig.nick)) { this.chanManager.join(m.argument); } else if (m.command.equals("JOIN")) { this.chanManager.userJoin(m.argument, m.nick); } else if (m.command.equals("PART") && m.nick.equals(IrcConfig.nick)) { this.chanManager.part(m.target); } else if (m.command.equals("PART")) { this.chanManager.userPart(m.target, m.nick); } else if (m.command.equals("QUIT")) { this.chanManager.userQuit(m.nick); } else if (m.command.equals("KICK") && m.target.substring(m.target.indexOf(" ") + 1).equals(IrcConfig.nick)) { this.chanManager.part(m.target.substring(0, m.target.indexOf(" "))); } else if (m.command.equals("KICK")) { this.chanManager.userPart( m.target.substring(0, m.target.indexOf(" ")), m.target.substring(m.target.indexOf(" ") + 1)); } else if (m.command.equals("NICK")) { this.chanManager.changeNick(m.nick, m.argument); } else if (m.command.equals("MODE")) { String[] parts = m.target.split("\\s"); if (parts.length > 2) { return new String[] {"WHOIS " + parts[2]}; } } else if (m.command.equals("319")) { String nick = m.target.substring(m.target.indexOf(" ") + 1); String[] parts = m.argument.split("\\s"); char prefix; for (int i = 0; i < parts.length; i++) { prefix = IrcUser.getPrefix(parts[i]); this.chanManager.updatePrefix(IrcUser.stripPrefix(parts[i]), nick, prefix); } } else if (m.command.equals("353")) { String[] users = m.argument.split("\\s"); String chan = m.target.substring(m.target.indexOf("#")); for (int i = 0; i < users.length; i++) { this.chanManager.userJoin(chan, users[i]); } } return null; }