using BotFramework.Attributes; using BotFramework.Enums; using System.Threading.Tasks; using System; using Kruzya.TelegramBot.Core; using Kruzya.TelegramBot.Core.Data; using Kruzya.TelegramBot.Core.Extensions; using Kruzya.TelegramBot.Core.Service; namespace West.Entertainment.Handler; public class Roll : CommonHandler { private readonly IReputation _reputation; [Command(InChat.Public, "roll", CommandParseMode.Both)] public async Task HandleRoll() { var cdOption = await Db.UserValues.FindOrCreateOption(Chat.Id, From.Id, "rollNextUse"); var cd = cdOption.GetValue(); if (cd > DateTime.Now) { await Reply($"Следующее использование через {cd - DateTime.Now:hh\\:mm\\:ss}."); return; } var newRep = new Random().Next(-50, 50); await Reply($"Вы получили {newRep} кармы."); await _reputation.IncrementReputationAsync(Chat, From, newRep); cdOption.SetValue(DateTime.Now.AddDays(1)); Db.AddOrUpdate(cdOption); } public Roll(CoreContext db, IReputation reputation) : base(db) { _reputation = reputation; } }