// List of all currently logged-in Twitter users. // private List<CellAOUsers> cellAoUserses; private CellAoBotUser GetCellAOBotUser(IrcUser ircUSer) { CellAoBotUser CellAOUser = this.cellAoBotUsers.SingleOrDefault(tu => tu.IrcUser == ircUSer); if (CellAOUser == null) { throw new InvalidOperationException( string.Format("User '{0}' is not logged in to Cellao.", ircUSer.NickName)); } return(CellAOUser); }
/// <summary> /// </summary> /// <param name="client"> /// </param> /// <param name="source"> /// </param> /// <param name="targets"> /// </param> /// <param name="command"> /// </param> /// <param name="parameters"> /// </param> private void ProcessChatCommandLogIn( IrcClient client, IIrcMessageSource source, IList <IIrcMessageTarget> targets, string command, IList <string> parameters) { var sourceUser = (IrcUser)source; CellAoBotUser CellAOUser = this.cellAoBotUsers.SingleOrDefault(tu => tu.IrcUser == sourceUser); if (CellAOUser != null) { throw new InvalidOperationException( string.Format( "User '{0}' is already logged in to CellAO as {1}.", sourceUser, CellAOUser.IrcUser.NickName)); } if (parameters.Count != 2) { throw new InvalidCommandParametersException(1); } // // Create new CellAO user and log in to service. var cellaoBotUser = new CellAoBotUser(sourceUser); // bool success = cellaoBotUser.LogIn(parameters[0], parameters[1]); cellaoBotUser.LogIn(parameters[0], parameters[1]); IList <IIrcMessageTarget> replyTargets = this.GetDefaultReplyTarget(client, sourceUser, targets); if (cellaoBotUser.IsAuthenticated) { this.cellAoBotUsers.Add(cellaoBotUser); client.LocalUser.SendMessage( replyTargets, "You are now logged in as {0} / '{1}'.", cellaoBotUser.IrcUser.NickName, cellaoBotUser.IrcUser.NickName); this.GMlevel = cellaoBotUser.GMLevel(this.username); } else { client.LocalUser.SendMessage(replyTargets, "Login failed"); } }
/// <summary> /// </summary> /// <param name="client"> /// </param> /// <param name="source"> /// </param> /// <param name="targets"> /// </param> /// <param name="command"> /// </param> /// <param name="parameters"> /// </param> private void ProcessChatCommandLogOut( IrcClient client, IIrcMessageSource source, IList <IIrcMessageTarget> targets, string command, IList <string> parameters) { var sourceUser = (IrcUser)source; CellAoBotUser cellaoBotUser = this.GetCellAOBotUser(sourceUser); if (parameters.Count != 0) { throw new InvalidCommandParametersException(1); } // Log out CellAO user. cellaoBotUser.LogOut(); this.cellAoBotUsers.Remove(cellaoBotUser); IList <IIrcMessageTarget> replyTargets = this.GetDefaultReplyTarget(client, sourceUser, targets); client.LocalUser.SendMessage(replyTargets, "You are now logged out."); }