helpmeplease45679
@helpmeplease45679
HEEEEEEEEEEEEEEEEEEELP MEEEEEEEEEEEEEEEEEEE

Как сделать чтобы кнопка работала даже после перезапуска бота?

Всем привет пишу такой код:

@bot.slash_command(name="инфо", description="Главная страница для покупок")
@commands.has_permissions(administrator=True)
async def preview(ctx):
    embed = disnake.Embed(
        color=color,
        title="Захотели купить товар?",
        description="Жми на кнопку купить!"
    )

    buy = Button(label="Купить товар", style=disnake.ButtonStyle.green, emoji="")
    info = Button(label="Информация", style=disnake.ButtonStyle.primary, emoji="❓")

    view = View(timeout=None)

    async def on_buy_click(inter):
        buy_embed = disnake.Embed(
            title="Покупка",
            color=color,
            description="Вы уверены? Когда вы нажмете на кнопку купить для вас будет создан отдельный канал для покупки"
        )

        buy_view = View()

        yes = Button(label="Да", style=disnake.ButtonStyle.green, emoji="")
        no = Button(label="Нет", style=disnake.ButtonStyle.red, emoji="")

        async def on_yes_click(interaction):
            pass

        async def on_no_click(interaction):
            await interaction.response.edit_message("Хорошо! Покупка отменена!", embed=None, view=None)

        yes.callback = on_yes_click
        no.callback = on_no_click

        buy_view.add_item(yes)
        buy_view.add_item(no)

        await inter.response.send_message(embed=buy_embed, ephemeral=True, view=buy_view)

    async def on_info_click(inter):
        info_embed = disnake.Embed(
            title="Информация",
            color=color,
            description="# Когда вы нажмете на кнопку купить для вас будет создан отдельный канал для покупки того или"
                        "иного товара, а в нем вы получите больше информации. В любой момент можно отменить покупку."
        )

        await inter.response.send_message(embed=info_embed, ephemeral=True)

    buy.callback = on_buy_click
    info.callback = on_info_click

    view.add_item(buy)
    view.add_item(info)

    await ctx.send(embed=embed, view=view)


И почему-то view = View(timeout=None)
нифига не работает. Подскажите почему?
  • Вопрос задан
  • 463 просмотра
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
При старте бота в событии on_ready нужно регистрировать обработчик.
Официальный пример с комментариями.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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