【问题标题】:How do I edit embed and add new fields?如何编辑嵌入和添加新字段?
【发布时间】:2021-04-22 12:41:34
【问题描述】:

有一个嵌入,其中将添加字段并且信息会根据反应发生变化。 如何更改嵌入以及添加和删除字段?

如果我尝试通过编辑进行编辑,它会更改整个消息并仅插入修改后的消息

const exampleEmbed = new Discord.MessageEmbed()
    .setColor('RANDOM')
    .setTitle(`${day.format("DD.MM.YY, в (HH:mm)")}`)
    .setAuthor('Destiny 2', 'https://www.neira.app/img/Destiny2.png', 'https://www.bungie.net/')
    .setDescription(`**Заметка от лидера:** ${c.join(' ')}`)
    .setThumbnail(image_raid)
    .addField('Информация', `- Лидер группы: **#1** ${message.author}\n- Нажмите на реакцию`)
    .setFooter(`ID: ${message.id}`)

let jsonStr = messageReaction.message.embeds[0];
var obj = JSON.parse(JSON.stringify(jsonStr));

obj['fields'].push(
{
    "value": "4",
    "name":"pending",
    "inline":false
});
jsonStr = JSON.stringify(obj);

messageReaction.message.edit("@here", { embed: jsonStr });

【问题讨论】:

  • 添加反应时我们需要代码
  • 添加代码______

标签: discord discord.js


【解决方案1】:

您应该在添加反应代码中简单地使用:

const newEmbed = messageReaction.message.embeds[0];
newEmbed.addField('pending', 4, false);
messageReaction.message.edit("@here", {
    embed: oldEmbed
});

【讨论】:

【解决方案2】:

您正在寻找的是#addField() 方法。要在外部添加新字段,只需执行 <embedName>.addField()

以下是嵌入工作原理的示例:

// at the top of your file
const Discord = require('discord.js');

// inside a command, event listener, etc.
const exampleEmbed = new Discord.MessageEmbed()
    .setColor('#0099ff')
    .setTitle('Some title')
    .setURL('https://discord.js.org/')
    .setAuthor('Some name', 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org')
    .setDescription('Some description here')
    .setThumbnail('https://i.imgur.com/wSTFkRM.png')
    .addFields(
        { name: 'Regular field title', value: 'Some value here' },
        { name: '\u200B', value: '\u200B' },
        { name: 'Inline field title', value: 'Some value here', inline: true },
        { name: 'Inline field title', value: 'Some value here', inline: true },
    )
    .addField('Inline field title', 'Some value here', true)
    .setImage('https://i.imgur.com/wSTFkRM.png')
    .setTimestamp()
    .setFooter('Some footer text here', 'https://i.imgur.com/wSTFkRM.png');

channel.send(exampleEmbed);

【讨论】:

  • 您定义嵌入的位置 - const joinEmbed = new Discord.MessageEmbed() joinEmbed 是名称
  • 添加反应 - 新文件
  • @Dragwor 您尚未定义嵌入,因此您不能将其视为已定义,请更详细地查看我的帖子 - 或在您自己的代码中添加更多详细信息和上下文
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 2020-11-02
  • 2017-04-19
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
相关资源
最近更新 更多