Javascript 制作带有反应的验证系统

Javascript 制作带有反应的验证系统,javascript,bots,discord,discord.js,Javascript,Bots,Discord,Discord.js,我发现了一些关于同一主题的帖子,但不是确切的问题。 我还提到了javascript不一致,他们无法帮助我解决问题 所以我想告诉你, 该验证系统的目的是确保用户理解规则,并在添加复选标记反应后,继续解锁其余的不和谐 我制作了一个具有命令消息的bot,它工作正常,但我希望bot在发送消息后对自己的消息做出反应,然后等待用户也添加反应,在本例中,这将触发一个函数。触发机器人向用户发送PM,并给用户排名 机器人会很好地添加他的反应,当我做出反应时,它会向我发送一个PM,但在我和机器人之间的PM中,机器人

我发现了一些关于同一主题的帖子,但不是确切的问题。 我还提到了javascript不一致,他们无法帮助我解决问题

所以我想告诉你, 该验证系统的目的是确保用户理解规则,并在添加复选标记反应后,继续解锁其余的不和谐

我制作了一个具有命令消息的bot,它工作正常,但我希望bot在发送消息后对自己的消息做出反应,然后等待用户也添加反应,在本例中,这将触发一个函数。触发机器人向用户发送PM,并给用户排名

机器人会很好地添加他的反应,当我做出反应时,它会向我发送一个PM,但在我和机器人之间的PM中,机器人会再次对他的消息做出反应。这可能是因为代码检查消息作者是否是bot

在JS Discord中,我被告知messageReactionAdd函数有一个Message属性,但是在搜索时,我找不到一种方法将其实现到我的代码中。我该怎么做?同时,试图给用户一个排名也会产生错误,我只是在理解和让这些东西发挥作用之间左右为难。我对自己的代码感到困惑,我对自己正在做的事情了解甚少,所以说,有人能帮我做这个更改吗,这样我就可以把它记在脑子里了?给我discord.js文档的链接只会让我更加困惑,我学习的唯一方法就是创建并成功地使其工作。当然,我们非常感谢您的帮助

下面是messageReactionAdd的代码:

bot.on('messageReactionAdd', (reaction, user) => {
  if(reaction.emoji.name === "✅") {
    if(user === bot.user) return;
    // if(bot.channel === "dm") return;
    // let role = bot.guild.roles.find("name", "C - Verified");
    // let role1 = bot.guild.roles.find("name", "C - Unverified");

    //if(user.roles.has(role.id));
    //await(user.addRole(role.id) && user.removeRole(role1.id));
    user.send("Thank you for being apart of the community! As a thanks for accepting the rules, you have been awarded the verified role!");
    return;
}
});
下面是react函数本身的代码:

513769507907907567628是机器人的ID

所以,如果你有任何意见,那就太好了!如果你能加入一个不和谐的电话,请留言给我,那将是最简单和最快的

你好,马吕斯


如果您的问题发生在此处:

  await(user.addRole(role.id) && user.removeRole(role1.id));
那是因为:

1)
await
仅存在于
async
函数中

2) 你不能仅仅用
&&
链接承诺,
a&&b
将导致
b
,然后等待,因此在你的情况下,你只需等待删除



如果您的问题发生在此处:

  await(user.addRole(role.id) && user.removeRole(role1.id));
那是因为:

1)
await
仅存在于
async
函数中

2) 你不能仅仅用
&&
链接承诺,
a&&b
将导致
b
,然后等待,因此在你的情况下,你只需等待删除



好的,谢谢你告诉我我不能把它们锁起来。我给了我一个错误,说它无法读取未定义的角色。我显然抓不到用户。有什么想法吗?@marius我似乎在文档中找不到
bot.guild
,只有
bot.guilds
,好的,谢谢你告诉我我不能链接它们。我给了我一个错误,说它无法读取未定义的角色。我显然抓不到用户。有什么想法吗?@marius我在文档中似乎找不到
bot.guild
,只有
bot.guilds
 bot.on('messageReactionAdd', async (reaction, user) => {
   if(reaction.emoji.name === "✅") return;
   if(user === bot.user) return;

   let role = bot.guild.roles.find("name", "C - Verified");
   let role1 = bot.guild.roles.find("name", "C - Unverified");

   await user.addRole(role.id);
   await user.removeRole(role1.id);
 });