javascript - 如何添加多个反应?
问题描述
我到处寻找答案,但我无法弄清楚。
这是我想要做的:
我想最初为我的机器人运行一些命令,以将嵌入发送到只有管理员有权访问的特定频道。完毕。
然后,机器人将立即对自己的消息做出反应,并使用数字表情符号 1、2 和 3。问题。
- 我不希望机器人等待管理员对消息的反应。这个嵌入是为了留在那里直到管理员对它做出反应。这可能在 1 分钟或 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”表情符号做出反应。
如何让它与 emoji 数字 1、2 和 3 发生反应,而不等待反应?
PS:我将实现一些代码,一旦对现有嵌入作出反应,将重新发送具有相同反应的完全相同的嵌入,以重置它。
编辑:机器人并不总是对 1 做出反应。但是,它只会添加一个反应。这是不一致的。 .
解决方案
发布后大约 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'));
});
推荐阅读
- ignite - 当多个线程访问相同的键时,Ignite get 操作正在创建锁
- html - 没有折叠引导程序 3 的侧边栏
- java - 如何在spring boot中从我自己的rest控制器的cloudinary获取通知端点
- hadoop - 从客户端调用的 Map reduce 作业中未设置 HADOOP_COMMON_HOME 和 HADOOP_HDFS_HOME 变量
- qt - 如何添加 Qt 私有模块的库?
- python - 解析json转储文件时python中的关键错误
- java - 创建模板布局文件并动态添加值以将其添加到首选项
- angular - dynamic tooltips in ngx-datatable
- linux - 是否有通过网络浏览器运行命令行的选项?
- reverse-engineering - 在主体中创建体积