@IIIpaklevka

Как отключить кнопки?

Привет-привет!

Я хочу добавить кнопки под сообщениями моего бота так, чтобы после нажатия они деактивировались!
Я сделал всё согласно документации button.disabled = True однако это не работает :_(
Помогите пожалуйста! Буду сильно благодарен <3

jscShqN.png

UiuZuLJ.png

Кусочек кода:
class Buttons(disnake.ui.View):
    def __init__(self, *, timeout=180):
        super().__init__(timeout=timeout)
    @disnake.ui.button(label="",style=disnake.ButtonStyle.green)
    async def great_button(self,button:disnake.ui.Button,interaction:disnake.Interaction):
        button.disabled=True
        await interaction.response.send_message(content=f"Спасибо за ваш отзыв!", delete_after=5)
        requests.get("айпи сервера")
    @disnake.ui.button(label="", style=disnake.ButtonStyle.red)
    async def bad_button(self, button:disnake.ui.Button,interaction:disnake.Interaction):
        button.disabled = True
        await interaction.response.send_message(content=f"Спасибо за ваш отзыв!", delete_after=5)
        requests.get("айпи сервера")
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Чтобы кнопка изменилась необходимо отредактировать сообщение с ними.
Для этого есть метод Interaction.edit_original_message, куда нужно передать view с обновленными кнопками

В документации дан пример, где выполняется схожая логика и все снабжено комментариями
@disnake.ui.button(label="Disable the view", style=disnake.ButtonStyle.grey)
async def disable_button(self, button: disnake.ui.Button, inter: disnake.MessageInteraction):
    # We disable every single component in this view
    for child in self.children:
        if isinstance(child, disnake.ui.Button):
            child.disabled = True
    # make sure to update the message with the new buttons
    await inter.response.edit_message(view=self)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы