我在使用排名命令时遇到问题

时间:2021-04-12 12:27:44

标签: javascript firebase-realtime-database discord.js

我正在尝试使用 Firebase 实时数据库创建排名命令。首先,我在输入时遇到了问题,但我相信我已经解决了。但是现在我遇到了“用户不足”消息的问题,该消息一直在发送。但除此之外,如果我删除它,该命令可以工作,但它说所有用户的钱都是 0。有人知道怎么回事吗?

Json 文件示例:

 {
  "Users": {
    "12345678912345678" : {
      "Economy" : {
        money: 500
      }
    },
    "98989898989898989" : {
      "Economy" : {
        money: 100
      }
    },
    "45454545454545454" : {
      "Economy" : {
        money: 9700
      }
    }
  }
}

命令:

require('firebase').default.database().ref('Users').once('value').then(money => {

  let entries = Object.entries(money.val());

  entries = entries.filter(o => o[1].Economy.money);
  entries.sort((a, b) => b[1].Economy.money - a[1].Economy.money);

  var page = args[0]
  if(!page || isNaN(page) || page > 9) {
    page = 0
    num = 10
  } else {
    page = (args[0] - 1)
    num = page + 10
  }

  if(entries.length < num) return message.channel.send(({embed: {description: `:x: There are not enough users for this page!`, color: 'RED'}}));

  var x = entries.map(([key, value], i) => (i + 1) + ". " + (client.users.cache.get(key) ? client.users.cache.get(key).tag : "Unknown#0000") + "\nMoney: " + (value["money"] || 0) + "\n\n").slice(page, num).join("")

  const embed = new Discord.MessageEmbed()
  .setTitle("Global Ranking")
  .setDescription(x)
  .setFooter(`Page ${(!args[0] || isNaN(parseInt(args[0]))) ? 1 : args[0]}`)

  message.channel.send(embed)
})

0 个答案:

没有答案