diff --git a/Events/MonsterSpawner.cs b/Events/MonsterSpawner.cs index deec621..1066642 100644 --- a/Events/MonsterSpawner.cs +++ b/Events/MonsterSpawner.cs @@ -72,7 +72,7 @@ private CombatSquad SpawnMonstersInternal( Destroy(group); return null; } - card.directorCreditCost = 0; + SpawnFinalizer finalizer = new SpawnFinalizer() { CombatSquad = group, diff --git a/README.md b/README.md index efff525..a1bd40e 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ accordingly when needed. Below you'll see a column for what configurations can b |------|----|-------|-------------|-----| |`Channel`|text||✔️|The channel to monitor Twitch chat| |`Username`|text||✔️|The username to use when calling Twitch APIs. If you aren't using a secondary account, this should be the same as `Channel`| -|`ImplicitOAuth`|text||❌|The "password" to access Twitch APIs. **Please visit [twitchapps.com][1] to get the password to put here.** Note that this password is not sent to any servers other than Twitch to authenticate. **DO NOT GIVE THIS TO ANYONE.** To revoke this password, go to [Twitch Connections Settings][2] and Disconnect the app named "Twitch Chat OAuth Token Generator".| +|`ImplicitOAuth`|text||❌|The "password" to access Twitch APIs. **Please visit [twitchapps.com][1] to get the password to put here.** Note that this password is not sent to any servers other than Twitch to authenticate. **DO NOT GIVE THIS TO ANYONE.** To revoke this password, go to [Twitch Connections Settings][2] and Disconnect the app named "Twitch Token Generator by swiftyspiffy".| |`DebugLogs`|true/false|false|✔️|Enable debug logging for Twitch - will spam to the console!| |`ClientID`|text|q6batx0epp608isickayubi39itsckt|❌|The client ID of the app that you used to populate the `ImplicitOAuth` field. If you used [twitchapps.com][1] this would be the default value. If you used another Twitch app, this needs to be changed accordingly.| |`EnableItemVoting`|true/false|true|✔️|Enables the main feature of this mod. Disable it if you only want to enable bit interactions.| @@ -42,12 +42,12 @@ accordingly when needed. Below you'll see a column for what configurations can b |`CurrentBits`|number|0|❌|**Do not edit this field.** Used as storage whenever someone donates bits so that restarting the game doesn't clear the donation count.| |`PublishToChat`|true/false|true|✔️|Publish events (like voting) to Twitch chat.| -[1]: https://id.twitch.tv/oauth2/authorize?response_type=token&client_id=q6batx0epp608isickayubi39itsckt&redirect_uri=https://twitchapps.com/tmi/&scope=channel_subscriptions+user_subscriptions+channel_check_subscription+bits:read+chat:read+chat:edit+channel:read:redemptions+channel:read:hype_train +[1]: https://twitchtokengenerator.com/quick/Bt3H1fq9dl [2]: https://www.twitch.tv/settings/connections ### Help, I accidentally gave someone my `ImplicitOAuth` token! -To revoke this password, go to [Twitch Connections Settings][2] and Disconnect the app named "Twitch Chat OAuth Token Generator". You can then regenerate a new token via [twitchapps.com][1] and put it in the config; but, keep it safe this time! +To revoke this password, go to [Twitch Connections Settings][2] and Disconnect the app named "Twitch Token Generator by swiftyspiffy". You can then regenerate a new token via [twitchapps.com][1] and put it in the config; but, keep it safe this time! ## Tiltify diff --git a/Twitch/ChannelPointsManager.cs b/Twitch/ChannelPointsManager.cs index 1477fa2..4976f10 100644 --- a/Twitch/ChannelPointsManager.cs +++ b/Twitch/ChannelPointsManager.cs @@ -6,14 +6,14 @@ namespace VsTwitch { class ChannelPointsManager { - private readonly Dictionary> channelEvents; + private readonly Dictionary> channelEvents; public ChannelPointsManager() { - channelEvents = new Dictionary>(); + channelEvents = new Dictionary>(); } - public bool RegisterEvent(string eventName, Action e) { + public bool RegisterEvent(string eventName, Action e) { if (string.IsNullOrWhiteSpace(eventName)) { return false; @@ -34,16 +34,17 @@ public bool UnregisterEvent(string eventName) return true; } - public bool TriggerEvent(OnRewardRedeemedArgs e) + public bool TriggerEvent(OnChannelPointsRewardRedeemedArgs e) { - if (!channelEvents.ContainsKey(e.RewardTitle)) + string title = e.RewardRedeemed.Redemption.Reward.Title; + if (!channelEvents.ContainsKey(title)) { return false; } try { - channelEvents[e.RewardTitle](this, e); + channelEvents[title](this, e); return true; } catch (Exception ex) diff --git a/Twitch/TwitchManager.cs b/Twitch/TwitchManager.cs index c8374f1..3b097af 100644 --- a/Twitch/TwitchManager.cs +++ b/Twitch/TwitchManager.cs @@ -1,11 +1,15 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Console; +using Newtonsoft.Json; using TwitchLib.Client.Events; using TwitchLib.Client.Models; using TwitchLib.Communication.Events; using TwitchLib.PubSub.Events; using TwitchLib.Unity; +using UnityEngine; namespace VsTwitch { @@ -22,10 +26,10 @@ class TwitchManager public bool DebugLogs { get; set; } - public event EventHandler OnMessageReceived; - public event EventHandler OnRewardRedeemed; - public event EventHandler OnConnected; - public event EventHandler OnDisconnected; + public event AsyncEventHandler OnMessageReceived; + public event EventHandler OnRewardRedeemed; + public event AsyncEventHandler OnConnected; + public event AsyncEventHandler OnDisconnected; public TwitchManager() { @@ -63,54 +67,58 @@ public void Connect(string channel, string oauthToken, string username, string c TwitchApi.Settings.AccessToken = twitchApiOauthToken; TwitchApi.Settings.ClientId = clientId; string channelId = null; - try - { - LogDebug("[Twitch API] Trying to find channel ID..."); - Task response = TwitchApi.Helix.Users.GetUsersAsync(null, - new List(new string[] { channel })); - response.Wait(); + LogDebug("[Twitch API] Trying to find channel ID..."); + Task response = TwitchApi.Helix.Users.GetUsersAsync(null, + new List(new string[] { channel })); + response.Wait(5000); - if (response.Result.Users.Length == 1) - { - channelId = response.Result.Users[0].Id; - Log.Info($"[Twitch API] Channel ID for {channel} = {channelId}"); - } - else - { - throw new ArgumentException($"Couldn't find Twitch user/channel {channel}!"); - } + if (response.IsCompleted && response.Result.Users.Length == 1) + { + channelId = response.Result.Users[0].Id; + Log.Info($"[Twitch API] Channel ID for {channel} = {channelId}"); } - catch (Exception ex) + + if (channelId == null) { - if (ex is ArgumentException) - { - throw ex; - } - Log.Exception(ex); + throw new ArgumentException($"Couldn't find Twitch user/channel {channel}!"); } LogDebug("[Twitch Client] Creating..."); ConnectionCredentials credentials = new ConnectionCredentials(username, oauthToken); TwitchClient = new Client(); TwitchClient.Initialize(credentials, channel); - TwitchClient.OnLog += TwitchClient_OnLog; + //TwitchClient.OnLog += TwitchClient_OnLog; TwitchClient.OnJoinedChannel += OnConnected; TwitchClient.OnMessageReceived += OnMessageReceived; - TwitchClient.OnConnected += TwitchClient_OnConnected; + TwitchClient.OnConnected += (object sender, TwitchLib.Client.Events.OnConnectedEventArgs e) => + { + TwitchClient.JoinChannelAsync(channelId); + return Task.CompletedTask; + }; TwitchClient.OnDisconnected += OnDisconnected; LogDebug("[Twitch Client] Connecting..."); - TwitchClient.Connect(); + TwitchClient.ConnectAsync(); if (channelId != null && channelId.Trim().Length != 0) { + ILoggerFactory loggerFactory = LoggerFactory.Create(builder => + { + builder + .AddFilter((type, category, logLevel) => this.DebugLogs) + .AddConsole(); + }); + ILogger logger = loggerFactory.CreateLogger(); + logger.LogError("Created internal Twitch PubSub logger"); + LogDebug("[Twitch PubSub] Creating..."); - TwitchPubSub = new PubSub(); + TwitchPubSub = new PubSub(logger); TwitchPubSub.OnLog += TwitchPubSub_OnLog; TwitchPubSub.OnPubSubServiceConnected += (sender, e) => { Log.Info("[Twitch PubSub] Sending topics to listen too..."); - TwitchPubSub.ListenToRewards(channelId); - TwitchPubSub.SendTopics(twitchApiOauthToken); + TwitchPubSub.ListenToChannelPoints(channelId); + TwitchPubSub.ListenToBitsEventsV2(channelId); + TwitchPubSub.SendTopicsAsync(twitchApiOauthToken); }; TwitchPubSub.OnPubSubServiceError += (sender, e) => { @@ -124,32 +132,35 @@ public void Connect(string channel, string oauthToken, string username, string c { if (!e.Successful) { - Log.Error($"[Twitch PubSub] Failed to listen! Response: {e.Response}"); + Log.Error($"[Twitch PubSub] Failed to listen! Response: {JsonConvert.SerializeObject(e.Response)}"); } else { - Log.Info($"[Twitch PubSub] Listening to {e.Topic} - {e.Response}"); + Log.Info($"[Twitch PubSub] Listening to {e.Topic} - {JsonConvert.SerializeObject(e.Response)}"); } }; - TwitchPubSub.OnRewardRedeemed += OnRewardRedeemed; + // ListenToChannelPoints + TwitchPubSub.OnChannelPointsRewardRedeemed += OnRewardRedeemed; + // ListenToBitsEventsV2 - This is taken care of automatically via the "OnMessageReceived" event + // TwitchPubSub.OnBitsReceivedV2 += OnBitsReceivedV2; Log.Info("[Twitch PubSub] Connecting..."); - TwitchPubSub.Connect(); + TwitchPubSub.ConnectAsync(); } } public void Disconnect() { LogDebug("TwitchManager::Disconnect"); - if (TwitchClient != null) - { - TwitchClient.Disconnect(); - TwitchClient = null; - } if (TwitchPubSub != null) { - TwitchPubSub.Disconnect(); + TwitchPubSub.DisconnectAsync(); TwitchPubSub = null; } + if (TwitchClient != null) + { + TwitchClient.DisconnectAsync(); + TwitchClient = null; + } if (TwitchApi != null) { TwitchApi = null; @@ -168,12 +179,7 @@ public void SendMessage(string message) Log.Warning("[Twitch Client] Not connected to Twitch!"); return; } - TwitchClient.SendMessage(Channel, message); - } - - private void TwitchClient_OnConnected(object sender, OnConnectedArgs e) - { - Log.Info("[Twitch Client] Connected to Twitch using username: " + e.BotUsername); + TwitchClient.SendMessageAsync(Channel, message); } private void TwitchPubSub_OnLog(object sender, TwitchLib.PubSub.Events.OnLogArgs e) @@ -181,10 +187,10 @@ private void TwitchPubSub_OnLog(object sender, TwitchLib.PubSub.Events.OnLogArgs LogDebug($"[Twitch PubSub] {e.Data}"); } - private void TwitchClient_OnLog(object sender, TwitchLib.Client.Events.OnLogArgs e) - { - LogDebug($"[Twitch Client] {e.DateTime}: {e.BotUsername} - {e.Data}"); - } + //private void TwitchClient_OnLog(object sender, TwitchLib.Client.Events.OnLogArgs e) + //{ + // LogDebug($"[Twitch Client] {e.DateTime}: {e.BotUsername} - {e.Data}"); + //} private void LogDebug(string message) { diff --git a/VsTwitch.cs b/VsTwitch.cs index 02e5ee2..0cba6dc 100644 --- a/VsTwitch.cs +++ b/VsTwitch.cs @@ -4,9 +4,14 @@ using System.Collections; using System.Collections.Generic; using System.Reflection; +using System.Runtime.CompilerServices; using System.Security.Permissions; +using System.Threading.Tasks; using UnityEngine; using UnityEngine.Networking; +using static UnityEngine.UIElements.MeshGenerationContextUtils; +using UnityEngine.XR; +using System.Text; // Allow scanning for ConCommand, and other stuff for Risk of Rain 2 [assembly: HG.Reflection.SearchableAttribute.OptIn] @@ -32,9 +37,7 @@ public class VsTwitch : BaseUnityPlugin private LanguageOverride languageOverride; private EventDirector eventDirector; private EventFactory eventFactory; - private TiltifyManager tiltifyManager; - private Configuration configuration; /// @@ -45,13 +48,15 @@ public class VsTwitch : BaseUnityPlugin /// private static void DumpAssemblies() { - Log.Error("===== DUMPING ASSEMBLY INFORMATION ====="); + StringBuilder sb = new StringBuilder(); + sb.AppendLine("===== DUMPING ASSEMBLY INFORMATION ====="); AppDomain currentDomain = AppDomain.CurrentDomain; foreach (var assembly in currentDomain.GetAssemblies()) { - Log.Error($"{assembly.FullName}, {assembly.Location}"); + sb.AppendLine($"{assembly.FullName}, {assembly.Location}"); } - Log.Error("===== FINISHED DUMPING ASSEMBLY INFORMATION ====="); + sb.AppendLine("===== FINISHED DUMPING ASSEMBLY INFORMATION ====="); + Log.Error(sb.ToString()); } #region "Constructors/Destructors" @@ -145,19 +150,23 @@ public void Awake() bitsManager.BitGoal = configuration.BitsThreshold.Value; bitsManager.OnUpdateBits += BitsManager_OnUpdateBits; - twitchManager.OnConnected += (sender, joinedChannel) => { + twitchManager.OnConnected += (sender, joinedChannel) => + { Log.Info($"Connected to Twitch! Watching {joinedChannel.Channel}..."); Chat.AddMessage($"Connected to Twitch! Watching {joinedChannel.Channel}..."); + return Task.CompletedTask; }; twitchManager.OnDisconnected += (sender, disconnect) => { Log.Info("Disconnected from Twitch!"); Chat.AddMessage($"Disconnected from Twitch!"); + return Task.CompletedTask; }; twitchManager.OnMessageReceived += TwitchManager_OnMessageReceived; twitchManager.OnRewardRedeemed += TwitchManager_OnRewardRedeemed; - tiltifyManager.OnConnected += (sender, e) => { + tiltifyManager.OnConnected += (sender, e) => + { Log.Info($"Connected to Tiltify!"); Chat.AddMessage($"Connected to Tiltify!"); }; @@ -171,11 +180,11 @@ public void Awake() private void SetUpChannelPoints() { - void UsedChannelPoints(TwitchLib.PubSub.Events.OnRewardRedeemedArgs e) + void UsedChannelPoints(TwitchLib.PubSub.Events.OnChannelPointsRewardRedeemedArgs e) { eventDirector.AddEvent(eventFactory.BroadcastChat(new Chat.SimpleChatMessage() { - baseToken = $"{Util.EscapeRichTextForTextMeshPro(e.DisplayName)} used their channel points ({e.RewardCost:N0})." + baseToken = $"{Util.EscapeRichTextForTextMeshPro(e.RewardRedeemed.Redemption.User.DisplayName)} used their channel points ({e.RewardRedeemed.Redemption.Reward.Cost:N0})." })); } @@ -184,7 +193,7 @@ void UsedChannelPoints(TwitchLib.PubSub.Events.OnRewardRedeemedArgs e) if (channelPointsManager.RegisterEvent(configuration.ChannelPointsAllyBeetle.Value, (manager, e) => { eventDirector.AddEvent(eventFactory.CreateAlly( - e.DisplayName, + e.RewardRedeemed.Redemption.User.DisplayName, MonsterSpawner.Monsters.Beetle, RollForElite(true))); })) @@ -199,7 +208,7 @@ void UsedChannelPoints(TwitchLib.PubSub.Events.OnRewardRedeemedArgs e) if (channelPointsManager.RegisterEvent(configuration.ChannelPointsAllyLemurian.Value, (manager, e) => { eventDirector.AddEvent(eventFactory.CreateAlly( - e.DisplayName, + e.RewardRedeemed.Redemption.User.DisplayName, MonsterSpawner.Monsters.Lemurian, RollForElite(true))); })) @@ -214,7 +223,7 @@ void UsedChannelPoints(TwitchLib.PubSub.Events.OnRewardRedeemedArgs e) if (channelPointsManager.RegisterEvent(configuration.ChannelPointsAllyElderLemurian.Value, (manager, e) => { eventDirector.AddEvent(eventFactory.CreateAlly( - e.DisplayName, + e.RewardRedeemed.Redemption.User.DisplayName, MonsterSpawner.Monsters.LemurianBruiser, RollForElite(true))); })) @@ -228,7 +237,7 @@ void UsedChannelPoints(TwitchLib.PubSub.Events.OnRewardRedeemedArgs e) if (channelPointsManager.RegisterEvent(configuration.ChannelPointsRustedKey.Value, (manager, e) => { - GiveRustedKey(e.DisplayName); + GiveRustedKey(e.RewardRedeemed.Redemption.User.DisplayName); })) { Log.Info($"Successfully registered Channel Points event: Rusted Key ({configuration.ChannelPointsRustedKey.Value})"); @@ -585,14 +594,14 @@ private void GameNetworkManager_onStopHostGlobal() } } - private void TwitchManager_OnMessageReceived(object sender, TwitchLib.Client.Events.OnMessageReceivedArgs e) + private Task TwitchManager_OnMessageReceived(object sender, TwitchLib.Client.Events.OnMessageReceivedArgs e) { try { if (!NetworkServer.active) { Log.Warning("[Server] Server not active"); - return; + return Task.CompletedTask; } string msg = e.ChatMessage.Message.Trim(); @@ -609,11 +618,11 @@ private void TwitchManager_OnMessageReceived(object sender, TwitchLib.Client.Eve RecievedBits(e.ChatMessage.DisplayName, e.ChatMessage.Bits); } - if (e.ChatMessage.IsMe || e.ChatMessage.IsModerator || e.ChatMessage.IsBroadcaster) + if (e.ChatMessage.IsMe || e.ChatMessage.UserDetail.IsModerator || e.ChatMessage.IsBroadcaster) { if (!eventDirector || !eventFactory) { - return; + return Task.CompletedTask; } switch (msgParts[0]) @@ -715,6 +724,7 @@ private void TwitchManager_OnMessageReceived(object sender, TwitchLib.Client.Eve { Log.Error(ex); } + return Task.CompletedTask; } private void GiveRustedKey(string name) @@ -726,19 +736,19 @@ private void GiveRustedKey(string name) eventDirector.AddEvent(eventFactory.SpawnItem(PickupCatalog.FindPickupIndex(RoR2Content.Items.TreasureCache.itemIndex))); } - private void TwitchManager_OnRewardRedeemed(object sender, TwitchLib.PubSub.Events.OnRewardRedeemedArgs e) + private void TwitchManager_OnRewardRedeemed(object sender, TwitchLib.PubSub.Events.OnChannelPointsRewardRedeemedArgs e) { try { if (!configuration.ChannelPointsEnable.Value) { - Log.Warning($"Channel points disabled - Could not trigger event for Channel Points Redemption: {e.RewardTitle}"); + Log.Warning($"Channel points disabled - Could not trigger event for Channel Points Redemption: {e.RewardRedeemed.Redemption.Reward.Title}"); return; } if (channelPointsManager != null) { bool triggered = channelPointsManager.TriggerEvent(e); - Log.Info($"Channel Points Redemption: {e.RewardTitle} (Event triggered: {triggered})"); + Log.Info($"Channel Points Redemption: {e.RewardRedeemed.Redemption.Reward.Title} (Event triggered: {triggered})"); } } catch (Exception ex) @@ -858,7 +868,7 @@ private void PreventSpawnedMonsterSuicides() } } - private void HealthComponent_Suicide(On.RoR2.HealthComponent.orig_Suicide orig, HealthComponent self, GameObject killerOverride, GameObject inflictorOverride, DamageType damageType) + private void HealthComponent_Suicide(On.RoR2.HealthComponent.orig_Suicide orig, HealthComponent self, GameObject killerOverride, GameObject inflictorOverride, DamageTypeCombo damageType) { if (!NetworkServer.active) { diff --git a/VsTwitch.csproj b/VsTwitch.csproj index 84fb711..593fabc 100644 --- a/VsTwitch.csproj +++ b/VsTwitch.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + netstandard2.1 true OnBuildSuccess VsTwitch @@ -11,84 +11,100 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + + runtime - - - - + + + runtime + + none + runtime - + NU1701 + runtime + + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\Microsoft.Extensions.Logging.Abstractions.dll + ..\..\..\..\AppData\Roaming\r2modmanPlus-local\RiskOfRain2\profiles\Testing\BepInEx\plugins\Rune580-Risk_Of_Options\RiskOfOptions\RiskOfOptions.dll + False + + + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\System.Diagnostics.DiagnosticSource.dll + + + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\System.Runtime.CompilerServices.Unsafe.dll + + + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\System.Runtime.Numerics.dll + + + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\System.Security.Cryptography.OpenSsl.dll ..\Tiltify-Client\bin\Release\netstandard2.0\Tiltify-Client.dll + True - lib\TwitchLib.Api.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.dll - lib\TwitchLib.Api.Core.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.Core.dll - lib\TwitchLib.Api.Core.Enums.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.Core.Enums.dll - lib\TwitchLib.Api.Core.Interfaces.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.Core.Interfaces.dll - lib\TwitchLib.Api.Core.Models.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.Core.Models.dll - lib\TwitchLib.Api.Helix.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.Helix.dll - lib\TwitchLib.Api.Helix.Models.dll - - - lib\TwitchLib.Api.V5.dll - - - lib\TwitchLib.Api.V5.Models.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Api.Helix.Models.dll - lib\TwitchLib.Client.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Client.dll - lib\TwitchLib.Client.Enums.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Client.Enums.dll - lib\TwitchLib.Client.Models.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Client.Models.dll - lib\TwitchLib.Communication.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Communication.dll - lib\TwitchLib.PubSub.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.PubSub.dll - lib\TwitchLib.Unity.dll + ..\TwitchLib\TwitchLib.Unity\TwitchLib.Unity\bin\Debug\netstandard2.1\TwitchLib.Unity.dll - - - - + diff --git a/VsTwitch.sln b/VsTwitch.sln index ce436bf..9fd545f 100644 --- a/VsTwitch.sln +++ b/VsTwitch.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30717.126 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35222.181 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VsTwitch", "VsTwitch.csproj", "{7244822B-327A-400B-A8E4-F752C31BF3F2}" EndProject diff --git a/lib/Microsoft.Extensions.Logging.Abstractions.dll b/lib/Microsoft.Extensions.Logging.Abstractions.dll deleted file mode 100644 index 4e8e3f2..0000000 Binary files a/lib/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.Core.Enums.dll b/lib/TwitchLib.Api.Core.Enums.dll deleted file mode 100644 index 299d0df..0000000 Binary files a/lib/TwitchLib.Api.Core.Enums.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.Core.Interfaces.dll b/lib/TwitchLib.Api.Core.Interfaces.dll deleted file mode 100644 index 76e87a1..0000000 Binary files a/lib/TwitchLib.Api.Core.Interfaces.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.Core.Models.dll b/lib/TwitchLib.Api.Core.Models.dll deleted file mode 100644 index f050fe6..0000000 Binary files a/lib/TwitchLib.Api.Core.Models.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.Core.dll b/lib/TwitchLib.Api.Core.dll deleted file mode 100644 index 19d76ed..0000000 Binary files a/lib/TwitchLib.Api.Core.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.Helix.Models.dll b/lib/TwitchLib.Api.Helix.Models.dll deleted file mode 100644 index d706980..0000000 Binary files a/lib/TwitchLib.Api.Helix.Models.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.Helix.dll b/lib/TwitchLib.Api.Helix.dll deleted file mode 100644 index 5b62c89..0000000 Binary files a/lib/TwitchLib.Api.Helix.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.V5.Models.dll b/lib/TwitchLib.Api.V5.Models.dll deleted file mode 100644 index b94b520..0000000 Binary files a/lib/TwitchLib.Api.V5.Models.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.V5.dll b/lib/TwitchLib.Api.V5.dll deleted file mode 100644 index db990d8..0000000 Binary files a/lib/TwitchLib.Api.V5.dll and /dev/null differ diff --git a/lib/TwitchLib.Api.dll b/lib/TwitchLib.Api.dll deleted file mode 100644 index 5ed62b6..0000000 Binary files a/lib/TwitchLib.Api.dll and /dev/null differ diff --git a/lib/TwitchLib.Client.Enums.dll b/lib/TwitchLib.Client.Enums.dll deleted file mode 100644 index 85258d5..0000000 Binary files a/lib/TwitchLib.Client.Enums.dll and /dev/null differ diff --git a/lib/TwitchLib.Client.Models.dll b/lib/TwitchLib.Client.Models.dll deleted file mode 100644 index 1937967..0000000 Binary files a/lib/TwitchLib.Client.Models.dll and /dev/null differ diff --git a/lib/TwitchLib.Client.dll b/lib/TwitchLib.Client.dll deleted file mode 100644 index c076cd5..0000000 Binary files a/lib/TwitchLib.Client.dll and /dev/null differ diff --git a/lib/TwitchLib.Communication.dll b/lib/TwitchLib.Communication.dll deleted file mode 100644 index d954bc1..0000000 Binary files a/lib/TwitchLib.Communication.dll and /dev/null differ diff --git a/lib/TwitchLib.PubSub.dll b/lib/TwitchLib.PubSub.dll deleted file mode 100644 index 7edabbc..0000000 Binary files a/lib/TwitchLib.PubSub.dll and /dev/null differ diff --git a/lib/TwitchLib.Unity.dll b/lib/TwitchLib.Unity.dll deleted file mode 100644 index bb38f8d..0000000 Binary files a/lib/TwitchLib.Unity.dll and /dev/null differ diff --git a/nuget.config b/nuget.config index 9dbc55e..92ca73e 100644 --- a/nuget.config +++ b/nuget.config @@ -4,4 +4,12 @@ + \ No newline at end of file