diff --git a/modules/ChatManagement/Handler/Warn.cs b/modules/ChatManagement/Handler/Warn.cs index 37764ee..0031b21 100644 --- a/modules/ChatManagement/Handler/Warn.cs +++ b/modules/ChatManagement/Handler/Warn.cs @@ -23,21 +23,34 @@ public class Warn : CommonHandler var warnUser = RepliedUser!; var warnOption = await GetWarnOption(warnUser); - var warnCount = warnOption!.GetValue() + 1; - warnOption.SetValue(warnCount); - Db.AddOrUpdate(warnOption); - + var warnCount = warnOption.GetValue() + 1; + await Bot.SendTextMessageAsync(Chat.Id, $"{warnUser.ToHtml()}, Вам выдано предупреждение! " + $"Текущее кол-во: {warnCount}/3", disableNotification: true, parseMode: ParseMode.Html); - if (warnCount == 3) + if (warnCount >= 3) { - await BanMember(warnUser.Id, DateTime.Now.AddDays(7)); - warnOption.SetValue(0); - Db.AddOrUpdate(warnOption); + try + { + await BanMember(warnUser.Id, DateTime.Now.AddDays(7)); + warnCount = 0; + } + catch + { + await Bot.SendTextMessageAsync(Chat.Id, "Нет прав на блокировку пользователя."); + return; + } + + await Bot.SendTextMessageAsync( + Chat.Id, + $"{From.ToHtml()} заблокировал {RepliedUser!.ToHtml()} на 7 дней", + disableNotification: true, parseMode: ParseMode.Html); } + + warnOption.SetValue(warnCount); + Db.AddOrUpdate(warnOption); } [Command("unwarn", CommandParseMode.Both)]