From 1860995db59ae7543ba0e5cecf5caba4ea17bd5b Mon Sep 17 00:00:00 2001 From: West14 <30056636+West14@users.noreply.github.com> Date: Sun, 24 Apr 2022 22:38:09 +0300 Subject: [PATCH] [cm] fix warn overflow, return ban msg when warn limit is reached --- modules/ChatManagement/Handler/Warn.cs | 29 +++++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) 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)]