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