我最近也遇到了这一问题。 问题在于<条码><>丁顿_click> 只有当你重新使用<代码>残疾证书/编码>图书馆时,才会存在。
如果你重新做些什么的话,最好使用<条码>查询<>。
此外,你还希望在时间上发出回复信息。 因此最好使用一类。
class MyButtonView(discord.ui.View):
@discord.ui.button(label="Click to continue!", style=discord.ButtonStyle.primary)
async def mybutton_callback(self, interaction: discord.Interaction, button: discord.ui.Button):
await interaction.response.send_message("You pressed the button!")
@tree.command(name="button", description="testing")
async def button(interaction):
await interaction.response.send_message("Waiting until you press the button!", view=MyButtonView()) # send message with button
这是纽州的基准。
Verifying user
You want to check that the person who clicks the button is also the one who uses the command.
We can achieve this by making our own interaction_check
method in the class.
粉碎解释:MyButton 意见编码>类别继承discord.ui.View
。 类别,有<代码> 交易_check
。 我们通过撰写自己的话,就推翻了这一点。
在这种方法中,只是检查提交人是否是互动使用者。 我们通过提出论点,要求<条码>_init__。
class MyButtonView(discord.ui.View):
def __init__(self, author):
self.author = author
@discord.ui.button(label="Click to continue!", style=discord.ButtonStyle.primary)
async def mybutton_callback(self, interaction: discord.Interaction, button: discord.ui.Button):
await interaction.response.send_message("You pressed the button!")
async def interaction_check(self, interaction: discord.Interaction):
return self.author.id == interaction.user.id
Since MyButtonView
is now expecting the author
argument we have to parse that in when sending the button message.
await interaction.response.send_message("...", view=MyButtonView(interaction.user))
Timeout
我们现在想要它发出信息。 同样,我们采用自己的方法<代码>_timeout。 然而,这没有任何论点,因此我们必须在<条码>内穿透<>/条码>。
class MyButtonView(discord.ui.View):
def __init__(self, interaction):
self.interaction = interaction
@discord.ui.button(label="Click to continue!", style=discord.ButtonStyle.primary)
async def mybutton_callback(self, interaction: discord.Interaction, button: discord.ui.Button):
await interaction.response.send_message("You pressed the button!")
async def interaction_check(self, interaction: discord.Interaction):
return self.interaction.user.id == interaction.user.id
async def on_timeout(self): # No interaction argument
await self.interaction.channel.send("You didn t press the button within the specified time.")
这还取消了对<代码>的的要求。 由于我们可以从<编码>interaction的论点中找到同样的论据。
请注意在<条码>_init、<条码>、>条码>、[自动>、>条码/代码]和丁吨<条码>之间的区别。
Documentation
http://discordpy.reads.io/en/stable/interactions/api.html#discord.ui.Button”rel=“nofollow noreferer”>discord.ui.Button ,
最后说明: 回答如此漫长,希望你能够充分了解你的工作。