public UserStatusChangeEventArgs(IRCUser pUser, IRCMessage pMsg, bool pJoined, bool pLeft, bool pKicked, bool pQuit) { newUser = pUser; message = pMsg; joined = pJoined; left = pLeft; kicked = pKicked; quit = pQuit; }
private void UserJoined(IRCNode pUserNode, IRCMessage pMessage) { // check if we joined ourselves if (pUserNode.Nickname.ToLower() == connection.Nickname.ToLower()) return; // check if already in channel-user-list if (IsUserInChannel(pUserNode.Nickname)) return; // add as new user in channel IRCUser newUser = new IRCUser(this, pUserNode); users.Add(pUserNode.Nickname, newUser); if (UserStatusChanged != null) // trigger event if necessary UserStatusChanged(this, new UserStatusChangeEventArgs(newUser, pMessage, true, false, false, false)); }
private void UserKicked(IRCUser pUser, IRCMessage pMessage) { if (!IsUserInChannel(pUser.Nickname)) return; // trigger event if necessary if (users.ContainsValue(pUser.Nickname.ToLower())) { if (UserStatusChanged != null) UserStatusChanged(this, new UserStatusChangeEventArgs(pUser, pMessage, false, false, true, false)); } // remove user from channel users.Remove(pUser.Nickname.ToLower()); }
public void UpdateNames(string pNames) { string[] names = pNames.Split(' '); // seperated by a space foreach (string s in names) { IRCUser user = new IRCUser(s, this); if (!IsUserInChannel(user.Nickname)) { users.Add(user.Nickname.ToLower(), user); } } }