示例#1
0
        internal static Task HandlePrivmsgMessage(IrcClient client, IrcMessage message)
        {
            // Check if it's a cheer message and handle event, otherwise pass it to IrcClient.HandleTargetedMessage.
            if (message.Tags.ContainsKey("bits"))
            {
                IrcTargetedMessage targetedMessage = new IrcTargetedMessage(client, message);
                TwitchUser         user            = (TwitchUser)targetedMessage.Source;
                TwitchChannel      channel         = (TwitchChannel)targetedMessage.Target;
                int bits = Convert.ToInt32(message.Tags["bits"]);

                var e = new TwitchCheerEventArgs(user, channel, targetedMessage.Message, bits);
                ((TwitchIrcClient)client).OnUserCheered(e);
            }
            else
            {
                IrcMessageHandlers.HandleTargetedMessage(client, message);
            }

            return(Task.CompletedTask);
        }
示例#2
0
        internal static Task HandleTargetedMessage(IrcClient client, IrcMessage message)
        {
            IrcTargetedMessage targetedMessage = new IrcTargetedMessage(client, message);

            if (targetedMessage.IsChannelMessage)
            {
                var channel = (IrcChannel)targetedMessage.Target;
                var e       = new IrcChannelMessageEventArgs(targetedMessage);

                if (targetedMessage.Type == IrcTargetedMessage.MessageType.Privmsg)
                {
                    client.OnChannelMessageReceived(e);
                    channel.OnMessageReceived(e);
                }
                else if (targetedMessage.Type == IrcTargetedMessage.MessageType.Notice)
                {
                    client.OnChannelNoticeReceived(e);
                    channel.OnNoticeReceived(e);
                }
            }
            else
            {
                var e = new IrcUserMessageEventArgs(targetedMessage);

                if (targetedMessage.Type == IrcTargetedMessage.MessageType.Privmsg)
                {
                    client.OnUserMessageReceived(e);
                }
                else if (targetedMessage.Type == IrcTargetedMessage.MessageType.Notice)
                {
                    client.OnUserNoticeReceived(e);
                }
            }

            return(Task.CompletedTask);
        }