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

Discord Bot可加载但命令无响应问题排查求助

Discord.js v14 命令无响应问题解决

你的问题主要来自三个核心点,对应修改后即可解决命令无响应的情况:

1. 废弃的message事件

Discord.js v14 已移除message事件,取而代之的是messageCreate事件,原事件不会再触发任何逻辑。

2. 缺少MessageContent网关意图

要读取消息内容,必须添加MessageContent意图,同时还要在Discord开发者后台开启对应的特权网关意图:

  • 打开Discord开发者门户,进入你的Bot应用
  • 切换到"Bot"标签页,找到"Privileged Gateway Intents"区域
  • 开启"Message Content Intent"开关并保存

3. 修改后的完整代码

const { Client, GatewayIntentBits } = require('discord.js');

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent, // 新增读取消息内容的必要意图
  ],
});

const token = "REDACTED";
const prefix = '!';

client.once('ready', () => {
  console.log('Bot is online!')
  client.user.setActivity('Among Us');
});

// 替换为v14支持的messageCreate事件
client.on('messageCreate', message => {
  // 排除Bot自身消息,避免循环触发
  if (message.author.bot) return;
  
  if (message.content === prefix + 'ping') {
    message.channel.send('Loading data').then(async(msg) => {
      msg.delete()
      message.channel.send(`Latency is ${msg.createdTimestamp - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`);
    })
  }
});

client.login(token);

额外检查项

  • 确保Bot在服务器内拥有读取消息历史和发送消息的权限
  • 确认发送命令时使用的前缀与代码中prefix完全一致(注意空格或符号错误)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:36:30