【问题标题】:If statements not working properly discord.js如果语句不能正常工作 discord.js
【发布时间】:2019-12-25 04:34:28
【问题描述】:

所以,我有一个不和谐的机器人,带有一个脏话过滤器,我发出了一个添加和删除单词的命令。删除功能正在工作,但在你输入 c!setconf swearWords add 时添加失败,没有参数,它应该发送一条错误消息,它在删除中执行,但在添加中,它发送“已添加未定义字”

我查看了代码,它是 2 种情况中的确切代码,所以我真的不知道是什么错误。

    if(args[0] === "swearWords") {
      if(!args[1]) return message.channel.send(
      new Discord.RichEmbed()
      .setDescription(`Add banned words by typing \`${client.guildConf.prefix}csetconf swearWords add <word>\` and remove one by typing \`${client.guildConf.prefix}csetconf swearWords remove <word>\``)
      .setColor(vars.good)
      )
      if(args[1] === "add") {
        if(client.configs.get(message.guild.id, args[2], "swearWords")) {
          message.channel.send(
            new Discord.RichEmbed()
            .setDescription(`Word \`${args[2]}\` has been already added!`)
            .setColor(vars.error)
          )
          return;
        } else if(!args[2]) {
          message.channel.send(
            new Discord.RichEmbed()
            .setDescription(`Specify a valid word to add!`)
            .setColor(vars.error)
          )
        } else {
        client.configs.push(message.guild.id, args[2], "swearWords")
        message.channel.send(
          new Discord.RichEmbed()
          .setDescription(`Banned word \`${args[2]}\` added`)
          .setColor(vars.good)
        )
        }
      } else if(args[1] === "remove") {
        if(!client.configs.get(message.guild.id, args[2], "swearWords")) {
          message.channel.send(
            new Discord.RichEmbed()
            .setDescription(`Word \`${args[2]}\` is not a banned word here!`)
            .setColor(vars.error)
          )
          return;
        } else if(!args[2]) {
          message.channel.send(
            new Discord.RichEmbed()
            .setDescription(`Specify a valid word to remove!`)
            .setColor(vars.error)
          )
        } else {
        client.configs.remove(message.guild.id, args[2], "swearWords")
        message.channel.send(
          new Discord.RichEmbed()
          .setDescription(`Banned word \`${args[2]}\` removed`)
          .setColor(vars.error)
        )
        }
      } else {
        message.channel.send(
          new Discord.RichEmbed()
          .setDescription(`Invalid action! Use \`add\` or \`remove\` instead.`)
          .setColor(vars.error)
        )
      }
    }

对不起,所有的代码,但它是必要的 此外,没有错误控制台日志输出。 预期的结果是让 c!setconf swearWords add 回复 else if(!args[2] 事情,remove 选项工作正常,但 add one 失败了。 感谢您的帮助!

【问题讨论】:

    标签: node.js discord discord.js


    【解决方案1】:

    根据我对您的问题的理解,您要确保在添加单词时该值不是未定义的。从外观上看,您正在检查 args[2] 是否是 undefined!args[2] 在另一个语句之后,似乎它正在返回 true。我建议交换这些。

    ...
    if(args[1] === "add") {
        //Check that args[2] isn't undefined first
        if(!args[2]) {
            message.channel.send(
                new Discord.RichEmbed()
                    .setDescription(`Specify a valid word to add!`)
                    .setColor(vars.error)
                )
        } else if(client.configs.get(message.guild.id, args[2], "swearWords")) {
            message.channel.send(
                new Discord.RichEmbed()
                    .setDescription(`Word \`${args[2]}\` has been already added!`)
                    .setColor(vars.error)
            )
            return;
        } else {
            client.configs.push(message.guild.id, args[2], "swearWords")
            message.channel.send(
              new Discord.RichEmbed()
                  .setDescription(`Banned word \`${args[2]}\` added`)
                  .setColor(vars.good)
            )
        }
    }
    ...
    

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 1970-01-01
      • 2011-03-14
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      相关资源
      最近更新 更多