+ },
+ irc_RPL_WHOISUSER: function(prefix, params) {
+ var nick = params[1];
+ this.whoisNick = nick;
+
+ return this.whois(nick, "user", {ident: params[2], hostname: params[3], realname: params.indexFromEnd(-1)});
+ },
+ irc_RPL_WHOISSERVER: function(prefix, params) {
+ var nick = params[1];
+ var server = params[2];
+ var serverdesc = params.indexFromEnd(-1);
+
+ return this.whois(nick, "server", {server: params[2], serverdesc: params.indexFromEnd(-1)});
+ },
+ irc_RPL_WHOISOPERATOR: function(prefix, params) {
+ var nick = params[1];
+ var text = params.indexFromEnd(-1);
+
+ return this.whois(nick, "oper", {opertext: params.indexFromEnd(-1)});
+ },
+ irc_RPL_WHOISIDLE: function(prefix, params) {
+ var nick = params[1];
+
+ return this.whois(nick, "idle", {idle: params[2], connected: params[3]});
+ },
+ irc_RPL_WHOISCHANNELS: function(prefix, params) {
+ var nick = params[1];
+
+ return this.whois(nick, "channels", {channels: params.indexFromEnd(-1)});
+ },
+ irc_RPL_WHOISACCOUNT: function(prefix, params) {
+ var nick = params[1];
+
+ return this.whois(nick, "account", {account: params[2]});
+ },
+ irc_RPL_WHOISACTUALLY: function(prefix, params) {
+ var nick = params[1];
+
+ return this.whois(nick, "actually", {hostmask: params[2], ip: params[3]});
+ },
+ irc_RPL_WHOISOPERNAME: function(prefix, params) {
+ var nick = params[1];
+ var opername = params[2];
+
+ return this.whois(nick, "opername", {opername: params[2]});
+ },
+ irc_RPL_ENDOFWHOIS: function(prefix, params) {
+ var nick = params[1];
+ var text = params.indexFromEnd(-1);
+ this.whoisNick = null;
+
+ return this.whois(nick, "end", {});
+ },
+ irc_RPL_AWAY: function(prefix, params) {
+ var nick = params[1];
+ var text = params.indexFromEnd(-1);
+
+ if(this.whoisNick && (this.whoisNick == nick))
+ return this.whois(nick, "away", {"away": text});
+
+ this.awayMessage(nick, text);
+ return true;