Example #1
0
 protected virtual void OnPrivateMessage(RemoteServer server, PrivateMessageEventArgs args)
 {
     PrivateMessageEvent?.Invoke(server, args);
     if (args.Sent)
     {
         PrivateMessageSentEvent?.Invoke(server, args);
     }
     else
     {
         PrivateMessageReceivedEvent?.Invoke(server, args);
     }
 }
        protected virtual void OnMessageReceived(string input)
        {
            string[] toks = input.Split(' ');
            Match    u, c;

            string user, message;

            if ((u = Patterns.rUserHost.Match(toks[0])).Success)
            {
                Channel target;
                message = input.Substring(input.IndexOf(':', 2) + 1);
                user    = u.Groups[1].Value;
                if ((c = Patterns.rChannelRegex.Match(toks[2])).Success)
                {
                    // TODO: Verify CTCP messages and fire off events for them
                    target = GetChannel(c.Groups[1].Value);
                    ChannelMessageReceivedEvent.Raise(this, new ChannelMessageReceivedEventArgs(target, message, user));
                }
                else
                {
                    // TODO: Verify CTCP messages and fire off events for them
                    PrivateMessageReceivedEvent.Raise(this, new PrivateMessageReceivedEventArgs(user, message));
                }
            }
            else
            {
                // TODO: InspIRCd's m_chanlog module support
            }

            /*if ((a = Patterns.rPrivmsg.Match(input)).Success)
             * {
             *  user = a.Groups[1].Value;
             *  message = a.Groups[4].Value;
             *  target = a.Groups[3].Value;
             *
             *  if ((b = Patterns.rChannelRegex.Match(a.Groups[3].Value)).Success)
             *  {
             *      var c = GetChannel(target);
             *      ChannelMessageReceivedEvent.Raise(this, new ChannelMessageReceivedEventArgs(c, message, user));
             *  }
             *  else
             *  {
             *      PrivateMessageReceivedEvent.Raise(this, new PrivateMessageReceivedEventArgs(user, message));
             *  }
             * }*/
        }