Discord机器人无法响应消息问题求助(附排查项及代码)
Discord机器人无法响应消息的解决方案
你的代码存在两个关键问题,导致机器人无法响应消息:
1. 事件名称错误
discord.js v14及以上版本已将消息事件从message更改为messageCreate,原事件名称已被废弃,无法触发。
2. 缺少消息内容读取权限
你需要添加MessageContent意图,并且在Discord开发者门户中开启消息内容特权意图,否则机器人无法读取消息内容。
修改后的代码
const Discord = require('discord.js'); const bot = new Discord.Client({ intents: [ Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.DirectMessages, Discord.GatewayIntentBits.MessageContent // 新增消息内容意图 ] }); const token = '<token>'; // 注意用引号包裹token bot.on('ready', () => { console.log('ts ready gangy :3'); }) // 将message事件改为messageCreate bot.on('messageCreate', msg => { if(msg.content === "hi"){ msg.reply('hi'); } }) bot.login(token);
额外设置步骤
- 登录Discord开发者门户,找到你的机器人应用
- 进入
Bot页面,下滑到Privileged Gateway Intents区域 - 开启
Message Content Intent开关 - 保存设置后重启机器人
完成以上修改和设置后,机器人就能正常响应“hi”消息了。
内容的提问来源于stack exchange,提问作者etterna
相关产品推荐
相关产品推荐

