python - discord.py emoji 所有服务器机器人
问题描述
我有一个机器人,它发送包含特定于每个嵌入的表情符号的嵌入,它在我上传表情符号的测试服务器上运行良好,但它们不会出现在其他服务器上,因为这些服务器没有自定义表情符号。
使用:
emoji = get(ctx.message.guild.emojis, name='emojinamehere')
当然适用于它所在的服务器,但有没有办法从机器人所在的任何服务器获取和使用所有表情符号?
解决方案
因为您专门使用ctx.message.guild.emojis
aka 您正试图从上下文行会(可能没有它)中获取表情符号。
您可以摆脱get
按名称查找,只需使用bot.get_emoji(),其中 bot 是您的机器人/客户端对象。
您的机器人会将来自所有公会的所有表情符号存储在内部缓存中,并get_emoji()
从那里检索它,以便它适用于所有公会。
您将需要表情符号 ID(整数)来执行此操作,而不是您当前获得的名称。您可以按名称获取,然后获取其 ID,但这只是不必要的步骤。
只需使用表情符号 ID,因为它们是唯一的且无法更改(名称既可以重复也可以更改,因此您可能会遇到按名称获取的问题)。
您可以使用 Discord 客户端应用快速获取 emoji ID:
- 在文本框输入中输入自定义表情符号
\
在表情符号之前输入- 发送消息聊天
- 消息会变成类似的东西
<:emoji_name:emoji_id>
推荐阅读
- api - 实现 Streaming Cloud Dataflow 转换,为流中的每个元素调用 API
- google-sheets - 如何过滤谷歌表格数据透视表上的字符长度
- java - UDP 程序丢包追踪
- javascript - 未捕获的类型错误:无法读取未定义的属性“insertRow”
- node.js - 与从 Bluehost NodeJS 服务器本地托管的 NodeJS 服务器通信的最佳实践?
- javascript - 我们如何忽略 cy.route() 请求发送中的 openHash 值
- lua - GLua - 字符串库的一部分
- excel - VBA:复制前 20 行过滤数据失败
- python - 处理 github.GithubException.GithubException: 错误
- swiftui - SwiftUI:ContextMenu 翻转错误?