internal static Task HandleClearchatMessage(IrcClient client, IrcMessage message) { int duration = 0; if (message.Tags.ContainsKey("ban-duration")) { duration = Convert.ToInt32(message.Tags["ban-duration"]); } if (message.Parameters.Length == 2) { string channelName = message.Parameters[0].Substring(1); IrcChannel channel = client.Channels[channelName]; IrcUser user = new IrcUser(client, message.Parameters[1]); var e = new TwitchClearchatEventArgs(channel, user, duration); if (duration == 0) { ((TwitchIrcClient)client).OnUserBanned(e); } else { ((TwitchIrcClient)client).OnUserTimeouted(e); } } else { throw new TwitchProtocolException("CLEARCHAT message has an invalid amount of parameters."); } return(Task.CompletedTask); }
/// <summary> /// Raises the <see cref="UserBanned"/> event. /// </summary> /// <param name="e">The <see cref="EventArgs"/> instance holding the event data.</param> internal void OnUserBanned(TwitchClearchatEventArgs e) { UserBanned?.Invoke(this, e); }