Задать вопрос
@Nikitonz
начинающий прогер в сфере бэкэнда

Ошибка взаимодействия при нажатии на кнопку. Где я ошибся?

class minigames(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @disnake.ui.button(label="b1", style=disnake.ButtonStyle.green, custom_id="test1")
    async def button_callback(self, interaction:disnake.Interaction, button: disnake.ui.Button):
        await interaction.response.defer()
        await interaction.send("clicked!")


    @commands.command(name="test")
    async def test(self, inter: disnake.MessageInteraction):
        view = disnake.ui.View()
        view.add_item(disnake.ui.Button(label="Button 1", custom_id="test1"))
        msg = await inter.send(content="1", view=view)


в данном фрагменте кода необходимо создать кнопку и привязать ей действия внутри класса. Команда !test эту кнопку должно отобразить, а нажатие на неё должно быть обработано, и выведено clicked! (debug purposes)

Как можно заметить, работа идет внутри кога, так что использовать @commands, вместо @bot?
Ошибок программа не выдаёт
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
i229194964
@i229194964
Веб разработчик
import disnake
from disnake.ext import commands

class Minigames(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @disnake.ui.button(label="b1", style=disnake.ButtonStyle.green, custom_id="test1")
    async def button_callback(self, interaction: disnake.Interaction, button: disnake.ui.Button):
        await interaction.response.defer()
        await interaction.send("clicked!")

    @commands.command(name="test")
    async def test(self, ctx: disnake.MessageInteraction):
        view = disnake.ui.View()
        view.add_item(disnake.ui.Button(label="Button 1", custom_id="test1"))
        msg = await ctx.send(content="1", view=view)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы