Discord.js V14中messageCreate事件无法触发的问题求助
解决Discord.js V14 messageCreate事件无法触发的问题
1. 缺少必要的Intents
你的messageCreate事件无法触发,核心原因是未添加消息相关的意图权限。Discord.js V14中,要监听服务器内的消息,必须同时启用以下两个Intents:
GatewayIntentBits.Guilds(你已添加):用于访问服务器相关数据GatewayIntentBits.GuildMessages:用于接收服务器内的消息事件
若需监听私信消息,额外添加GatewayIntentBits.DirectMessages即可。
修正后的客户端初始化代码:
const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages ] });
2. 代码中的语法与逻辑错误
你的代码存在几处错误,会导致运行异常:
- 错误属性调用:
console.log(message.message),message对象无message属性,建议删除此行 - 语法缺失:
message.reply("Hey!."缺少闭合括号,应改为message.reply("Hey!"); - 逻辑错误:
message.mentions.users.first() === client需与client.user(机器人用户实例)比较,而非client本身
修正后的messageCreate事件代码:
client.on("messageCreate", (message) => { console.log("new message...") console.log(message.content) if (message.mentions.users.first() === client.user) { message.reply("Hey!"); } });
3. 额外注意事项
确保你在Discord开发者门户的机器人页面,已开启Message Content Intent(消息内容意图),否则即使代码正确,也无法获取消息内容。
内容的提问来源于stack exchange,提问作者Tyler Mazur
相关产品推荐
相关产品推荐

