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

Discord.js机器人无法触发消息事件求助

问题解决

你的机器人未触发消息事件存在两个核心问题:

1. 事件名称错误

Discord.js v13及以上版本中,消息创建事件的正确名称是messageCreate(小写开头,而非你使用的Message)。旧版v12及更早版本使用message,但新版本已废弃该旧事件名,必须使用messageCreate才能正常触发。

2. 缺少必要的消息监听意图

你当前仅启用了GUILD_MEMBERS(十六进制0x0000000000000008)意图,而监听服务器内消息需要GUILD_MESSAGES意图(对应十六进制0x0000000000000040)。若需要监听私信消息,还需追加DIRECT_MESSAGES(十六进制0x0000000000000800)。

修正后的代码

const Discord = require('discord.js');

// 启用GUILD_MESSAGES意图,如需监听私信可追加 | 0x0000000000000800
const bot = new Discord.Client({
  disableEveryone: false,
  intents: [0x0000000000000040]
});

bot.on('ready', () => {
  console.log('Loaded!');
  bot.user.setActivity('Running a test, hopefully.');
});

// 使用正确的事件名messageCreate
bot.on("messageCreate", (message) => {
  console.log('Message!');
});

bot.login("bot token");

补充说明:如果你的机器人需要使用GUILD_MEMBERS这类特权网关意图,需在Discord开发者门户的机器人页面手动开启对应权限;但GUILD_MESSAGES不属于特权意图,无需额外操作。

内容的提问来源于stack exchange,提问作者Максим Чуб

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 06:36:27