一次发送多个嵌入

时间:2018-02-05 00:55:31

标签: javascript node.js discord.js

当用户输入某个命令时,我试图立即发送多个嵌入(更具体地说,只是2个)。原因是我想要打印的信息在1次嵌入中看起来非常长。我听说这只能使用webhooks来完成,因为discord API通常不允许这样做。所以下面的代码不会起作用:

const embed = new Discord.RichEmbed()
.setAuthor("blah")
.addField("blah")
message.channel.send({embed}) // this will send fine

const embed2 = new Discord.RichEmbed()
.setAuthor("blah")
.addField("blah")
message.channel.send({embed2});   // This wont work

我也可以使用丰富的嵌入功能,但我认为这对我尝试做的事情没有任何影响。我已经尝试了如何正确使用webhook来做到这一点,但我甚至没有设法宣布我的钩子。如果我可以帮助我做我想要完成的事情(如果没有使用webhook实际上有一种方法可以做到这一点,那么我会很感激。意味着我喜欢听到它!)

2 个答案:

答案 0 :(得分:3)

您可以将多个嵌入发送到同一个频道,我不确定是谁告诉您这是不可能的。这是我正在使用的代码,它成功地将多个嵌入发送到通道:

function send2Embeds(message) {
    let channel = message.channel;

    // next create rich embeds
    let embed1 = new Discord.RichEmbed({
        title: 'embed1',
        description: 'description1',
        author: {
            name: 'author1'
        }
    });

    let embed2 = new Discord.RichEmbed({
        title: 'embed2',
        description: 'description2',
        author: {
            name: 'author2'
        }
    });

    // send embed to channel
    channel.send(embed1)
    .then(msg => {
        // after the first is sent, send the 2nd (makes sure it's in the correct order)
        channel.send(embed2);
    });
}

如您所见,我等待第一个嵌入成功发送&承诺在发送第二个嵌入之前返回。你在尝试这样的事情时遇到了错误吗?

答案 1 :(得分:-1)

我认为如果您使用以下方法会更好:

message.channel.send(embed1, embed2)