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

如何用Discord.js实现Bot以Embed形式回复+help命令?

Discord.js +help命令 Embed 回复修复方案

原代码核心问题

  • 错误将Embed构建代码作为字符串传给msg.reply(),机器人只会输出文本而非解析成Embed
  • 代码结构混乱,括号嵌套与逻辑顺序错误
  • 缺少Discord.js v14+要求的EmbedBuilder导入及必要意图配置

正确实现代码

首先确保导入必要模块并初始化客户端:

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

// 初始化客户端,开启必要意图
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent
  ]
});

然后编写正确的消息处理逻辑:

client.on('messageCreate', (msg) => {
  // 匹配+help命令
  if (msg.content === '+help') {
    // 构建帮助Embed
    const helpEmbed = new EmbedBuilder()
      .setColor(0x0099FF)
      .setTitle('机器人帮助菜单')
      .setDescription('以下是机器人的可用命令说明')
      .setThumbnail('https://i.imgur.com/AfFp7pu.png')
      .addFields(
        { name: '基础命令', value: '+help - 显示此帮助菜单' },
        { name: '\u200B', value: '\u200B' }, // 空行分隔
        { name: '功能A', value: '描述功能A的用法', inline: true },
        { name: '功能B', value: '描述功能B的用法', inline: true }
      )
      .setTimestamp()
      .setFooter({ text: '如有疑问请联系管理员', iconURL: 'https://i.imgur.com/AfFp7pu.png' });

    // 发送Embed回复
    msg.reply({ embeds: [helpEmbed] });
  }
});

// 登录机器人(替换为你的Token)
client.login('YOUR_BOT_TOKEN');

关键修正说明

  • 使用messageCreate事件:Discord.js v14及以上版本已废弃旧的message事件
  • 正确构建Embed:创建EmbedBuilder实例并链式调用配置方法,而非将代码作为字符串
  • 传递Embed对象:通过msg.reply()的embeds数组参数传入Embed,而非直接传文本
  • 开启必要意图:必须启用MessageContent意图,否则机器人无法读取用户发送的消息内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:55:20