Discord.js Bot异常:Ping命令与状态设置失效求助
Discord.js Bot无响应、状态设置失效问题修复方案
你的代码存在两个核心问题,导致Ping命令无响应、状态不生效:
1. 废弃的事件监听
Discord.js v14及以上版本已移除message事件,改用messageCreate事件监听消息。原代码里的client.on('message', ...)不会触发任何逻辑,所以消息内容无法打印、Ping命令也没反应。
2. 状态设置参数格式错误
v14中setPresence的参数结构发生了变化:
- 活动字段从
activity改为activities - 活动内容需要以数组形式传入
修复后的完整代码
const { Client, GatewayIntentBits } = require('discord.js'); const dotenv = require('dotenv'); dotenv.config(); const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers, ], }); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}`); client.user.setPresence({ activities: [ { name: 'with Discord.js' } ], status: 'online' }); }); client.on('messageCreate', message => { console.log(message.content); if (message.content === 'ping') { message.channel.send('pong'); } }); client.login(process.env.DISCORD_TOKEN);
内容的提问来源于stack exchange,提问作者cdnAshton
相关产品推荐
相关产品推荐

