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); }
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); }