如何在Discord.js中使用Application Emoji?调用返回undefined
在Discord.js中调用应用表情的正确方法
你使用client.emojis.cache.get('EMOJI_ID')返回undefined的原因是:应用表情不属于全局表情缓存池,而是绑定在你的应用自身资源下,不能通过全局表情缓存获取。
下面是两种可行的调用方式:
直接拼接表情格式发送
无需提前获取表情对象,直接用<:表情名称:表情ID>的格式嵌入消息内容即可发送,示例代码:// 替换成你的表情名和ID message.channel.send('测试应用表情:<:CustomEmoji:123456789012345678>');通过应用表情缓存获取对象
在Discord.js v14及以上版本中,应用表情会被存在client.application.emojis.cache中,你可以通过ID获取,示例代码:const emoji = client.application.emojis.cache.get('EMOJI_ID'); if (emoji) { message.channel.send(`成功获取表情:${emoji}`); } else { console.error('未找到指定的应用表情,请检查ID是否正确'); }
注意事项:
- 确保使用的Discord.js版本为v14+,旧版本的API结构不支持这种获取方式
- 表情ID必须准确无误,避免输入多余字符
- 应用表情默认对自身绑定的机器人开放使用,无需额外权限
内容的提问来源于stack exchange,提问作者Ben Walker
相关产品推荐
相关产品推荐

