Example #1
0
        internal static Task HandleHosttargetMessage(IrcClient client, IrcMessage message)
        {
            string        channelName = message.Parameters[0].Substring(1);
            TwitchChannel channel     = (TwitchChannel)client.Channels[channelName];

            string[] chunks = message.Parameters[1].Split(' ');

            if (chunks.Length == 2)
            {
                string targetChannelName = chunks[0];
                int    viewers           = chunks[1] == "-" ? 0 : Convert.ToInt32(chunks[1]);

                if (targetChannelName != "-")
                {
                    // Hosting started.
                    var e = new TwitchHostEventArgs(channel, targetChannelName, viewers);
                    ((TwitchIrcClient)client).OnHostModeStarted(e);
                }
                else
                {
                    // Hosting stopped
                    var e = new TwitchHostEventArgs(channel, null, viewers);
                    ((TwitchIrcClient)client).OnHostModeStopped(e);
                }
            }
            else
            {
                throw new TwitchProtocolException("Invalid HOSTTARGET command syntax");
            }

            return(Task.CompletedTask);
        }
Example #2
0
 /// <summary>
 ///     Raises the <see cref="HostModeStopped"/> event.
 /// </summary>
 /// <param name="e">The <see cref="EventArgs"/> instance holding the event data.</param>
 internal void OnHostModeStopped(TwitchHostEventArgs e)
 {
     HostModeStopped?.Invoke(this, e);
 }