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

discord.js v13机器人无法检测消息问题求助

解决discord.js v13机器人无法检测消息的问题

嘿,我正好碰到过类似的问题,这就帮你捋清楚问题出在哪:

问题1:废弃的事件名称

在discord.js v13版本中,原来的message事件已经被废弃,官方替换成了messageCreate事件。你代码里用的client.on("message", ...)根本不会被触发,这就是为什么连console.log都没反应的核心原因之一。

问题2:缺少必要的Intents(意图)

你的机器人只启用了GUILDS意图,但要读取和处理服务器内的消息,还需要添加两个关键意图:

  • GUILD_MESSAGES:用于获取服务器内的消息事件
  • MESSAGE_CONTENT:从discord.js v13.1版本开始,读取消息内容需要这个特权意图,必须额外授权

修改后的完整代码

import { Client, Intents } from 'discord.js';
const client = new Client({ 
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES, // 添加服务器消息监听意图
    Intents.FLAGS.MESSAGE_CONTENT // 添加读取消息内容的特权意图
  ] 
});

client.once('ready', () => {
  console.log('Ready!');
});

// 替换为v13要求的messageCreate事件
client.on("messageCreate", async msg => {
  if (msg.content === "ping") {
    console.log("ping");
    msg.reply("pong");
  }
});

client.login(token);

最后关键一步:开启特权意图

别忘了去Discord开发者门户的机器人页面,找到Privileged Gateway Intents板块,把MESSAGE CONTENT INTENT的开关打开,然后重启机器人——不然即使代码改对了,也还是读不到消息内容哦。

内容的提问来源于stack exchange,提问作者WORDrc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 09:07:28