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() where bot is your bot/client 对象。
您的机器人会将来自所有公会的所有表情符号存储在内部缓存中,get_emoji()
将从那里检索它,以便它适用于所有公会。
您需要表情符号 ID(整数)才能执行此操作,而不是您当前获得的名称。您可以通过名称获取然后获取其 ID,但这只是不必要的步骤。
只需使用表情符号 ID,因为它们是唯一的且无法更改(名称既可以重复也可以更改,因此您可能会遇到命名问题)。
您可以使用 Discord 客户端应用程序快速获取表情符号 ID:
- 在文本框输入中输入自定义表情符号
- 在表情符号前输入
\
- 发送消息聊天
- 消息会变成类似
<:emoji_name:emoji_id>
的东西
是的,这是 necroposting,但这可能对寻找答案的任何人有所帮助。
@client.command()
async def emoji(ctx, emojiname):
for i in client.guilds:
emoji = discord.utils.get(i.emojis, name=emojiname)
当然你必须将表情符号的名称作为第一个参数传递。
我有一个机器人发送嵌入,其中包含特定于每个嵌入的表情符号,它在我上传表情符号的测试服务器上运行良好,但它们不会出现在其他服务器上,因为这些服务器没有自定义表情符号。
使用:
emoji = get(ctx.message.guild.emojis, name='emojinamehere')
当然适用于它所在的服务器,但是有没有办法从机器人所在的任何服务器获取和使用所有表情符号?
因为您专门使用 ctx.message.guild.emojis
也就是您试图从上下文公会(可能没有)获取表情符号。
您可以摆脱 get
按名称查找而只使用 bot.get_emoji() where bot is your bot/client 对象。
您的机器人会将来自所有公会的所有表情符号存储在内部缓存中,get_emoji()
将从那里检索它,以便它适用于所有公会。
您需要表情符号 ID(整数)才能执行此操作,而不是您当前获得的名称。您可以通过名称获取然后获取其 ID,但这只是不必要的步骤。
只需使用表情符号 ID,因为它们是唯一的且无法更改(名称既可以重复也可以更改,因此您可能会遇到命名问题)。
您可以使用 Discord 客户端应用程序快速获取表情符号 ID:
- 在文本框输入中输入自定义表情符号
- 在表情符号前输入
\
- 发送消息聊天
- 消息会变成类似
<:emoji_name:emoji_id>
的东西
是的,这是 necroposting,但这可能对寻找答案的任何人有所帮助。
@client.command()
async def emoji(ctx, emojiname):
for i in client.guilds:
emoji = discord.utils.get(i.emojis, name=emojiname)
当然你必须将表情符号的名称作为第一个参数传递。