为什么我的discord.js僵尸程序会自我回复,即使我进行了支票也是如此?

时间:2018-10-07 04:15:56

标签: javascript node.js discord.js

我一直在花最后30分钟的时间来弄清楚为什么我的机器人会不断回复自己,即使我进行了检查以防止出现这种情况。 这是我的代码:

if (message.content.startsWith(prefix + 'rps ')) {
  if(!message.author.equals(bot.user)) {
    let theirInp = message.content.substring(prefix.length + 4)
    let botInp = rpsTab[Math.floor(Math.random() * rpsTab.length)];

    if (!theirInp == "") {
      if (wins[botInp] == theirInp) {
        message.channel.send("I won!")
      } else if (botInp == theirInp) {
        message.channel.send("We tied!")
      } else {
        message.channel.send("You won!")
      }
    }
  }
}

2 个答案:

答案 0 :(得分:4)

您可以使用其他条件表达式。

if(!message.author.bot){...}

答案 1 :(得分:2)

答案

message.author.user等于User
bot.user等于ClientUser
它们是2个独立的对象。因此,这两个不同的对象不匹配,因此失败了.equals()

推荐的修复程序

@Frost说要使用author.bot

if(message.author.bot) return

更为简单,因为它只是当它是机器人时退出,而您不必通过将其放在if语句中来缩进一些代码 而且您不必担心使用您的命令的其他机器人

修正您的代码

要修复代码,只需交换

 if(!message.author.equals(bot.user)) {}

 if(message.author.id !== bot.user.id){}