From 0ab39eea981f3d2a4b869f090b4284349ce5dece Mon Sep 17 00:00:00 2001 From: barelyprofessional <150058423+barelyprofessional@users.noreply.github.com> Date: Sun, 23 Mar 2025 19:55:23 +0800 Subject: [PATCH] Disable juicers while Austin is live --- KfChatDotNetBot/Commands/JuiceCommand.cs | 14 +++++++++++++- KfChatDotNetBot/Settings/BuiltIn.cs | 11 +++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/KfChatDotNetBot/Commands/JuiceCommand.cs b/KfChatDotNetBot/Commands/JuiceCommand.cs index c9b4dcd..606db06 100644 --- a/KfChatDotNetBot/Commands/JuiceCommand.cs +++ b/KfChatDotNetBot/Commands/JuiceCommand.cs @@ -21,7 +21,11 @@ public class JuiceCommand : ICommand // Have to attach the entity because it is coming from another DB context // https://stackoverflow.com/questions/52718652/ef-core-sqlite-sqlite-error-19-unique-constraint-failed db.Users.Attach(user); - var juicerSettings = await Helpers.GetMultipleValues([BuiltIn.Keys.JuiceAmount, BuiltIn.Keys.JuiceCooldown, BuiltIn.Keys.JuiceLoserDivision, BuiltIn.Keys.GambaSeshDetectEnabled]); + var juicerSettings = await Helpers.GetMultipleValues([ + BuiltIn.Keys.JuiceAmount, BuiltIn.Keys.JuiceCooldown, BuiltIn.Keys.JuiceLoserDivision, + BuiltIn.Keys.GambaSeshDetectEnabled, BuiltIn.Keys.JuiceAllowedWhileStreaming, + BuiltIn.Keys.TwitchBossmanJackUsername + ]); var cooldown = juicerSettings[BuiltIn.Keys.JuiceCooldown].ToType(); var amount = juicerSettings[BuiltIn.Keys.JuiceAmount].ToType(); if (user.UserRight == UserRight.Loser) amount /= juicerSettings[BuiltIn.Keys.JuiceLoserDivision].ToType(); @@ -31,6 +35,14 @@ public class JuiceCommand : ICommand await botInstance.SendChatMessageAsync("Looks like GambaSesh isn't here. If he is, get him to say something then try again.", true); return; } + + if (!juicerSettings[BuiltIn.Keys.JuiceAllowedWhileStreaming].ToBoolean() && botInstance.BotServices.IsBmjLive) + { + await botInstance.SendChatMessageAsync( + $"No juicers permitted while {juicerSettings[BuiltIn.Keys.TwitchBossmanJackUsername].Value} is live!", true); + return; + } + if (lastJuicer.Count == 0) { await botInstance.SendChatMessageAsync($"!juice {message.Author.Id} {amount}", true); diff --git a/KfChatDotNetBot/Settings/BuiltIn.cs b/KfChatDotNetBot/Settings/BuiltIn.cs index a982f50..d29d326 100644 --- a/KfChatDotNetBot/Settings/BuiltIn.cs +++ b/KfChatDotNetBot/Settings/BuiltIn.cs @@ -920,6 +920,16 @@ public static class BuiltIn IsSecret = false, CacheDuration = TimeSpan.FromHours(1), ValueType = SettingValueType.Boolean + }, + new BuiltInSettingsModel + { + Key = Keys.JuiceAllowedWhileStreaming, + Regex = "(true|false)", + Description = "Whether to allow juicers while Austin is streaming", + Default = "false", + IsSecret = false, + CacheDuration = TimeSpan.FromHours(1), + ValueType = SettingValueType.Boolean } ]; @@ -997,5 +1007,6 @@ public static class BuiltIn public static string BotAlmanacText = "Bot.Almanac.Text"; public static string BotAlmanacInterval = "Bot.Almanac.Interval"; public static string BotAlmanacInitialState = "Bot.Almanac.InitialState"; + public static string JuiceAllowedWhileStreaming = "Juice.AllowedWhileStreaming"; } } \ No newline at end of file