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

Discord.js v13机器人执行命令无响应,请求技术帮助

Discord.js v13机器人执行命令无输出的问题排查与修复

问题点分析

  • 事件名称错误:Discord.js v13中消息创建事件的标准名称是messageCreate(驼峰命名规则),你代码中写的是全小写的messagecreate,导致事件监听器完全无法触发。
  • 模板字符串语法错误:回复消息时使用双引号包裹内容,无法解析${message.author}变量,会直接输出原始字符串而非用户对象。
  • 缺少前缀校验:未先判断消息是否以设定的前缀开头,非命令消息会触发不必要的字符串切割操作,可能导致command变量异常。

修复后的完整代码

const Discord = require("discord.js");
const bot = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] });

const token = "MTAxNzgyMjQ1MjU1MTc5NDgxOA.GjO8F-.VWCMsDKV5_YdP1w6gnEME6Jucd7BN9OADesM4s";
const prefix = "lb!";

bot.on("ready", () => {
  console.log("Your bot is now online");
});

// 修复事件名称为驼峰格式的messageCreate
bot.on("messageCreate", (message) => {
  if (message.author.bot) return;
  // 新增前缀校验,过滤非命令消息
  if (!message.content.startsWith(prefix)) return;

  const args = message.content.slice(prefix.length).trim().split(/ +/g);
  // 改用toLowerCase统一命令大小写(比toLocaleLowerCase更适合命令场景)
  const command = args.shift().toLowerCase();

  if (command === "hello") {
    // 改用反引号包裹模板字符串,正确解析变量
    message.reply(`Hi ${message.author}`);
  }
});

bot.login(token);

额外注意事项

请确保在Discord开发者门户的机器人设置页面中,已开启消息内容意图(Message Content Intent)——Discord.js v13需要该权限才能读取消息内容,否则即使代码修复完成,命令仍无法触发。

内容的提问来源于stack exchange,提问作者Syed Faizan Ali Kazmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:30:59