提问者:小点点

如何添加多个反应?


我到处找答案都找不出来。

下面是我想做的:

>

  • 我希望最初为我的机器人运行一些命令,将嵌入发送到只有管理员才能访问的特定通道。搞定了。

    然后,机器人会立即对自己的消息做出反应,并用数字emojis1,2和3表示。问题。

    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个答案

    匿名用户

    在贴出这个后大约30分钟找到了答案。我会为任何有同样问题的人分享。

    我在原始文章中的第一段代码是导致bot中断并重新启动的。

    我用以下代码替换了第一段代码:

    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'));
    });