You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js角色反应机器人自定义表情报错:Client undefined

解决Discord.js角色反应机器人的"client undefined"错误

嘿,我来帮你搞定这个自定义表情反应的问题!你遇到的client undefined报错,核心原因要么是当前代码作用域里找不到client变量,要么是你用的Discord.js版本和代码写法不匹配,下面一步步给你解决:

1. 修复client的作用域问题

从你的代码片段来看,这段逻辑应该是在message事件的回调里(毕竟用到了message.react),这种情况下你不需要直接用client变量——很多时候client可能不在当前函数的作用域里,比如嵌套在某个子回调里时外层变量没传递进来。你可以直接通过message.client来访问客户端实例,这是最稳妥的方式。

2. 适配Discord.js版本(关键细节!)

如果你的Discord.js是v12及以上的版本,emojis.get()这个旧方法已经被移除了,取而代之的是emojis.cache.get()——因为从v12开始Discord.js引入了缓存管理器,所有的资源都需要从缓存里获取。

修正后的代码示例

把你出错的那行代码改成这样,顺便加上错误捕获方便排查问题:

case "react":
  // 原生表情正常运行
  message.react("😐").then(reaction => console.log(typeof reaction));
  // 修正后的自定义表情反应代码
  message.react(message.client.emojis.cache.get("410431571083132933"))
    .then(reaction => console.log(typeof reaction))
    .catch(err => console.error("添加自定义表情失败:", err));

额外排查小提示

  • 确保你的机器人在自定义表情所在的服务器里,并且有权限使用该表情
  • 再核对一遍表情ID,别打错字符哦

内容的提问来源于stack exchange,提问作者Day Ham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:27:59