Discord机器人启动后无法响应命令问题求助
问题分析与修复方案
代码核心问题:
- Client初始化语法错误:
partials配置被错误地单独写在构造函数外,根本没有生效,正确写法是把intents和partials放在同一个配置对象里传入。 - 事件监听错误:
- 使用
once('message')只会触发一次事件,之后不再监听消息,应该用on持续监听。 - 最新版discord.js(v14+)已废弃
message事件,改用messageCreate事件,原事件不会触发,这是命令无响应的关键原因。
- 使用
修正后的完整代码:
const Discord = require("discord.js"); // 合并intents和partials到同一配置对象 const client = new Discord.Client({ intents: 32767, // 开发环境可启用所有意图,生产建议按需开启 partials: ['MESSAGE', 'CHANNEL', 'REACTION', 'USER', 'GUILD_MEMBER'] }); client.on('ready', () => { console.log('Estoy ON') client.user.setActivity('Ark Survival Evolved', { type: "PLAYING"}); }); // 改用messageCreate事件,用on持续监听 client.on('messageCreate', (message) => { // 排除机器人自身消息,避免循环触发 if (message.author.bot) return; if(message.content.startsWith('ping')) { message.channel.send(`pong 🏓!!`); } }); client.login('MY TOKEN');
额外检查项:
- 登录Discord开发者门户,在Bot页面开启消息内容意图(Message Content Intent),保存后重启机器人。
- 确保机器人邀请到服务器时,拥有发送消息和读取消息历史的权限。
内容的提问来源于stack exchange,提问作者Alxxpm
相关产品推荐
相关产品推荐

