我到处找答案都找不出来。
下面是我想做的:
>
我希望最初为我的机器人运行一些命令,将嵌入发送到只有管理员才能访问的特定通道。搞定了。
然后,机器人会立即对自己的消息做出反应,并用数字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:我将实现一些代码,这些代码将重新发送完全相同的嵌入与相同的反应,一旦现有的嵌入已经被响应,重置它。
在贴出这个后大约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'));
});