internal AdminEventArgs(IrcMessageData data, string channel, string who, string whom) : base(data) { Channel = channel; Who = who; Whom = whom; }
internal NickChangeEventArgs(IrcMessageData data, string oldnick, string newnick) : base(data) { OldNickname = oldnick; NewNickname = newnick; }
internal NamesEventArgs(IrcMessageData data, string channel, string[] userlist) : base(data) { Channel = channel; userList = userlist; }
internal UnbanEventArgs(IrcMessageData data, string channel, string who, string hostmask) : base(data) { Channel = channel; Who = who; Hostmask = hostmask; }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="message"></param> public void SendReply(IrcMessageData data, string message) { SendReply(data, message, Priority.Medium); }
internal PongEventArgs(IrcMessageData data, TimeSpan lag) : base(data) { Lag = lag; }
internal TopicChangeEventArgs(IrcMessageData data, string channel, string who, string newtopic) : base(data) { Channel = channel; Who = who; NewTopic = newtopic; }
internal ErrorEventArgs(IrcMessageData data, string errormsg) : base(data) { ErrorMessage = errormsg; }
internal ActionEventArgs(IrcMessageData data, string actionmsg) : base(data, "ACTION", actionmsg) { ActionMessage = actionmsg; }
internal WhoEventArgs(IrcMessageData data, WhoInfo whoInfo) : base(data) { this.whoInfo = whoInfo; }
internal CtcpEventArgs(IrcMessageData data, string ctcpcmd, string ctcpparam) : base(data) { CtcpCommand = ctcpcmd; CtcpParameter = ctcpparam; }
internal AwayEventArgs(IrcMessageData data, string who, string awaymessage) : base(data) { Who = who; AwayMessage = awaymessage; }
internal IrcEventArgs(IrcMessageData data) { Data = data; }
public static WhoInfo Parse(IrcMessageData data) { var whoInfo = new WhoInfo { Channel = data.RawMessageArray[3], Ident = data.RawMessageArray[4], Host = data.RawMessageArray[5], Server = data.RawMessageArray[6], Nick = data.RawMessageArray[7], Realname = String.Join(" ", data.MessageArray, 1, data.MessageArray.Length - 1) }; // skip hop count int hopcount = 0; string hopcountStr = data.MessageArray[0]; try { hopcount = int.Parse(hopcountStr); } catch (FormatException ex) { } string usermode = data.RawMessageArray[8]; bool op = false; bool voice = false; bool ircop = false; bool away = false; bool registered = false; foreach (char c in usermode) { switch (c) { case 'H': away = false; break; case 'G': away = true; break; case '@': op = true; break; case '+': voice = true; break; case '*': ircop = true; break; case 'r': registered = true; break; } } whoInfo.IsAway = away; whoInfo.IsOp = op; whoInfo.IsVoice = voice; whoInfo.IsIrcOp = ircop; whoInfo.HopCount = hopcount; whoInfo.IsRegistered = registered; return whoInfo; }
internal PartEventArgs(IrcMessageData data, string channel, string who, string partmessage) : base(data) { Channel = channel; Who = who; PartMessage = partmessage; }
internal JoinEventArgs(IrcMessageData data, string channel, string who) : base(data) { Channel = channel; Who = who; }
internal PingEventArgs(IrcMessageData data, string pingdata) : base(data) { PingData = pingdata; }
internal KickEventArgs(IrcMessageData data, string channel, string who, string whom, string kickreason) : base(data) { Channel = channel; Who = who; Whom = whom; KickReason = kickreason; }
internal QuitEventArgs(IrcMessageData data, string who, string quitmessage) : base(data) { Who = who; QuitMessage = quitmessage; }
internal ListEventArgs(IrcMessageData data, ChannelInfo listInfo) : base(data) { ListInfo = listInfo; }
internal TopicEventArgs(IrcMessageData data, string channel, string topic) : base(data) { Channel = channel; Topic = topic; }
internal MotdEventArgs(IrcMessageData data, string motdmsg) : base(data) { MotdMessage = motdmsg; }
public static BanInfo Parse(IrcMessageData data) { return new BanInfo { Channel = data.RawMessageArray[3], Mask = data.RawMessageArray[4] }; }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="message"></param> /// <param name="priority"></param> public void SendReply(IrcMessageData data, string message, Priority priority) { switch (data.Type) { case ReceiveType.ChannelMessage: SendMessage(SendType.Message, data.Channel, message, priority); break; case ReceiveType.QueryMessage: SendMessage(SendType.Message, data.Nick, message, priority); break; case ReceiveType.QueryNotice: SendMessage(SendType.Notice, data.Nick, message, priority); break; } }