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

Discord.js v14:如何为已有Embed添加字段且不丢失原有属性?

解决Discord.js v14中Embed添加字段后丢失原有属性的问题
  • 直接使用new EmbedBuilder(msg.embeds[0])无法完整继承原Embed的所有属性,需改用EmbedBuilder.from()方法基于现有Embed创建新的构建器实例。
  • v14的EmbedBuilder不支持直接用fields.push()修改字段,必须通过官方提供的addFields()方法添加字段。

修正后的代码如下:

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

// 用from方法完整继承原Embed的所有属性
let embed = EmbedBuilder.from(msg.embeds[0]);
// 添加新字段
embed.addFields({ name: '\u200B', value: `${emoji} ${role}`, inline: false });
// 编辑消息并添加反应
msg.edit({ embeds: [embed] });
msg.react(emoji);

说明

  • EmbedBuilder.from()会深度复制原Embed的颜色、描述、已有字段等全部属性,避免直接构造实例导致的属性丢失。
  • addFields()是v14官方指定的字段添加方式,仅在原有字段列表末尾追加新内容,不会清除其他属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:45:40