/// <summary> /// Parses the parameters portion of the message. /// </summary> protected override void ParseParameters( StringCollection parameters ) { base.ParseParameters( parameters ); this.Channel = parameters[ 1 ]; this.User = new User( parameters[ 2 ] ); this.TimeSet = MessageUtil.ConvertFromUnixTime( Convert.ToInt32( parameters[ 3 ], CultureInfo.InvariantCulture ) ); }
/// <summary> /// Parses the parameters portion of the message. /// </summary> protected override void ParseParameters( StringCollection parameters ) { base.ParseParameters( parameters ); this.User = new User(); if ( parameters.Count == 7 ) { this.Channel = parameters[ 1 ]; this.User.UserName = parameters[ 2 ]; this.User.HostName = parameters[ 3 ]; this.Server = parameters[ 4 ]; this.User.Nick = parameters[ 5 ]; String levels = parameters[ 6 ]; // TODO I'm going to ignore the H/G issue until i know what it means. this.IsOper = ( levels.IndexOf( "*", StringComparison.Ordinal ) != -1 ); String lastLetter = levels.Substring( levels.Length - 1 ); if ( ChannelStatus.Exists( lastLetter ) ) { this.Status = ChannelStatus.GetInstance( lastLetter ); } else { this.Status = ChannelStatus.None; } String trailing = parameters[ 7 ]; this.HopCount = Convert.ToInt32( trailing.Substring( 0, trailing.IndexOf( " ", StringComparison.Ordinal ) ), CultureInfo.InvariantCulture ); this.User.RealName = trailing.Substring( trailing.IndexOf( " ", StringComparison.Ordinal ) ); } }