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
相关产品推荐
相关产品推荐

