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

使用discord.js开发的Discord Bot无报错却不响应命令该如何排查?

问题原因及修复方案

现有代码的3个核心错误:

  • 事件名已废弃:discord.js v13及以上版本移除了message事件,替换为messageCreate事件,原事件监听完全不会触发,这是调试日志无输出的核心原因。
  • 变量名不匹配:事件回调参数命名为Message,但判断逻辑里调用的是未定义的msg变量,即使事件触发也会抛出引用错误。
  • 意图配置不全:仅配置了值为8的Guilds意图,接收服务器消息内容还需要补充GuildMessages、MessageContent两个意图;同时你需要登录Discord开发者平台,进入对应Bot的设置页,手动开启Message Content Intent权限开关,否则代码层面加了意图也无法获取消息内容。

修正后的代码:

const Discord = require("discord.js")
const fetch = require("node-fetch")
// 配置所需的全部意图
const client = new Discord.Client({ intents: [
  Discord.GatewayIntentBits.Guilds,
  Discord.GatewayIntentBits.GuildMessages,
  Discord.GatewayIntentBits.MessageContent
] })

client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`)
})

// 替换为正确的事件名,参数名和后续调用保持一致
client.on("messageCreate", msg => {
  if (msg.content === "Test") msg.reply("Success")
})

client.login(process.env['TOKEN'])

内容的提问来源于stack exchange,提问作者Joshua De Clerck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:48:03