Как вызвать функцию при нажатии на кнопку в discord?
Я пытаюсь сделать так что бы при нажатии на кнопку выполнялась другая, уже готовая функция. К примеру если нажать на кнопку 1 - сработает функция Hi. Как её вызвать?
@client.command()
async def Hi(ctx):
await ctx.send('Hi')
@client.command(pass_context = True)
async def test(ctx):
await ctx.send(
embed=discord.Embed(title="все возможные пути"),
components=[
Button(style=ButtonStyle.green, label="1")
]
)
response = await client.wait_for("button_click")
if response.channel == ctx.channel:
#---------------------#
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
Все действия, которые должны вызываться при помощи команды, нажатия кнопки или просто из кода лучше выносить в отдельную асинхронную функцию:
Тогда можно будет просто вызывать их из функций команды и кнопки:
async def _Hi(ctx):
. . .
@client.command()
async def Hi(ctx):
await _Hi(ctx)
# и при помощи кнопки тоже самое
@client.command()
async def . . .(ctx):
response = await client.wait_for("button_click")
if response.channel == ctx.channel:
await _Hi(ctx)