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

Discord.JS 如何编辑已有embed字段 而非新增独立同名字段

Discord机器人Embed同名字段追加解决方案

实现逻辑

  • 先从已有Embed的fields数组中查找名为Cars Completed的目标字段
  • 字段存在时直接在原有值后追加新内容,默认用换行符分隔,也可替换为其他分隔符
  • 字段不存在时再调用addFields方法新增字段

修正后完整代码

if (msgParams[0] == "!cb")
{
  message.delete()
  const message1 = message.content.slice(3).trim()
  let channel1 = message.channel.guild.channels.cache.find((channel) => channel.name.toLowerCase() === `balancing-sheet`)

  const embed1 = new Discord.MessageEmbed()
  .setColor(0xffdb03)
  .setDescription("<@" + message.author.id + "> is working on the " + message1)

  channel1.send(embed1).then(sentMessage => {
    sentMessage.react("✅").then(() => {
      const filter = (reaction, user) => {
          return true;
      }
      const collector = sentMessage.createReactionCollector(filter);
      collector.on('collect', async (reaction, user) => {
        if (reaction.emoji.name === '✅'){
          if (user.bot) return; 
          sentMessage.delete()
          const suggestionData = await channel1.messages.fetch("885108855221125121");
          const suggestionEmbed = suggestionData.embeds[0];
          // 查找已有同名字段
          const existField = suggestionEmbed.fields.find(item => item.name === "Cars Completed")
          if (existField) {
            // 字段存在则追加内容,需要同列显示可把\n替换为、| 等分隔符
            existField.value += `\n${message1}`
          } else {
            // 字段不存在则新增
            suggestionEmbed.addFields({name: "Cars Completed", value: message1, inline: true})
          }
          suggestionData.edit(suggestionEmbed);
        }                            
      })
    })
  })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:24:03