如何添加多个反应?

时间:2019-02-22 17:11:15

标签: javascript node.js discord.js

我到处都在寻找答案,但我无法弄清楚。

这就是我想要做的:

  • 我想最初为我的机器人运行一些命令,以将嵌入内容发送到只有管理员有权访问的特定频道。完成。

  • 然后,该漫游器将立即响应其自己的消息,并带有表情符号1、2和3。问题。

  • 我不希望机器人等待管理员对消息的反应。该嵌入的意思是待管理员对其做出反应之前一直呆在那里。可能在1分钟或3天之内,但是如果出于任何原因我必须重新启动bot,它将停止等待反应。所以我有一个事件,当某人对给定的表情符号做出反应时触发该事件。可以改进,但是可以起作用:
bot.on("messageReactionAdd", (messageReaction, user) => {
    console.log(messageReaction);
    if(reaction.emoji.name === "\u0031\u20E3") {
        message.channel.send('one'); //This is temporary to test it out. There will be other code here eventually.
    }
    else if(reaction.emoji.name === "\u0032\u20E3") {
        message.channel.send('two');
    }
    else if(reaction.emoji.name === "\u0033\u20E3") {
        message.channel.send('three');
    }
});

我的问题是,当我运行这段代码时:

let cmdEmbed = new discord.RichEmbed()
    .setTitle('**Command Menu Test**')
    .setDescription("Type commands")
    .setAuthor('InfernoBot', 'https://cdn.discordapp.com/avatars/533089334224617474/17ddec7cb178601d17964040ed8dc32d.png?size=2048')
    .setColor(0xD41519);
message.channel.sendEmbed(cmdEmbed).then(function (message) {
    message.react('\u0031\u20E3')
    message.react('\u0032\u20E3') //This doesn't run
    message.react('\u0033\u20E3') //This doesn't run
});

它只会与'1'表情符号反应。

我如何使其与表情符号编号1、2和3反应,而无需等待反应?

PS:我将实现一些代码,一旦对现有嵌入做出反应,它们将以相同的反应重新发送完全相同的嵌入,以对其进行重置。

编辑:该漫游器并不总是与1反应。但是,它只会添加一个反应。这是不一致的。 screenshot here

1 个答案:

答案 0 :(得分:0)

在发布此内容约30分钟后找到答案。我将分享给遇到相同问题的任何人。

我在原始文章中的第一段代码导致该机器人中断并重新启动。

我将第一段代码替换为:

bot.on("messageReactionAdd", (reaction, user) => {
    if(user.toString() !== '<@533089334224617474>' /*InfernoBot ID*/) {
        console.log('User is not InfernoBot')
        if(reaction.emoji.name === "\u0031\u20E3") {
            //code here
        }
    }
});

然后我将第二个代码块替换为:

let cmdEmbed = new discord.RichEmbed()
    .setTitle('**Command Menu Test**')
    .setDescription("Type commands")
    .setAuthor('InfernoBot', 'https://cdn.discordapp.com/avatars/533089334224617474/17ddec7cb178601d17964040ed8dc32d.png?size=2048')
    .setColor(0xD41519);
message.channel.sendEmbed(cmdEmbed).then(function (message) {
    message.react('\u0031\u20E3').then(() => message.react('\u0032\u20E3')).then(() => message.react('\u0033\u20E3'));
});