这与在 Python 3.9 上使用 Pycord 2.4.1 的 Discord 机器人有关。 从这些天开始,它开始响应带有短暂消息的按钮交互,但它不应该这样做。默认行为是“ephemeral=False”,我什至尝试在代码上明确声明这一点。它工作了很长一段时间,而且我这边没有做任何改变,它只是开始表现得像那样。有谁知道这是为什么吗?
示例代码:
@discord.ui.button(label='Accept', emoji='👍', style=discord.ButtonStyle.primary, custom_id='Accept')
async def accept_callback(self, button, inter):
async with lock:
srv = srv_switch(inter)
loc = 'en' if inter.guild.preferred_locale.lower() != 'pt-br' else 'br'
king = self.bot.get_guild(inter.guild.id).get_role(classes[srv]['contests'].get_king_role_id())
chal = self.bot.get_guild(inter.guild.id).get_role(classes[srv]['contests'].get_chal_role_id())
if king in inter.user.roles:
if chal.members:
await inter.response.send_message(strings.text_chal_accept[loc].format(chal.members[0].mention),
view=Victory(self.bot))
else:
await inter.response.send_message(strings.text_chal_issue[loc])
else:
await inter.response.send_message(strings.text_aint_king[loc].format(inter.user.display_name))
pass
单击“接受”按钮后,响应是短暂的。
我尝试在 send_message 函数上明确声明“ephemeral=False”,但无济于事。
花了一段时间,但它开始正常工作,我这边没有任何改变。不知道为什么,不过好像解决了。