Discord.js v14.7.1启动机器人遇DiscordAPIError[50035]报错求助
解决Discord.js v14.7.1中DiscordAPIError[50035]的问题
错误原因
你的命令处理器代码里,向commandArray推送元素时存在逻辑错误:
commandArray.push(command, command.data.toJSON());
这行代码会同时把完整的命令对象和命令的JSON结构化数据加入数组,导致commandArray里出现两个元素:
- 第一个元素是包含
execute方法的完整命令对象,不符合Discord命令注册的格式要求 - 第二个元素才是Discord API需要的正确命令结构
Discord API解析数组第一个元素时,发现它缺少必填的name字段,因此抛出0.name[BASE_TYPE_REQUIRED]错误。
修复步骤
修改命令处理器中的推送逻辑,仅将命令的JSON结构化数据加入commandArray:
// 替换原有的push代码 commandArray.push(command.data.toJSON());
额外检查项
- 确保代码顶部已引入
fs模块,否则fs.readdirSync会报错:
const fs = require('fs');
- 确认
client对象上的commands(需为Collection类型)和commandArray(需为空数组)已正确初始化。
内容的提问来源于stack exchange,提问作者deBBuu
相关产品推荐
相关产品推荐

