From 9cc168d094f15fbae05f3b73c4b83aa10f5fb61d Mon Sep 17 00:00:00 2001 From: Cole Date: Wed, 8 Nov 2023 00:04:37 -0800 Subject: [PATCH 1/2] api: 3.10, client/pubsub: 4.0 --- TwitchLib.Unity/Client.cs | 175 ++++++++++++++----------- TwitchLib.Unity/PubSub.cs | 79 ++++++----- TwitchLib.Unity/TwitchLib.Unity.csproj | 10 +- 3 files changed, 139 insertions(+), 125 deletions(-) diff --git a/TwitchLib.Unity/Client.cs b/TwitchLib.Unity/Client.cs index 7f26ad4..12be5b3 100644 --- a/TwitchLib.Unity/Client.cs +++ b/TwitchLib.Unity/Client.cs @@ -1,10 +1,10 @@ using System; +using System.Threading.Tasks; using TwitchLib.Client; using TwitchLib.Client.Events; using TwitchLib.Client.Exceptions; using TwitchLib.Client.Interfaces; using TwitchLib.Client.Models; -using TwitchLib.Communication.Events; using UnityEngine; namespace TwitchLib.Unity @@ -13,14 +13,14 @@ public class Client : TwitchClient, ITwitchClient { #region Events /// - /// Fires whenever a log write happens. + /// Fires when client connects to Twitch. /// - public new event EventHandler OnLog; + public new event EventHandler OnConnected; /// - /// Fires when client connects to Twitch. + /// Fires when client reconnects to Twitch. /// - public new event EventHandler OnConnected; + public new event EventHandler OnReconnected; /// /// Fires when client joins a channel. @@ -57,11 +57,6 @@ public class Client : TwitchClient, ITwitchClient /// public new event EventHandler OnMessageSent; - /// - /// Fires when a whisper message is sent, returns username and message. - /// - public new event EventHandler OnWhisperSent; - /// /// Fires when command (uses custom chat command identifier) is received, returns channel, command, ChatMessage, arguments as string, arguments as list. /// @@ -77,16 +72,6 @@ public class Client : TwitchClient, ITwitchClient /// public new event EventHandler OnUserJoined; - /// - /// Fires when a moderator joined the channel's chat room, returns username and channel. - /// - public new event EventHandler OnModeratorJoined; - - /// - /// Fires when a moderator joins the channel's chat room, returns username and channel. - /// - public new event EventHandler OnModeratorLeft; - /// /// Fires when new subscriber is announced in chat, returns Subscriber. /// @@ -173,13 +158,13 @@ public class Client : TwitchClient, ITwitchClient public new event EventHandler OnGiftedSubscription; /// Fires when TwitchClient attempts to host a channel it is in. - public new event EventHandler OnSelfRaidError; + public new event EventHandler OnSelfRaidError; /// Fires when TwitchClient receives generic no permission error from Twitch. - public new event EventHandler OnNoPermissionError; + public new event EventHandler OnNoPermissionError; /// Fires when newly raided channel is mature audience only. - public new event EventHandler OnRaidedChannelIsMatureAudience; + public new event EventHandler OnRaidedChannelIsMatureAudience; /// Fires when the client was unable to join a channel. public new event EventHandler OnFailureToReceiveJoinConfirmation; @@ -190,72 +175,106 @@ public class Client : TwitchClient, ITwitchClient /// Fires when named event occurs. public new event EventHandler OnMessageCleared; /// Fires when named event occurs. - public new event EventHandler OnReconnected; - /// Fires when named event occurs. - public new event EventHandler OnWhisperThrottled; - /// Fires when named event occurs. - public new event EventHandler OnMessageThrottled; - /// Fires when named event occurs. public new event EventHandler OnCommunitySubscription; /// Fires when named event occurs. public new event EventHandler OnError; /// Fires when named event occurs. public new event EventHandler OnVIPsReceived; + /// Fires when named event occurs. + public new event EventHandler OnAnnouncement; + /// Fires when named event occurs. + public new event EventHandler OnMessageThrottled; + /// Fires when named event occurs. + public new event EventHandler OnRequiresVerifiedPhoneNumber; + /// Fires when named event occurs. + public new event EventHandler OnFollowersOnly; + /// Fires when named event occurs. + public new event EventHandler OnSubsOnly; + /// Fires when named event occurs. + public new event EventHandler OnEmoteOnly; + /// Fires when named event occurs. + public new event EventHandler OnSuspended; + /// Fires when named event occurs. + public new event EventHandler OnBanned; + /// Fires when named event occurs. + public new event EventHandler OnSlowMode; + /// Fires when named event occurs. + public new event EventHandler OnR9kMode; + /// Fires when named event occurs. + public new event EventHandler OnUserIntro; + /// Fires when named event occurs. + public new event EventHandler OnAnonGiftPaidUpgrade; + /// Fires when named event occurs. + public new event EventHandler OnUnraidNotification; + /// Fires when named event occurs. + public new event EventHandler OnRitual; + /// Fires when named event occurs. + public new event EventHandler OnBitsBadgeTier; + /// Fires when named event occurs. + public new event EventHandler OnCommunityPayForward; + /// Fires when named event occurs. + public new event EventHandler OnStandardPayForward; #endregion public Client() : base(null) { ThreadDispatcher.EnsureCreated(); - base.OnLog += (object sender, OnLogArgs e) => { ThreadDispatcher.Enqueue(() => OnLog?.Invoke(sender, e)); }; - base.OnConnected += ((object sender, OnConnectedArgs e) => { ThreadDispatcher.Enqueue(() => OnConnected?.Invoke(sender, e)); }); - - base.OnJoinedChannel += ((object sender, OnJoinedChannelArgs e) => { - - ThreadDispatcher.Enqueue(() => OnJoinedChannel?.Invoke(sender, e)); - }); - - base.OnIncorrectLogin += ((object sender, OnIncorrectLoginArgs e) => { ThreadDispatcher.Enqueue(() => OnIncorrectLogin?.Invoke(sender, e)); }); - base.OnChannelStateChanged += ((object sender, OnChannelStateChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelStateChanged?.Invoke(sender, e)); }); - base.OnUserStateChanged += ((object sender, OnUserStateChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnUserStateChanged?.Invoke(sender, e)); }); - base.OnMessageReceived += ((object sender, OnMessageReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageReceived?.Invoke(sender, e)); }); - base.OnWhisperReceived += ((object sender, OnWhisperReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisperReceived?.Invoke(sender, e)); }); - base.OnMessageSent += ((object sender, OnMessageSentArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageSent?.Invoke(sender, e)); }); - base.OnWhisperSent += ((object sender, OnWhisperSentArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisperSent?.Invoke(sender, e)); }); - base.OnChatCommandReceived += ((object sender, OnChatCommandReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnChatCommandReceived?.Invoke(sender, e)); }); - base.OnWhisperCommandReceived += ((object sender, OnWhisperCommandReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisperCommandReceived?.Invoke(sender, e)); }); - base.OnUserJoined += ((object sender, OnUserJoinedArgs e) => { ThreadDispatcher.Enqueue(() => OnUserJoined?.Invoke(sender, e)); }); - base.OnModeratorJoined += ((object sender, OnModeratorJoinedArgs e) => { ThreadDispatcher.Enqueue(() => OnModeratorJoined?.Invoke(sender, e)); }); - base.OnModeratorLeft += ((object sender, OnModeratorLeftArgs e) => { ThreadDispatcher.Enqueue(() => OnModeratorLeft?.Invoke(sender, e)); }); - base.OnNewSubscriber += ((object sender, OnNewSubscriberArgs e) => { ThreadDispatcher.Enqueue(() => OnNewSubscriber?.Invoke(sender, e)); }); - base.OnReSubscriber += ((object sender, OnReSubscriberArgs e) => { ThreadDispatcher.Enqueue(() => OnReSubscriber?.Invoke(sender, e)); }); - base.OnPrimePaidSubscriber += ((object sender, OnPrimePaidSubscriberArgs e) => { ThreadDispatcher.Enqueue(() => OnPrimePaidSubscriber?.Invoke(sender, e)); }); - base.OnContinuedGiftedSubscription += ((object sender, OnContinuedGiftedSubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnContinuedGiftedSubscription?.Invoke(sender, e)); }); - base.OnExistingUsersDetected += ((object sender, OnExistingUsersDetectedArgs e) => { ThreadDispatcher.Enqueue(() => OnExistingUsersDetected?.Invoke(sender, e)); }); - base.OnUserLeft += ((object sender, OnUserLeftArgs e) => { ThreadDispatcher.Enqueue(() => OnUserLeft?.Invoke(sender, e)); }); - base.OnDisconnected += ((object sender, OnDisconnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnDisconnected?.Invoke(sender, e)); }); - base.OnConnectionError += ((object sender, OnConnectionErrorArgs e) => { ThreadDispatcher.Enqueue(() => OnConnectionError?.Invoke(sender, e)); }); - base.OnChatCleared += ((object sender, OnChatClearedArgs e) => { ThreadDispatcher.Enqueue(() => OnChatCleared?.Invoke(sender, e)); }); - base.OnUserTimedout += ((object sender, OnUserTimedoutArgs e) => { ThreadDispatcher.Enqueue(() => OnUserTimedout?.Invoke(sender, e)); }); - base.OnLeftChannel += ((object sender, OnLeftChannelArgs e) => { ThreadDispatcher.Enqueue(() => OnLeftChannel?.Invoke(sender, e)); }); - base.OnUserBanned += ((object sender, OnUserBannedArgs e) => { ThreadDispatcher.Enqueue(() => OnUserBanned?.Invoke(sender, e)); }); - base.OnModeratorsReceived += ((object sender, OnModeratorsReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnModeratorsReceived?.Invoke(sender, e)); }); - base.OnChatColorChanged += ((object sender, OnChatColorChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnChatColorChanged?.Invoke(sender, e)); }); - base.OnSendReceiveData += ((object sender, OnSendReceiveDataArgs e) => { ThreadDispatcher.Enqueue(() => OnSendReceiveData?.Invoke(sender, e)); }); - base.OnRaidNotification += ((object sender, OnRaidNotificationArgs e) => { ThreadDispatcher.Enqueue(() => OnRaidNotification?.Invoke(sender, e)); }); - base.OnGiftedSubscription += ((object sender, OnGiftedSubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnGiftedSubscription?.Invoke(sender, e)); }); - base.OnRaidedChannelIsMatureAudience += ((object sender, EventArgs arg) => { ThreadDispatcher.Enqueue(() => OnRaidedChannelIsMatureAudience?.Invoke(sender, arg)); }); - base.OnFailureToReceiveJoinConfirmation += ((object sender, OnFailureToReceiveJoinConfirmationArgs e) => { ThreadDispatcher.Enqueue(() => OnFailureToReceiveJoinConfirmation?.Invoke(sender, e)); }); - base.OnUnaccountedFor += ((object sender, OnUnaccountedForArgs e) => { ThreadDispatcher.Enqueue(() => OnUnaccountedFor?.Invoke(sender, e)); }); - base.OnSelfRaidError += ((object sender, EventArgs e) => { ThreadDispatcher.Enqueue(() => OnSelfRaidError?.Invoke(sender, e)); }); - base.OnNoPermissionError += ((object sender, EventArgs e) => { ThreadDispatcher.Enqueue(() => OnNoPermissionError?.Invoke(sender, e)); }); - base.OnMessageCleared += ((object sender, OnMessageClearedArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageCleared?.Invoke(sender, e)); }); - base.OnReconnected += ((object sender, OnReconnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnReconnected?.Invoke(sender, e)); }); - base.OnWhisperThrottled += ((object sender, OnWhisperThrottledEventArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisperThrottled?.Invoke(sender, e)); }); - base.OnMessageThrottled += ((object sender, OnMessageThrottledEventArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageThrottled?.Invoke(sender, e)); }); - base.OnCommunitySubscription += ((object sender, OnCommunitySubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnCommunitySubscription?.Invoke(sender, e)); }); - base.OnError += ((object sender, OnErrorEventArgs e) => { ThreadDispatcher.Enqueue(() => OnError?.Invoke(sender, e)); }); - base.OnVIPsReceived += ((object sender, OnVIPsReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnVIPsReceived?.Invoke(sender, e)); }); + base.OnConnected += (object sender, OnConnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnConnected?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnReconnected += (object sender, OnConnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnReconnected?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnJoinedChannel += (object sender, OnJoinedChannelArgs e) => { ThreadDispatcher.Enqueue(() => OnJoinedChannel?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnIncorrectLogin += (object sender, OnIncorrectLoginArgs e) => { ThreadDispatcher.Enqueue(() => OnIncorrectLogin?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnChannelStateChanged += (object sender, OnChannelStateChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelStateChanged?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUserStateChanged += (object sender, OnUserStateChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnUserStateChanged?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnMessageReceived += (object sender, OnMessageReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageReceived?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnWhisperReceived += (object sender, OnWhisperReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisperReceived?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnMessageSent += (object sender, OnMessageSentArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageSent?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnChatCommandReceived += (object sender, OnChatCommandReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnChatCommandReceived?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnWhisperCommandReceived += (object sender, OnWhisperCommandReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisperCommandReceived?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUserJoined += (object sender, OnUserJoinedArgs e) => { ThreadDispatcher.Enqueue(() => OnUserJoined?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnNewSubscriber += (object sender, OnNewSubscriberArgs e) => { ThreadDispatcher.Enqueue(() => OnNewSubscriber?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnReSubscriber += (object sender, OnReSubscriberArgs e) => { ThreadDispatcher.Enqueue(() => OnReSubscriber?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnPrimePaidSubscriber += (object sender, OnPrimePaidSubscriberArgs e) => { ThreadDispatcher.Enqueue(() => OnPrimePaidSubscriber?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnContinuedGiftedSubscription += (object sender, OnContinuedGiftedSubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnContinuedGiftedSubscription?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnExistingUsersDetected += (object sender, OnExistingUsersDetectedArgs e) => { ThreadDispatcher.Enqueue(() => OnExistingUsersDetected?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUserLeft += (object sender, OnUserLeftArgs e) => { ThreadDispatcher.Enqueue(() => OnUserLeft?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnDisconnected += (object sender, OnDisconnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnDisconnected?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnConnectionError += (object sender, OnConnectionErrorArgs e) => { ThreadDispatcher.Enqueue(() => OnConnectionError?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnChatCleared += (object sender, OnChatClearedArgs e) => { ThreadDispatcher.Enqueue(() => OnChatCleared?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUserTimedout += (object sender, OnUserTimedoutArgs e) => { ThreadDispatcher.Enqueue(() => OnUserTimedout?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnLeftChannel += (object sender, OnLeftChannelArgs e) => { ThreadDispatcher.Enqueue(() => OnLeftChannel?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUserBanned += (object sender, OnUserBannedArgs e) => { ThreadDispatcher.Enqueue(() => OnUserBanned?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnModeratorsReceived += (object sender, OnModeratorsReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnModeratorsReceived?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnChatColorChanged += (object sender, OnChatColorChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnChatColorChanged?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnSendReceiveData += (object sender, OnSendReceiveDataArgs e) => { ThreadDispatcher.Enqueue(() => OnSendReceiveData?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnRaidNotification += (object sender, OnRaidNotificationArgs e) => { ThreadDispatcher.Enqueue(() => OnRaidNotification?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnGiftedSubscription += (object sender, OnGiftedSubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnGiftedSubscription?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnRaidedChannelIsMatureAudience += (object sender, NoticeEventArgs arg) => { ThreadDispatcher.Enqueue(() => OnRaidedChannelIsMatureAudience?.Invoke(sender, arg)); return Task.CompletedTask; }; + base.OnFailureToReceiveJoinConfirmation += (object sender, OnFailureToReceiveJoinConfirmationArgs e) => { ThreadDispatcher.Enqueue(() => OnFailureToReceiveJoinConfirmation?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUnaccountedFor += (object sender, OnUnaccountedForArgs e) => { ThreadDispatcher.Enqueue(() => OnUnaccountedFor?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnSelfRaidError += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnSelfRaidError?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnNoPermissionError += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnNoPermissionError?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnMessageCleared += (object sender, OnMessageClearedArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageCleared?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnCommunitySubscription += (object sender, OnCommunitySubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnCommunitySubscription?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnError += (object sender, OnErrorEventArgs e) => { ThreadDispatcher.Enqueue(() => OnError?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnVIPsReceived += (object sender, OnVIPsReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnVIPsReceived?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnAnnouncement += (object sender, OnAnnouncementArgs e) => { ThreadDispatcher.Enqueue(() => OnAnnouncement?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnMessageThrottled += (object sender, OnMessageThrottledArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageThrottled?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnRequiresVerifiedPhoneNumber += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnRequiresVerifiedPhoneNumber?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnFollowersOnly += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnFollowersOnly?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnSubsOnly += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnSubsOnly?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnEmoteOnly += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnEmoteOnly?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnSuspended += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnSuspended?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnBanned += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnBanned?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnSlowMode += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnSlowMode?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnR9kMode += (object sender, NoticeEventArgs e) => { ThreadDispatcher.Enqueue(() => OnR9kMode?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUserIntro += (object sender, OnUserIntroArgs e) => { ThreadDispatcher.Enqueue(() => OnUserIntro?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnAnonGiftPaidUpgrade += (object sender, OnAnonGiftPaidUpgradeArgs e) => { ThreadDispatcher.Enqueue(() => OnAnonGiftPaidUpgrade?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnUnraidNotification += (object sender, OnUnraidNotificationArgs e) => { ThreadDispatcher.Enqueue(() => OnUnraidNotification?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnRitual += (object sender, OnRitualArgs e) => { ThreadDispatcher.Enqueue(() => OnRitual?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnBitsBadgeTier += (object sender, OnBitsBadgeTierArgs e) => { ThreadDispatcher.Enqueue(() => OnBitsBadgeTier?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnCommunityPayForward += (object sender, OnCommunityPayForwardArgs e) => { ThreadDispatcher.Enqueue(() => OnCommunityPayForward?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnStandardPayForward += (object sender, OnStandardPayForwardArgs e) => { ThreadDispatcher.Enqueue(() => OnStandardPayForward?.Invoke(sender, e)); return Task.CompletedTask; }; } private new void HandleNotInitialized() diff --git a/TwitchLib.Unity/PubSub.cs b/TwitchLib.Unity/PubSub.cs index 616d07e..ecb6fab 100644 --- a/TwitchLib.Unity/PubSub.cs +++ b/TwitchLib.Unity/PubSub.cs @@ -98,47 +98,46 @@ public PubSub(EndPoint proxy = null) : base(null) { ThreadDispatcher.EnsureCreated(); - base.OnPubSubServiceConnected += ((object sender, EventArgs e) => { ThreadDispatcher.Enqueue(() => OnPubSubServiceConnected?.Invoke(sender, e)); }); - base.OnPubSubServiceError += ((object sender, OnPubSubServiceErrorArgs e) => { ThreadDispatcher.Enqueue(() => OnPubSubServiceError?.Invoke(sender, e)); }); - base.OnPubSubServiceClosed += ((object sender, EventArgs e) => { ThreadDispatcher.Enqueue(() => OnPubSubServiceClosed?.Invoke(sender, e)); }); - base.OnListenResponse += ((object sender, OnListenResponseArgs e) => { ThreadDispatcher.Enqueue(() => OnListenResponse?.Invoke(sender, e)); }); - base.OnTimeout += ((object sender, OnTimeoutArgs e) => { ThreadDispatcher.Enqueue(() => OnTimeout?.Invoke(sender, e)); }); - base.OnBan += ((object sender, OnBanArgs e) => { ThreadDispatcher.Enqueue(() => OnBan?.Invoke(sender, e)); }); - base.OnUnban += ((object sender, OnUnbanArgs e) => { ThreadDispatcher.Enqueue(() => OnUnban?.Invoke(sender, e)); }); - base.OnUntimeout += ((object sender, OnUntimeoutArgs e) => { ThreadDispatcher.Enqueue(() => OnUntimeout?.Invoke(sender, e)); }); - base.OnHost += ((object sender, OnHostArgs e) => { ThreadDispatcher.Enqueue(() => OnHost?.Invoke(sender, e)); }); - base.OnSubscribersOnly += ((object sender, OnSubscribersOnlyArgs e) => { ThreadDispatcher.Enqueue(() => OnSubscribersOnly?.Invoke(sender, e)); }); - base.OnSubscribersOnlyOff += ((object sender, OnSubscribersOnlyOffArgs e) => { ThreadDispatcher.Enqueue(() => OnSubscribersOnlyOff?.Invoke(sender, e)); }); - base.OnClear += ((object sender, OnClearArgs e) => { ThreadDispatcher.Enqueue(() => OnClear?.Invoke(sender, e)); }); - base.OnEmoteOnly += ((object sender, OnEmoteOnlyArgs e) => { ThreadDispatcher.Enqueue(() => OnEmoteOnly?.Invoke(sender, e)); }); - base.OnEmoteOnlyOff += ((object sender, OnEmoteOnlyOffArgs e) => { ThreadDispatcher.Enqueue(() => OnEmoteOnlyOff?.Invoke(sender, e)); }); - base.OnR9kBeta += ((object sender, OnR9kBetaArgs e) => { ThreadDispatcher.Enqueue(() => OnR9kBeta?.Invoke(sender, e)); }); - base.OnR9kBetaOff += ((object sender, OnR9kBetaOffArgs e) => { ThreadDispatcher.Enqueue(() => OnR9kBetaOff?.Invoke(sender, e)); }); - base.OnBitsReceived += ((object sender, OnBitsReceivedArgs e) => { ThreadDispatcher.Enqueue(() => OnBitsReceived?.Invoke(sender, e)); }); - base.OnStreamUp += ((object sender, OnStreamUpArgs arg) => { ThreadDispatcher.Enqueue(() => OnStreamUp(sender, arg)); }); - base.OnStreamDown += ((object sender, OnStreamDownArgs e) => { ThreadDispatcher.Enqueue(() => OnStreamDown?.Invoke(sender, e)); }); - base.OnViewCount += ((object sender, OnViewCountArgs e) => { ThreadDispatcher.Enqueue(() => OnViewCount?.Invoke(sender, e)); }); - base.OnWhisper += ((object sender, OnWhisperArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisper?.Invoke(sender, e)); }); - base.OnChannelSubscription += ((object sender, OnChannelSubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelSubscription?.Invoke(sender, e)); }); - base.OnChannelExtensionBroadcast += ((object sender, OnChannelExtensionBroadcastArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelExtensionBroadcast?.Invoke(sender, e)); }); - base.OnFollow += ((object sender, OnFollowArgs e) => { ThreadDispatcher.Enqueue(() => OnFollow?.Invoke(sender, e)); }); - base.OnCustomRewardCreated += ((object sender, OnCustomRewardCreatedArgs e) => { ThreadDispatcher.Enqueue(() => OnCustomRewardCreated?.Invoke(sender, e)); }); - base.OnCustomRewardUpdated += ((object sender, OnCustomRewardUpdatedArgs e) => { ThreadDispatcher.Enqueue(() => OnCustomRewardUpdated?.Invoke(sender, e)); }); - base.OnCustomRewardDeleted += ((object sender, OnCustomRewardDeletedArgs e) => { ThreadDispatcher.Enqueue(() => OnCustomRewardDeleted?.Invoke(sender, e)); }); - base.OnRewardRedeemed += ((object sender, OnRewardRedeemedArgs e) => { ThreadDispatcher.Enqueue(() => OnRewardRedeemed?.Invoke(sender, e)); }); + base.OnPubSubServiceConnected += (object sender, EventArgs e) => { ThreadDispatcher.Enqueue(() => OnPubSubServiceConnected?.Invoke(sender, e)); }; + base.OnPubSubServiceError += (object sender, OnPubSubServiceErrorArgs e) => { ThreadDispatcher.Enqueue(() => OnPubSubServiceError?.Invoke(sender, e)); }; + base.OnPubSubServiceClosed += (object sender, EventArgs e) => { ThreadDispatcher.Enqueue(() => OnPubSubServiceClosed?.Invoke(sender, e)); }; + base.OnListenResponse += (object sender, OnListenResponseArgs e) => { ThreadDispatcher.Enqueue(() => OnListenResponse?.Invoke(sender, e)); }; + base.OnTimeout += (object sender, OnTimeoutArgs e) => { ThreadDispatcher.Enqueue(() => OnTimeout?.Invoke(sender, e)); }; + base.OnBan += (object sender, OnBanArgs e) => { ThreadDispatcher.Enqueue(() => OnBan?.Invoke(sender, e)); }; + base.OnUnban += (object sender, OnUnbanArgs e) => { ThreadDispatcher.Enqueue(() => OnUnban?.Invoke(sender, e)); }; + base.OnUntimeout += (object sender, OnUntimeoutArgs e) => { ThreadDispatcher.Enqueue(() => OnUntimeout?.Invoke(sender, e)); }; + base.OnHost += (object sender, OnHostArgs e) => { ThreadDispatcher.Enqueue(() => OnHost?.Invoke(sender, e)); }; + base.OnSubscribersOnly += (object sender, OnSubscribersOnlyArgs e) => { ThreadDispatcher.Enqueue(() => OnSubscribersOnly?.Invoke(sender, e)); }; + base.OnSubscribersOnlyOff += (object sender, OnSubscribersOnlyOffArgs e) => { ThreadDispatcher.Enqueue(() => OnSubscribersOnlyOff?.Invoke(sender, e)); }; + base.OnClear += (object sender, OnClearArgs e) => { ThreadDispatcher.Enqueue(() => OnClear?.Invoke(sender, e)); }; + base.OnEmoteOnly += (object sender, OnEmoteOnlyArgs e) => { ThreadDispatcher.Enqueue(() => OnEmoteOnly?.Invoke(sender, e)); }; + base.OnEmoteOnlyOff += (object sender, OnEmoteOnlyOffArgs e) => { ThreadDispatcher.Enqueue(() => OnEmoteOnlyOff?.Invoke(sender, e)); }; + base.OnR9kBeta += (object sender, OnR9kBetaArgs e) => { ThreadDispatcher.Enqueue(() => OnR9kBeta?.Invoke(sender, e)); }; + base.OnR9kBetaOff += (object sender, OnR9kBetaOffArgs e) => { ThreadDispatcher.Enqueue(() => OnR9kBetaOff?.Invoke(sender, e)); }; + base.OnStreamUp += (object sender, OnStreamUpArgs arg) => { ThreadDispatcher.Enqueue(() => OnStreamUp(sender, arg)); }; + base.OnStreamDown += (object sender, OnStreamDownArgs e) => { ThreadDispatcher.Enqueue(() => OnStreamDown?.Invoke(sender, e)); }; + base.OnViewCount += (object sender, OnViewCountArgs e) => { ThreadDispatcher.Enqueue(() => OnViewCount?.Invoke(sender, e)); }; + base.OnWhisper += (object sender, OnWhisperArgs e) => { ThreadDispatcher.Enqueue(() => OnWhisper?.Invoke(sender, e)); }; + base.OnChannelSubscription += (object sender, OnChannelSubscriptionArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelSubscription?.Invoke(sender, e)); }; + base.OnChannelExtensionBroadcast += (object sender, OnChannelExtensionBroadcastArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelExtensionBroadcast?.Invoke(sender, e)); }; + base.OnFollow += (object sender, OnFollowArgs e) => { ThreadDispatcher.Enqueue(() => OnFollow?.Invoke(sender, e)); }; + base.OnCustomRewardCreated += (object sender, OnCustomRewardCreatedArgs e) => { ThreadDispatcher.Enqueue(() => OnCustomRewardCreated?.Invoke(sender, e)); }; + base.OnCustomRewardUpdated += (object sender, OnCustomRewardUpdatedArgs e) => { ThreadDispatcher.Enqueue(() => OnCustomRewardUpdated?.Invoke(sender, e)); }; + base.OnCustomRewardDeleted += (object sender, OnCustomRewardDeletedArgs e) => { ThreadDispatcher.Enqueue(() => OnCustomRewardDeleted?.Invoke(sender, e)); }; + base.OnRewardRedeemed += (object sender, OnRewardRedeemedArgs e) => { ThreadDispatcher.Enqueue(() => OnRewardRedeemed?.Invoke(sender, e)); }; base.OnChannelPointsRewardRedeemed += (object sender, OnChannelPointsRewardRedeemedArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelPointsRewardRedeemed?.Invoke(sender, e)); }; - base.OnBitsReceivedV2 += ((object sender, OnBitsReceivedV2Args e) => { ThreadDispatcher.Enqueue(() => OnBitsReceivedV2?.Invoke(sender, e)); }); - base.OnLeaderboardSubs += ((object sender, OnLeaderboardEventArgs e) => { ThreadDispatcher.Enqueue(() => OnLeaderboardSubs?.Invoke(sender, e)); }); - base.OnLeaderboardBits += ((object sender, OnLeaderboardEventArgs e) => { ThreadDispatcher.Enqueue(() => OnLeaderboardBits?.Invoke(sender, e)); }); - base.OnRaidUpdate += ((object sender, OnRaidUpdateArgs e) => { ThreadDispatcher.Enqueue(() => OnRaidUpdate?.Invoke(sender, e)); }); - base.OnRaidUpdateV2 += ((object sender, OnRaidUpdateV2Args e) => { ThreadDispatcher.Enqueue(() => OnRaidUpdateV2?.Invoke(sender, e)); }); - base.OnRaidGo += ((object sender, OnRaidGoArgs e) => { ThreadDispatcher.Enqueue(() => OnRaidGo?.Invoke(sender, e)); }); - base.OnMessageDeleted += ((object sender, OnMessageDeletedArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageDeleted?.Invoke(sender, e)); }); - base.OnLog += ((object sender, OnLogArgs e) => { ThreadDispatcher.Enqueue(() => OnLog?.Invoke(sender, e)); }); - base.OnCommercial += ((object sender, OnCommercialArgs e) => { ThreadDispatcher.Enqueue(() => OnCommercial?.Invoke(sender, e)); }); - base.OnPrediction += ((object sender, OnPredictionArgs e) => { ThreadDispatcher.Enqueue(() => OnPrediction?.Invoke(sender, e)); }); - base.OnAutomodCaughtMessage += ((object sender, OnAutomodCaughtMessageArgs e) => { ThreadDispatcher.Enqueue(() => OnAutomodCaughtMessage?.Invoke(sender, e)); }); - base.OnAutomodCaughtUserMessage += ((object sender, OnAutomodCaughtUserMessage e) => { ThreadDispatcher.Enqueue(() => OnAutomodCaughtUserMessage?.Invoke(sender, e)); }); + base.OnBitsReceivedV2 += (object sender, OnBitsReceivedV2Args e) => { ThreadDispatcher.Enqueue(() => OnBitsReceivedV2?.Invoke(sender, e)); }; + base.OnLeaderboardSubs += (object sender, OnLeaderboardEventArgs e) => { ThreadDispatcher.Enqueue(() => OnLeaderboardSubs?.Invoke(sender, e)); }; + base.OnLeaderboardBits += (object sender, OnLeaderboardEventArgs e) => { ThreadDispatcher.Enqueue(() => OnLeaderboardBits?.Invoke(sender, e)); }; + base.OnRaidUpdate += (object sender, OnRaidUpdateArgs e) => { ThreadDispatcher.Enqueue(() => OnRaidUpdate?.Invoke(sender, e)); }; + base.OnRaidUpdateV2 += (object sender, OnRaidUpdateV2Args e) => { ThreadDispatcher.Enqueue(() => OnRaidUpdateV2?.Invoke(sender, e)); }; + base.OnRaidGo += (object sender, OnRaidGoArgs e) => { ThreadDispatcher.Enqueue(() => OnRaidGo?.Invoke(sender, e)); }; + base.OnMessageDeleted += (object sender, OnMessageDeletedArgs e) => { ThreadDispatcher.Enqueue(() => OnMessageDeleted?.Invoke(sender, e)); }; + base.OnLog += (object sender, OnLogArgs e) => { ThreadDispatcher.Enqueue(() => OnLog?.Invoke(sender, e)); }; + base.OnCommercial += (object sender, OnCommercialArgs e) => { ThreadDispatcher.Enqueue(() => OnCommercial?.Invoke(sender, e)); }; + base.OnPrediction += (object sender, OnPredictionArgs e) => { ThreadDispatcher.Enqueue(() => OnPrediction?.Invoke(sender, e)); }; + base.OnAutomodCaughtMessage += (object sender, OnAutomodCaughtMessageArgs e) => { ThreadDispatcher.Enqueue(() => OnAutomodCaughtMessage?.Invoke(sender, e)); }; + base.OnAutomodCaughtUserMessage += (object sender, OnAutomodCaughtUserMessage e) => { ThreadDispatcher.Enqueue(() => OnAutomodCaughtUserMessage?.Invoke(sender, e)); }; } } } diff --git a/TwitchLib.Unity/TwitchLib.Unity.csproj b/TwitchLib.Unity/TwitchLib.Unity.csproj index f340906..6806214 100644 --- a/TwitchLib.Unity/TwitchLib.Unity.csproj +++ b/TwitchLib.Unity/TwitchLib.Unity.csproj @@ -42,14 +42,10 @@ - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + From 1a329f6bcff03a59ee11e33441868a69d04ec463 Mon Sep 17 00:00:00 2001 From: Cole Date: Fri, 10 Nov 2023 11:28:30 -0800 Subject: [PATCH 2/2] EventHandler -> AsyncEventHandler --- TwitchLib.Unity/Client.cs | 116 +++++++++++++++++++------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/TwitchLib.Unity/Client.cs b/TwitchLib.Unity/Client.cs index 12be5b3..b5f9adb 100644 --- a/TwitchLib.Unity/Client.cs +++ b/TwitchLib.Unity/Client.cs @@ -4,7 +4,7 @@ using TwitchLib.Client.Events; using TwitchLib.Client.Exceptions; using TwitchLib.Client.Interfaces; -using TwitchLib.Client.Models; +using TwitchLib.Communication.Events; using UnityEngine; namespace TwitchLib.Unity @@ -15,213 +15,213 @@ public class Client : TwitchClient, ITwitchClient /// /// Fires when client connects to Twitch. /// - public new event EventHandler OnConnected; + public new event AsyncEventHandler OnConnected; /// /// Fires when client reconnects to Twitch. /// - public new event EventHandler OnReconnected; + public new event AsyncEventHandler OnReconnected; /// /// Fires when client joins a channel. /// - public new event EventHandler OnJoinedChannel; + public new event AsyncEventHandler OnJoinedChannel; /// /// Fires on logging in with incorrect details, returns ErrorLoggingInException. /// - public new event EventHandler OnIncorrectLogin; + public new event AsyncEventHandler OnIncorrectLogin; /// /// Fires when connecting and channel state is changed, returns ChannelState. /// - public new event EventHandler OnChannelStateChanged; + public new event AsyncEventHandler OnChannelStateChanged; /// /// Fires when a user state is received, returns UserState. /// - public new event EventHandler OnUserStateChanged; + public new event AsyncEventHandler OnUserStateChanged; /// /// Fires when a new chat message arrives, returns ChatMessage. /// - public new event EventHandler OnMessageReceived; + public new event AsyncEventHandler OnMessageReceived; /// /// Fires when a new whisper arrives, returns WhisperMessage. /// - public new event EventHandler OnWhisperReceived; + public new event AsyncEventHandler OnWhisperReceived; /// /// Fires when a chat message is sent, returns username, channel and message. /// - public new event EventHandler OnMessageSent; + public new event AsyncEventHandler OnMessageSent; /// /// Fires when command (uses custom chat command identifier) is received, returns channel, command, ChatMessage, arguments as string, arguments as list. /// - public new event EventHandler OnChatCommandReceived; + public new event AsyncEventHandler OnChatCommandReceived; /// /// Fires when command (uses custom whisper command identifier) is received, returns command, Whispermessage. /// - public new event EventHandler OnWhisperCommandReceived; + public new event AsyncEventHandler OnWhisperCommandReceived; /// /// Fires when a new viewer/chatter joined the channel's chat room, returns username and channel. /// - public new event EventHandler OnUserJoined; + public new event AsyncEventHandler OnUserJoined; /// /// Fires when new subscriber is announced in chat, returns Subscriber. /// - public new event EventHandler OnNewSubscriber; + public new event AsyncEventHandler OnNewSubscriber; /// /// Fires when current subscriber renews subscription, returns ReSubscriber. /// - public new event EventHandler OnReSubscriber; + public new event AsyncEventHandler OnReSubscriber; /// /// Fires when a current Prime gaming subscriber converts to a paid subscription. /// - public new event EventHandler OnPrimePaidSubscriber; + public new event AsyncEventHandler OnPrimePaidSubscriber; /// /// Fires when a current gifted subscriber converts to a paid subscription. /// - public new event EventHandler OnContinuedGiftedSubscription; + public new event AsyncEventHandler OnContinuedGiftedSubscription; /// /// Fires when Twitch notifies client of existing users in chat. /// - public new event EventHandler OnExistingUsersDetected; + public new event AsyncEventHandler OnExistingUsersDetected; /// /// Fires when a PART message is received from Twitch regarding a particular viewer /// - public new event EventHandler OnUserLeft; + public new event AsyncEventHandler OnUserLeft; /// /// Fires when bot has disconnected. /// - public new event EventHandler OnDisconnected; + public new event AsyncEventHandler OnDisconnected; /// /// Forces when bot suffers conneciton error. /// - public new event EventHandler OnConnectionError; + public new event AsyncEventHandler OnConnectionError; /// /// Fires when a channel's chat is cleared. /// - public new event EventHandler OnChatCleared; + public new event AsyncEventHandler OnChatCleared; /// /// Fires when a viewer gets timedout by any moderator. /// - public new event EventHandler OnUserTimedout; + public new event AsyncEventHandler OnUserTimedout; /// /// Fires when client successfully leaves a channel. /// - public new event EventHandler OnLeftChannel; + public new event AsyncEventHandler OnLeftChannel; /// /// Fires when a viewer gets banned by any moderator. /// - public new event EventHandler OnUserBanned; + public new event AsyncEventHandler OnUserBanned; /// /// Fires when a list of moderators is received. /// - public new event EventHandler OnModeratorsReceived; + public new event AsyncEventHandler OnModeratorsReceived; /// /// Fires when confirmation of a chat color change request was received. /// - public new event EventHandler OnChatColorChanged; + public new event AsyncEventHandler OnChatColorChanged; /// /// Fires when data is either received or sent. /// - public new event EventHandler OnSendReceiveData; + public new event AsyncEventHandler OnSendReceiveData; /// /// Fires when a raid notification is detected in chat /// - public new event EventHandler OnRaidNotification; + public new event AsyncEventHandler OnRaidNotification; /// /// Fires when a subscription is gifted and announced in chat /// - public new event EventHandler OnGiftedSubscription; + public new event AsyncEventHandler OnGiftedSubscription; /// Fires when TwitchClient attempts to host a channel it is in. - public new event EventHandler OnSelfRaidError; + public new event AsyncEventHandler OnSelfRaidError; /// Fires when TwitchClient receives generic no permission error from Twitch. - public new event EventHandler OnNoPermissionError; + public new event AsyncEventHandler OnNoPermissionError; /// Fires when newly raided channel is mature audience only. - public new event EventHandler OnRaidedChannelIsMatureAudience; + public new event AsyncEventHandler OnRaidedChannelIsMatureAudience; /// Fires when the client was unable to join a channel. - public new event EventHandler OnFailureToReceiveJoinConfirmation; + public new event AsyncEventHandler OnFailureToReceiveJoinConfirmation; /// Fires when data is received from Twitch that is not able to be parsed. - public new event EventHandler OnUnaccountedFor; + public new event AsyncEventHandler OnUnaccountedFor; /// Fires when named event occurs. - public new event EventHandler OnMessageCleared; + public new event AsyncEventHandler OnMessageCleared; /// Fires when named event occurs. - public new event EventHandler OnCommunitySubscription; + public new event AsyncEventHandler OnCommunitySubscription; /// Fires when named event occurs. - public new event EventHandler OnError; + public new event AsyncEventHandler OnError; /// Fires when named event occurs. - public new event EventHandler OnVIPsReceived; + public new event AsyncEventHandler OnVIPsReceived; /// Fires when named event occurs. - public new event EventHandler OnAnnouncement; + public new event AsyncEventHandler OnAnnouncement; /// Fires when named event occurs. - public new event EventHandler OnMessageThrottled; + public new event AsyncEventHandler OnMessageThrottled; /// Fires when named event occurs. - public new event EventHandler OnRequiresVerifiedPhoneNumber; + public new event AsyncEventHandler OnRequiresVerifiedPhoneNumber; /// Fires when named event occurs. - public new event EventHandler OnFollowersOnly; + public new event AsyncEventHandler OnFollowersOnly; /// Fires when named event occurs. - public new event EventHandler OnSubsOnly; + public new event AsyncEventHandler OnSubsOnly; /// Fires when named event occurs. - public new event EventHandler OnEmoteOnly; + public new event AsyncEventHandler OnEmoteOnly; /// Fires when named event occurs. - public new event EventHandler OnSuspended; + public new event AsyncEventHandler OnSuspended; /// Fires when named event occurs. - public new event EventHandler OnBanned; + public new event AsyncEventHandler OnBanned; /// Fires when named event occurs. - public new event EventHandler OnSlowMode; + public new event AsyncEventHandler OnSlowMode; /// Fires when named event occurs. - public new event EventHandler OnR9kMode; + public new event AsyncEventHandler OnR9kMode; /// Fires when named event occurs. - public new event EventHandler OnUserIntro; + public new event AsyncEventHandler OnUserIntro; /// Fires when named event occurs. - public new event EventHandler OnAnonGiftPaidUpgrade; + public new event AsyncEventHandler OnAnonGiftPaidUpgrade; /// Fires when named event occurs. - public new event EventHandler OnUnraidNotification; + public new event AsyncEventHandler OnUnraidNotification; /// Fires when named event occurs. - public new event EventHandler OnRitual; + public new event AsyncEventHandler OnRitual; /// Fires when named event occurs. - public new event EventHandler OnBitsBadgeTier; + public new event AsyncEventHandler OnBitsBadgeTier; /// Fires when named event occurs. - public new event EventHandler OnCommunityPayForward; + public new event AsyncEventHandler OnCommunityPayForward; /// Fires when named event occurs. - public new event EventHandler OnStandardPayForward; + public new event AsyncEventHandler OnStandardPayForward; #endregion public Client() : base(null) { ThreadDispatcher.EnsureCreated(); - base.OnConnected += (object sender, OnConnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnConnected?.Invoke(sender, e)); return Task.CompletedTask; }; - base.OnReconnected += (object sender, OnConnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnReconnected?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnConnected += (object sender, TwitchLib.Client.Events.OnConnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnConnected?.Invoke(sender, e)); return Task.CompletedTask; }; + base.OnReconnected += (object sender, TwitchLib.Client.Events.OnConnectedEventArgs e) => { ThreadDispatcher.Enqueue(() => OnReconnected?.Invoke(sender, e)); return Task.CompletedTask; }; base.OnJoinedChannel += (object sender, OnJoinedChannelArgs e) => { ThreadDispatcher.Enqueue(() => OnJoinedChannel?.Invoke(sender, e)); return Task.CompletedTask; }; base.OnIncorrectLogin += (object sender, OnIncorrectLoginArgs e) => { ThreadDispatcher.Enqueue(() => OnIncorrectLogin?.Invoke(sender, e)); return Task.CompletedTask; }; base.OnChannelStateChanged += (object sender, OnChannelStateChangedArgs e) => { ThreadDispatcher.Enqueue(() => OnChannelStateChanged?.Invoke(sender, e)); return Task.CompletedTask; };