示例#1
0
 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;
 }
示例#2
0
        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));
        }
示例#3
0
        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());
        }
示例#4
0
 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);
         }
     }
 }