using System.Threading.Tasks; using Telegram.Bot; using Telegram.Bot.Types; namespace West.TelegramBot.ChatManagement.Extensions { public static class BotExtension { public static async Task CanPunishMember(this ITelegramBotClient bot, Chat chat, User user, User victim = null) { var callerMember = await bot.GetChatMemberAsync(chat, user.Id); var canUse = callerMember is ChatMemberOwner; if (callerMember is ChatMemberAdministrator callerAdmin) { canUse = callerAdmin.CanRestrictMembers; } if (victim != null && canUse) { var victimMember = await bot.GetChatMemberAsync(chat, victim.Id); canUse = victimMember is not ChatMemberOwner && victimMember is not ChatMemberAdministrator; } return canUse; } } }