首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >discord.py表情符号所有服务器机器人

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

Stack Overflow用户
提问于 2020-03-15 03:45:19
回答 2查看 14.5K关注 0票数 4

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

使用:

代码语言:javascript
复制
emoji = get(ctx.message.guild.emojis, name='emojinamehere')

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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>

的内容

票数 1
EN

Stack Overflow用户

发布于 2021-07-08 16:09:36

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

代码语言:javascript
复制
@client.command()
async def emoji(ctx, emojiname):
    for i in client.guilds:
        emoji = discord.utils.get(i.emojis, name=emojiname)

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60686677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档