как сделать подтверждение бана/мута disnake?

Рейтинг: 0Ответов: 1Опубликовано: 23.02.2023

всем привет. хочу сделать подтверждение бана участника с сервера. есть 2 кнопки - "Подтвердить" и "Отмена" (они уже готовы). id соответствующие - "apply" и "cancel". помоги те ПОЖАЛУЙСТА :)

Ответы

▲ 0

Добавьте в свой discorn.ui ещё один элемент управления:

from disnake import ui
from disnake.ext.commands import Context

class BanConfirmation(View):
    def __init__(self, member):
        super().__init__()
        self.member = member

    @button(label='Подтвердить', style=discord.ButtonStyle.green, custom_id='apply')
    async def apply_button(self, button: discord.Button, interaction: discord.Interaction):
        await interaction.response.defer()
        await self.member.ban()
        await interaction.followup.send(f'{self.member.display_name} был забанен!')

    @button(label='Отмена', style=discord.ButtonStyle.red, custom_id='cancel')
    async def cancel_button(self, button: discord.Button, interaction: discord.Interaction):
        await interaction.response.defer()
        await interaction.followup.send('Бан отменен!')

Ну и соответственно вызов:

@client.command()
async def ban(ctx, member: discord.Member):
    ban_confirmation = BanConfirmation(member)
    await ctx.send(f"Вы уверены, что хотите забанить {member.display_name}?", view=ban_confirmation)