繁体   English   中英

discord.py 表情符号中的所有服务器机器人

[英]discord.py emoji all servers bot in

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

使用:

emoji = get(ctx.message.guild.emojis, name='emojinamehere')

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

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

你可以摆脱get的名字发现,只需使用bot.get_emoji() ,其中机器人是你的机器人/客户对象。

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

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

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

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

  • 在文本框输入中输入自定义表情符号
  • 在表情符号前输入\\
  • 发送消息聊天
  • 消息将转换为类似<:emoji_name:emoji_id>

是的,这是尸检,但这可能对任何寻找答案的人都有帮助。

@client.command()
async def emoji(ctx, emojiname):
    for i in client.guilds:
        emoji = discord.utils.get(i.emojis, name=emojiname)

当然,您必须将表情符号的名称作为第一个参数传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM