我有一个机器人,它发送嵌入的表情,包括特定于每个嵌入的表情,它在我上传表情的测试服务器上运行得很好,但它们不会在其他服务器上显示,因为这些服务器没有自定义的表情。
使用:
emoji = get(ctx.message.guild.emojis, name='emojinamehere')当然对它所在的服务器有效,但是有没有办法从机器人所在的任何服务器获取和使用所有的表情符号呢?
发布于 2020-03-15 18:20:03
因为你是专门使用ctx.message.guild.emojis的,所以你试图从上下文协会(他们可能没有)获取表情符号。
您可以摆脱按名称查找get,而只使用bot.get_emoji(),其中bot是您的bot/client对象。
你的机器人将存储所有公会的所有表情符号在内部缓存中,get_emoji()将从那里检索它,因此它将适用于所有公会。
你将需要表情ID (整数)来做这件事,而不是你目前得到的名字。您可以通过名称获取,然后获取其ID,但这只是不必要的步骤。
只使用emoji ID,因为它们是唯一的,不能改变(名字可以重复,也可以改变,这样你就会遇到名字的问题)。
您可以通过不一致客户端app快速获取emoji ID:
\ <:emoji_name:emoji_id>的内容
发布于 2021-07-08 16:09:36
是的,这是尸检,但这可能会对任何寻找答案的人有所帮助。
@client.command()
async def emoji(ctx, emojiname):
for i in client.guilds:
emoji = discord.utils.get(i.emojis, name=emojiname)当然,你必须传递表情符号的名字作为第一个参数。
https://stackoverflow.com/questions/60686677
复制相似问题