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我试过了,但它说我两天都不行,不知道为什么。