Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 private void _conn_MessageReceived(object sender, IrcEventArgs e)
 {
     this.OnMessageReceived(e);
 }
Ejemplo n.º 3
0
 private void _conn_MessageSent(object sender, IrcEventArgs e)
 {
     this.OnMessageSent(e);
 }
Ejemplo n.º 4
0
 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));
             }
         }
     }
 }
Ejemplo n.º 5
0
 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;
         }
     }
 }
Ejemplo n.º 6
0
 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);
                 });
         }
     }
 }