Discord.py emoji 所有服务器机器人

dar*_*one 4 python discord discord.py

我有一个发送嵌入内容的机器人,其中包含每个嵌入特定的表情符号,它在我上传表情符号的测试服务器上运行良好,但它们不会显示在其他服务器上,因为这些服务器没有自定义表情符号。

使用:

emoji = get(ctx.message.guild.emojis, name='emojinamehere')
Run Code Online (Sandbox Code Playgroud)

当然适用于它所在的服务器,但是有没有办法从机器人所在的任何服务器获取和使用所有表情符号?

Bra*_*ead 5

因为您专门使用ctx.message.guild.emojisaka 您试图从上下文公会获取表情符号(可能没有)。

您可以摆脱get按名称查找,只需使用bot.get_emoji(),其中 bot 是您的机器人/客户端对象。

您的机器人会将所有公会的所有表情符号存储在内部缓存中,并get_emoji()从那里检索它,以便它适用于所有公会。

您将需要表情符号 ID(整数)来执行此操作,而不是您当前获得的名称。您可以通过名称获取,然后获取其 ID,但这只是不必要的步骤。

只需使用表情符号 ID,因为它们是唯一的且无法更改(名称可以重复且可以更改,因此您可能会遇到按名称获取问题)。

您可以使用Discord客户端应用程序快速获取表情符号ID:

  • 在文本框中输入自定义表情符号
  • \在表情符号之前输入
  • 发送消息进行聊天
  • 消息会变成类似的东西<:emoji_name:emoji_id>