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