Пример #1
0
        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);
        }
Пример #2
0
 /// <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);
 }