Discord.js v14中client.on("messageCreate")无效,该如何解决?
Discord.js v14 messageCreate事件不触发的解决办法
1. 补充MessageContent意图
Discord.js v14中,要读取消息内容必须同时开启代码内的MessageContent意图,以及Discord开发者门户的对应开关:
- 代码层面修改客户端初始化:
const Discord = require("discord.js"); const client = new Discord.Client({ intents: [ Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.MessageContent // 新增该意图 ] }); - 登录Discord开发者门户,进入你的机器人页面,在"Privileged Gateway Intents"下开启"Message Content Intent"。
2. 确保机器人完成登录
代码末尾必须添加登录语句,否则机器人无法上线接收事件:
// 先添加ready事件确认上线状态 client.on('ready', () => { console.log(`已登录为 ${client.user.tag}`); }); // 最后添加登录令牌 client.login('你的机器人令牌');
3. 修复代码语法错误
你提供的代码存在语法缺失:messageCreate事件的回调函数末尾缺少闭合括号和分号,修正后:
client.on("messageCreate", (message) => { console.log('Doing Stuff'); }); // 补上闭合括号与分号
4. 验证机器人权限
确保机器人在测试服务器中拥有以下权限:
- 查看频道
- 读取消息历史
可以通过编辑机器人角色权限,或重新邀请机器人时勾选对应权限来配置。
内容的提问来源于stack exchange,提问作者Sman
相关产品推荐
相关产品推荐

