我到处都在寻找答案,但我无法弄清楚。
这就是我想要做的:
我想最初为我的机器人运行一些命令,以将嵌入内容发送到只有管理员有权访问的特定频道。完成。
然后,该漫游器将立即响应其自己的消息,并带有表情符号1、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反应。但是,它只会添加一个反应。这是不一致的。
答案 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'));
});