收到表情符号反应后的 Discord.js 消息

Ned*_*Ned 4 javascript do-while discord.js

一旦先前的消息收到反应,是否可以让 Discord 机器人发送消息?我在想这样的事情:

if(cmd === `${prefix}list`) {
    var i = 0;

    let embed = new Discord.RichEmbed()
      .addField("List", "Content");

    let anotherembed = new Discord.RichEmbed()
      .addField("Message", "List has been completed!");

    return message.channel.send(embed);

    do {
      message.channel.send(anotherembed + 1);
    }
    while (i !== 0) && (reaction.emoji.name === "?");

}
Run Code Online (Sandbox Code Playgroud)

And*_*dré 12

那不是你应该做的。
你想要的是message.awaitReactions.
DiscordJS 团队和社区有一个很好的指南,其中有一个很好的例子awaitReactions
这是他们使用的链接和示例:

message.react('').then(() => message.react(''));

const filter = (reaction, user) => {
    return ['', ''].includes(reaction.emoji.name) && user.id === message.author.id;
};

message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
    .then(collected => {
        const reaction = collected.first();

        if (reaction.emoji.name === '') {
            message.reply('you reacted with a thumbs up.');
        }
        else {
            message.reply('you reacted with a thumbs down.');
        }
    })
    .catch(collected => {
        console.log(`After a minute, only ${collected.size} out of 4 reacted.`);
        message.reply('you didn\'t react with neither a thumbs up, nor a thumbs down.');
    });
Run Code Online (Sandbox Code Playgroud)

你基本上需要一个过滤器,它只允许一系列表情符号,以及一个用户“使用”它们。

还有你的代码中的某个地方:

return message.channel.send(embed);
Run Code Online (Sandbox Code Playgroud)

您应该删除返回部分,否则它只会返回而不执行其余代码。