From f4f8c332b1b5dc686a8bb3edc6354d4da3b88374 Mon Sep 17 00:00:00 2001 From: barelyprofessional <150058423+barelyprofessional@users.noreply.github.com> Date: Tue, 7 Oct 2025 01:23:08 -0500 Subject: [PATCH] Make frame delay configurable --- .../Commands/KasinoGambaCommands.cs | 19 ++++++++++--------- KfChatDotNetBot/Settings/BuiltIn.cs | 9 +++++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/KfChatDotNetBot/Commands/KasinoGambaCommands.cs b/KfChatDotNetBot/Commands/KasinoGambaCommands.cs index 3d2c86f..13c1a71 100644 --- a/KfChatDotNetBot/Commands/KasinoGambaCommands.cs +++ b/KfChatDotNetBot/Commands/KasinoGambaCommands.cs @@ -157,7 +157,7 @@ public class KenoCommand : ICommand await botInstance.SendChatMessageAsync($"{user.FormatUsername()}, you [color={colors[BuiltIn.Keys.KiwiFarmsGreenColor].Value}]won {await win.FormatKasinoCurrencyAsync()} with a {payoutMulti}x multi![/color]. Your balance is now: {await newBalance.FormatKasinoCurrencyAsync()}.", true); } -private async Task AnimatedDisplayTable(List playerNumbers, List casinoNumbers, List matches, ChatBot botInstance) + private async Task AnimatedDisplayTable(List playerNumbers, List casinoNumbers, List matches, ChatBot botInstance) { var logger = LogManager.GetCurrentClassLogger(); var displayMessage = ""; @@ -184,6 +184,8 @@ private async Task AnimatedDisplayTable(List playerNumbers, List casin if (i > 60) return; await Task.Delay(100); } + + var frameDelay = (await SettingsProvider.GetValueAsync(BuiltIn.Keys.KasinoKenoFrameDelay)).ToType(); //FIRST FRAME 11111111111111111111111111111 for (var frame = 0; frame < 10; frame++) //1 frame per casino number { @@ -213,14 +215,13 @@ private async Task AnimatedDisplayTable(List playerNumbers, List casin displayMessage += "[br]"; } await botInstance.KfClient.EditMessageAsync(msg.ChatMessageId!.Value, displayMessage); - await Task.Delay(500); - if (displayMessage.Length > 79 || !displayMessage.Contains(BlankSpaceDisplay) || - !(displayMessage.Contains(CasinoNumberDisplay) || displayMessage.Contains(MatchRevealDisplay)) && frame != 9) //every board should have blank spaces and casino numbers or matches. player numbers might be hidden by matches - { - logger.Info($"Casino numbers: {string.Join(",", casinoNumbers)} | Player Numbers: {string.Join(",", playerNumbers)} | Matches: {string.Join(",", matches)} | Frame: {frame - 1} | Display Board:"); - logger.Info(displayMessage); - await botInstance.SendChatMessageAsync($"Keno is bugged dewd, died on frame {frame} :bossman:", true); - } + await Task.Delay(frameDelay); + if (displayMessage.Length <= 79 && displayMessage.Contains(BlankSpaceDisplay) && + (displayMessage.Contains(CasinoNumberDisplay) || displayMessage.Contains(MatchRevealDisplay) || + frame == 9)) continue; //every board should have blank spaces and casino numbers or matches. player numbers might be hidden by matches + logger.Info($"Casino numbers: {string.Join(",", casinoNumbers)} | Player Numbers: {string.Join(",", playerNumbers)} | Matches: {string.Join(",", matches)} | Frame: {frame - 1} | Display Board:"); + logger.Info(displayMessage); + await botInstance.SendChatMessageAsync($"Keno is bugged dewd, died on frame {frame} :bossman:", true); } } diff --git a/KfChatDotNetBot/Settings/BuiltIn.cs b/KfChatDotNetBot/Settings/BuiltIn.cs index 19816c6..0f9a337 100644 --- a/KfChatDotNetBot/Settings/BuiltIn.cs +++ b/KfChatDotNetBot/Settings/BuiltIn.cs @@ -1083,6 +1083,14 @@ public static class BuiltIn Description = "Object containing details of Bossman's last sighting", Default = "{\n \"When\": \"2025-10-03T01:20:00-04:00\",\n \"Activity\": \"going to jail\"\n}", ValueType = SettingValueType.Complex + }, + new BuiltInSettingsModel + { + Key = Keys.KasinoKenoFrameDelay, + Description = "Delay in milliseconds between each frame on the keno board", + Default = "250", + ValueType = SettingValueType.Text, + Regex = WholeNumberRegex } ]; @@ -1208,5 +1216,6 @@ public static class BuiltIn public static string CaptureStreamlinkBmjWorkingDirectory = "Bot.Streamlink.BmjWorkingDirectory"; public static string DiscordOnlySendSummariesIncludingBmj = "Discord.OnlySendSummariesIncludingBmj"; public static string BossmanLastSighting = "Bot.BossmanLastSighting"; + public static string KasinoKenoFrameDelay = "Kasino.Keno.FrameDelay"; } } \ No newline at end of file