Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何添加多重反应?_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 如何添加多重反应?

Javascript 如何添加多重反应?,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我到处寻找答案,但我想不出答案 以下是我想做的: 我想先运行一些命令,让我的bot将嵌入发送到只有管理员才能访问的特定通道。完成了 然后,bot将立即对自己的消息做出反应,消息编号为emojis 1、2和3。问题 我不希望机器人等待管理员对消息的反应。此嵌入意味着在管理员对其作出反应之前一直保留在那里。这可能是在1分钟内,或3天,但如果我必须重新启动机器人的任何原因,那么它将停止等待反应。所以我有一个事件,当有人对某个表情符号做出反应时,它会触发,这很有效。可以对其进行改进,但其功能如下:

我到处寻找答案,但我想不出答案

以下是我想做的:

  • 我想先运行一些命令,让我的bot将嵌入发送到只有管理员才能访问的特定通道。完成了

  • 然后,bot将立即对自己的消息做出反应,消息编号为emojis 1、2和3。问题

  • 我不希望机器人等待管理员对消息的反应。此嵌入意味着在管理员对其作出反应之前一直保留在那里。这可能是在1分钟内,或3天,但如果我必须重新启动机器人的任何原因,那么它将停止等待反应。所以我有一个事件,当有人对某个表情符号做出反应时,它会触发,这很有效。可以对其进行改进,但其功能如下:
bot.on(“messageReactionAdd”,(messageReaction,user)=>{
console.log(messageReaction);
如果(reaction.emoji.name==“\u0031\u20E3”){
message.channel.send('one');//这是测试它的临时代码。这里最终会有其他代码。
}
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(“**命令菜单测试**”)
.setDescription(“类型命令”)
.setAuthor('InfernoBot','https://cdn.discordapp.com/avatars/533089334224617474/17ddec7cb178601d17964040ed8dc32d.png?size=2048')
.setColor(0xD41519);
message.channel.sendEmbed(cmdEmbed).then(函数(消息){
message.react('\u0031\u20E3')
message.react('\u0032\u20E3')//这不会运行
message.react('\u0033\u20E3')//这不会运行
});
它只会对“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'));
});

如果您的问题已解决,则使用您答案旁边的绿色勾号将其标记为最佳答案,并将问题标记为最佳答案solved@PLASMAchicken我试过了,但它说我两天都不行,不知道为什么。