using System; using System.Threading.Tasks; using BotFramework; using BotFramework.Attributes; using BotFramework.Enums; using Kruzya.TelegramBot.Core.Data; using Kruzya.TelegramBot.Core.Extensions; using Telegram.Bot; using Telegram.Bot.Types; using Telegram.Bot.Types.Enums; namespace West.TelegramBot.ChatManagement.Handler { public class Command : BotEventHandler { private CoreContext _db; public Command(CoreContext db) { _db = db; } [Command("warn", CommandParseMode.Both)] public async Task HandleWarn() { var callerMember = await Bot.GetChatMemberAsync(Chat, From.Id); var canUse = callerMember is ChatMemberOwner; if (callerMember is ChatMemberAdministrator callerAdmin) { canUse = callerAdmin.CanRestrictMembers; } if (canUse) { var userValues = _db.UserValues; var warnUser = RawUpdate.Message.ReplyToMessage.From; var warnUserId = warnUser.Id; var warnOption = await userValues.FindOrCreateOption(Chat.Id, warnUserId, "warnCount"); var warnCount = warnOption.GetValue() + 1; warnOption.SetValue(warnCount); _db.MarkAsModified(warnOption); await Bot.SendTextMessageAsync(Chat.Id, $"{warnUser.ToHtml()}
, Вам выдано предупреждение! " +
                                                        $"Текущее кол-во: {warnCount} / 3заблокировал
{warnUser.ToHtml()}
на 7 дней
", disableNotification: true, parseMode: ParseMode.Html); } } } } }