private void OnMessageReceived(IrcEventArgs e) { _isWaitingForActivity = false; #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debug.WriteLine(string.Format("RECV: {0}", e.Message.ToString())); } #endif this.RaiseEvent(this.RawMessageReceived, e); if (e.Handled) { return; } switch (e.Message.Command) { case "PING": if (e.Message.Parameters.Count > 0) { _conn.QueueMessage("PONG " + e.Message.Parameters[0]); } else { _conn.QueueMessage("PONG"); } break; case "NICK": this.OnNickChanged(e.Message); break; case "PRIVMSG": this.OnPrivateMessage(e.Message); break; case "NOTICE": this.OnNotice(e.Message); break; case "QUIT": this.OnQuit(e.Message); break; case "JOIN": this.OnJoin(e.Message); break; case "PART": this.OnPart(e.Message); break; case "TOPIC": this.OnTopic(e.Message); break; case "INVITE": this.OnInvite(e.Message); break; case "KICK": this.OnKick(e.Message); break; case "MODE": this.OnMode(e.Message); break; default: this.OnOther(e.Message); break; } }
private void _conn_MessageReceived(object sender, IrcEventArgs e) { this.OnMessageReceived(e); }
private void _conn_MessageSent(object sender, IrcEventArgs e) { this.OnMessageSent(e); }
private void session_RawMessageReceived(object sender, IrcEventArgs e) { if (e.Message.Command == "PRIVMSG" && e.Message.Parameters.Count == 2 && (!CtcpCommand.IsCtcpCommand(e.Message.Parameters[1]) || CtcpCommand.Parse(e.Message.Parameters[1]).Command == "ACTION")) { var target = new IrcTarget(e.Message.Parameters[0]); if (App.IsIgnoreMatch(e.Message.From, target.IsChannel ? IgnoreActions.Channel : IgnoreActions.Private)) { return; } if (!target.IsChannel && e.Message.From is IrcPeer) { if (App.Create(sender as IrcSession, new IrcTarget((IrcPeer)e.Message.From), false) && _notifyIcon != null && _notifyIcon.IsVisible) { _notifyIcon.Show("IRC Message", string.Format("You received a message from {0}.", ((IrcPeer)e.Message.From).Nickname)); } } } }
private void Session_RawMessageReceived(object sender, IrcEventArgs e) { int code; if(int.TryParse(e.Message.Command, out code)) { var ircCode = (IrcCode)code; switch(ircCode) { case IrcCode.NameReply: if (!_hasNames && e.Message.Parameters.Count >= 3 && this.IsChannel) { var target = new IrcTarget(e.Message.Parameters[e.Message.Parameters.Count - 2]); if (this.Target.Equals(target)) { this.Invoke(() => { foreach (var nick in e.Message.Parameters[e.Message.Parameters.Count - 1].Split(' ')) { this.AddNick(nick); } }); e.Handled = true; } } break; case IrcCode.EndOfNames: if (!_hasNames && this.IsChannel) { _hasNames = true; e.Handled = true; } break; } } }
private void session_RawMessageReceived(object sender, IrcEventArgs e) { if (e.Message.Command == "PRIVMSG" && e.Message.Parameters.Count == 2 && (!CtcpCommand.IsCtcpCommand(e.Message.Parameters[1]) || CtcpCommand.Parse(e.Message.Parameters[1]).Command == "ACTION")) { var target = new IrcTarget(e.Message.Parameters[0]); if (target.Type == IrcTargetType.Nickname && e.Message.From is IrcPeer) { this.Invoke(() => { App.Create(sender as IrcSession, new IrcTarget((IrcPeer)e.Message.From), false); }); } } }