@client.command()
async def button(ctx):
await ctx.message.delete()
await ctx.send(
"Support Tickets",
components = [
Button(label = "General", style=ButtonStyle.red)
]
)
interaction = await client.wait_for("button_click", check = lambda i: i.component.label.startswith("General"))
await interaction.respond(content = "Creating The Ticket...")
我目前有这个代码。我正在尝试制作一个具有多种用途的按钮,但无论出于何种原因,我只能单击一次此按钮,然后它才会显示“此交互失败”消息。有没有办法解决这个问题?
(我知道 discord.py 并不完全支持这一点,但希望有人可以帮助我)
我从一开始的信息来源:https://pypi.org/project/discord-components/
答案 0 :(得分:1)
client.wait_for
只会等待事件第一次发生。如果您希望此按钮始终可按下,那么您可以简单地将它放在一个 while True:
循环中以无限重复它,尽管将您的交互处理程序放在单独的任务中可能更有意义,以便没有多个 wait_for
,而是一个处理所有发送的按钮,而命令只发送新的按钮。