From 66fe5cb4fb0174928f151f72ac1f21e27b40fafa Mon Sep 17 00:00:00 2001 From: Andriy <30056636+West14@users.noreply.github.com> Date: Wed, 18 Jan 2023 16:29:18 +0200 Subject: [PATCH] [entertainment] cleanup callbackquery handler, show guessed number --- modules/Entertainment/Handler/Guess.cs | 28 ++++++++++++-------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/modules/Entertainment/Handler/Guess.cs b/modules/Entertainment/Handler/Guess.cs index 63e265f..1282855 100644 --- a/modules/Entertainment/Handler/Guess.cs +++ b/modules/Entertainment/Handler/Guess.cs @@ -81,29 +81,27 @@ public class Guess : CommonHandler [Update(InChat.Public, UpdateFlag.CallbackQuery)] public async Task HandleGuessResponse() { - // TODO: i know, there is a lot things to improve... - var guessDict = _guessCache.GetOr(Chat.Id, new ConcurrentDictionary()); var messageId = CallbackQuery.Message?.MessageId; - - if (messageId == null - || CallbackQuery.Data == null - || !guessDict.TryGetValue((int) messageId, out var data)) + if (messageId == null || CallbackQuery.Data == null) { return; } - + var fromUser = CallbackQuery.From; var fromId = fromUser.Id; var callbackData = CallbackQuery.Data.Split('|'); - if (fromId != data.UserId || callbackData.Length < 4) + if (callbackData.Length < 4 + || callbackData[0] != "guess" + || callbackData[1] != fromId.ToString() + || callbackData[2] != "answer") { return; } - if (callbackData[0] != "guess" - || callbackData[1] != fromId.ToString() - || callbackData[2] != "answer") + var guessDict = _guessCache.GetOr(Chat.Id, new ConcurrentDictionary()); + if (!guessDict.TryGetValue((int) messageId, out var data) + || fromId != data.UserId) { return; } @@ -129,14 +127,14 @@ public class Guess : CommonHandler } else { - message = $"{fromUser.ToHtml()} не угадал!"; + message = $"{fromUser.ToHtml()} не угадал!\nЗагаданное число: {data.Number}."; } - await Bot.EditMessageTextAsync(Chat, (int) messageId, message + postFix, parseMode: ParseMode.Html); - var cooldownOption = await _db.UserValues.FindOrCreateOption(Chat.Id, From.Id, "guessCooldown"); cooldownOption.SetValue(nextUse); - + _db.AddOrUpdate(cooldownOption); + + await Bot.EditMessageTextAsync(Chat, (int) messageId, message + postFix, parseMode: ParseMode.Html); } } \ No newline at end of file