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

Discord.js v14如何修改Embed?获取及编辑Embed遇错求助

Discord.js v14 获取并编辑消息Embed标题的解决方案

错误原因

你执行console.log(interaction.embed[0])报错,是因为Discord.js v14中交互对象本身没有embed属性——Embed是依附在消息上的,正确的获取路径是interaction.message.embeds,这是一个存储消息内所有Embed的数组。

实现步骤与代码示例

  1. 获取消息中的Embed数组
    从交互对应的消息里取出所有Embed:

    const messageEmbeds = interaction.message.embeds;
    
  2. 搜索目标Embed(按标题匹配)
    遍历数组,根据标题筛选需要编辑的Embed(示例用关键词匹配,可按需改成精确匹配):

    // 替换为你要搜索的标题关键词或完整标题
    const targetTitleKeyword = "要搜索的标题内容";
    const targetEmbed = messageEmbeds.find(embed => embed.title?.includes(targetTitleKeyword));
    
  3. 编辑并更新Embed
    找到目标Embed后,用EmbedBuilder.from()基于原Embed创建新实例,修改标题后更新消息:

    if (targetEmbed) {
      // 创建更新后的Embed
      const updatedEmbed = EmbedBuilder.from(targetEmbed)
        .setTitle("修改后的新标题");
      
      // 更新消息,替换原Embed
      await interaction.update({
        embeds: [updatedEmbed]
      });
    } else {
      // 未找到时的提示
      await interaction.reply({ content: "未找到匹配标题的Embed", ephemeral: true });
    }
    

完整交互处理示例(以按钮交互为例)

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

// 按钮交互处理逻辑
client.on('interactionCreate', async interaction => {
  if (!interaction.isButton()) return;

  try {
    const messageEmbeds = interaction.message.embeds;
    // 匹配你创建Embed时的标题前缀
    const targetTitleKeyword = "title:";
    const targetEmbed = messageEmbeds.find(embed => embed.title?.startsWith(targetTitleKeyword));

    if (targetEmbed) {
      const updatedEmbed = EmbedBuilder.from(targetEmbed)
        .setTitle("title: 新的标题内容");
      
      await interaction.update({ embeds: [updatedEmbed] });
    } else {
      await interaction.reply({ content: "找不到对应标题的Embed", ephemeral: true });
    }
  } catch (error) {
    console.error("编辑Embed出错:", error);
    await interaction.reply({ content: "操作失败", ephemeral: true });
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:05:52