Example #1
0
 public void UpdateByNameReply(NameReply nameReply)
 {
     foreach (var nameItem in nameReply.Names)
     {
         if (!this.ContainsKey(nameItem.Nickname))
         {
             this[nameItem.Nickname] = new ChannelUser(nameItem.Nickname);
         }
     }
 }
Example #2
0
        /// <summary>
        /// Parses a RPL_NAMREPLY reply.
        /// </summary>
        public static NameReply ParseNameReply(Message message)
        {
            Debug.Assert(message.NumericReply == NumericalReplyCodes.RPL_NAMREPLY);
            Debug.Assert(message.Parameters.Count == 4);

            var nameReply = new NameReply(message.Parameters[1], message.Parameters[2]);

            foreach (var item in message.TrailingParameter.Split(new[] {' '}))
            {
                var match = Regex.Match(item, @"([@+]?)(.+)");

                if (match.Success)
                {
                    var nameItem = new NameReplyItem(match.Groups[1].Value, match.Groups[2].Value);
                    nameReply.Names.Add(nameItem);
                }
            }

            return nameReply;
        }