Отслеживание нажатия кнопок discord.py
Делаю кнопки у сообщения дискорд. Моя задача сделать обработчик кнопок таким образом, что б срабатывал даже при перезапуске бота.
Сейчас мне удалось сделать вывод и обработку кнопки в рамках одной функции. Это работает так:
import discord
from discord.ext import commands
from discord.ui import Button, View
intents = discord.Intents.all()
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.command()
async def test(ctx):
button1 = Button(label='Click', style=discord.ButtonStyle.green, emoji='?')
button2 = Button(label='Click2', style=discord.ButtonStyle.danger)
async def button_callback(interaction):
await interaction.response.send_message('Hi!', ephemeral=True)
button1.callback = button_callback
view = View()
view.add_item(button1)
view.add_item(button2)
await ctx.send('Hi', view=view)
await bot.wait_for("button_click")
Здесь сообщение выводит кнопки и при нажатии на кнопку происходит действие.
Я бы хотел сделать создание кнопок у команды, но обработку в отдельной функции. на просторах интернета нашел это, но функция вообще не работает:
@bot.event
async def on_button_click(interaction):
print("asd")
Нашел даже что к параметрам кнопки можно добавить custom_id. Но как обработать найти не смог(
Ответы (1 шт):
Автор решения: Alexey V
→ Ссылка
При обработке interaction можно взять interaction.data и там указывается custom_id