Discord.js v13机器人跨服务器调取emoji时显示undefined问题
问题根因
client.emojis.cache.get() 方法仅接收纯数字的表情ID作为入参,你传入了完整的emoji格式化字符串<:money:914429973593468938>,缓存中不存在对应键值,因此返回undefined。
修复方案
两种方案任选其一即可:
- 方案1:传入纯ID获取表情对象后渲染
const emoji = client.emojis.cache.get("914429973593468938") message.reply(`${emoji}`)
- 方案2:无需拉取表情对象,直接使用完整emoji字符串发送
message.reply(`<:money:914429973593468938>`)
额外注意事项
- 确认机器人已经加入了该表情所属的服务器,否则无法拉取到对应表情
- 若要在非表情所属的服务器发送该表情,需要给机器人开启目标频道的
使用外部表情权限,否则表情会显示为不可用的文本标签
内容的提问来源于stack exchange,提问作者XZen
相关产品推荐
相关产品推荐

