制作Discord机器人执行node .报CLIENT_MISSING_INTENTS错误如何解决?
错误诱因
- 代码存在重复声明
client变量的问题:第一次你已经正确声明了传入intents参数的Client实例,后续新增的const client = new Discord.Client()直接覆盖了之前的正确实例 - discord.js v13及以上版本强制要求初始化Client实例时必须传入合法的网关意图配置,第二次实例化Client时没有传入任何intents参数,直接触发了该报错
- 额外隐藏问题:你开头只解构引入了
Client和Intents,没有引入Discord命名空间,第二次实例化的Discord.Client本身也会触发未定义报错,属于完全冗余的错误代码
修复方案
直接删除冗余的重复实例化代码行const client = new Discord.Client();即可,修改后完整可运行代码如下:
const { Client, Intents } = require('discord.js'); // 仅保留第一次正确配置intents的实例化代码 const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); client.once('ready', () => { console.log('Better Call Saul!'); }); client.login('你的机器人令牌');
补充注意:如果你使用的是discord.js v14及以上版本,Intents的调用方式需要调整为GatewayIntentBits,引入方式修改为const { Client, GatewayIntentBits } = require('discord.js'),intents参数对应改为[GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages]即可
内容的提问来源于stack exchange,提问作者Reichy
相关产品推荐
相关产品推荐

