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
相关产品推荐
相关产品推荐

