如何向现有的嵌入(Discord.js v14)添加字段?

3

我从一条消息中提取了一个嵌入式对象,现在想要添加一个字段并编辑该消息。在升级到v14之前,我只需使用embed.addFields()即可实现。但是现在,在执行此操作时,它会删除嵌入式对象的所有属性(颜色、描述等),除了我添加的字段。

  let embed = new EmbedBuilder(msg.embeds[0])
  embed.addFields({name:'\u200B', value:`${emoji} ${role}`, inline:false})
  msg.edit({embeds: [embed]})
  msg.react(emoji);

我也尝试了 embed.fields.push(),但那也没有起作用(控制台显示该函数未定义)。

2个回答

2

new EmbedBuilder()不接受Embed作为参数。使用.data.toJSON()EmbedBuilder.from()(接受Embed作为参数)。

new EmbedBuilder(msg.embeds[0].data)
new EmbedBuilder(msg.embeds[0].toJSON())
EmbedBuilder.from(msg.embeds[0])

上述任何一行都可以工作


1
尝试使用EmbedBuilder.from(msg.embeds[0])替代new EmbedBuilder(msg.embeds[0]),这样会更好。

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接