Javascript I';我在军衔指挥上有困难
我正试图用Firebase实时数据库制作一个rank命令。首先,我的条目有问题,但我相信我解决了。但是现在我遇到了“没有足够的用户”的问题,这条消息一直在发送。但除此之外,如果我删除它,该命令会起作用,但它表示所有用户都没有钱。有人知道怎么了吗 Json文件示例:Javascript I';我在军衔指挥上有困难,javascript,firebase-realtime-database,discord.js,Javascript,Firebase Realtime Database,Discord.js,我正试图用Firebase实时数据库制作一个rank命令。首先,我的条目有问题,但我相信我解决了。但是现在我遇到了“没有足够的用户”的问题,这条消息一直在发送。但除此之外,如果我删除它,该命令会起作用,但它表示所有用户都没有钱。有人知道怎么了吗 Json文件示例: { "Users": { "12345678912345678" : { "Economy" : { money: 500
{
"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)
})
require('firebase')。default.database().ref('Users')。once('value')。然后(money=>{
让entries=Object.entries(money.val());
entries=entries.filter(o=>o[1].Economy.money);
条目.sort((a,b)=>b[1].Economy.money-a[1].Economy.money);
变量页=args[0]
如果(!第| |页isNaN(第| |页>9页){
第页=0
num=10
}否则{
页面=(参数[0]-1)
num=第+10页
}
if(entries.length(i+1)+(client.users.cache.get(key)?client.users.cache.get(key)tag:“Unknown#0000”)+”\n货币:+(value[“money”]| 0)+“\n\n”).slice(page,num.join(“)
const embed=new Discord.MessageEmbed()
.setTitle(“全球排名”)
.setDescription(x)
.setFooter(`Page${(!args[0]| | isNaN(parseInt(args[0])))?1:args[0]}`)
message.channel.send(嵌入)
})
你的数学做得对吗?我会重新检查页面和数值计算num=page+10
=1+10=11第1页,2+10=12第2页等等。我认为这是正确的。我对这个页面系统了解不多,但一个朋友给了我,它工作正常。问题是,bot没有为每个用户提供正确的金额。我相信问题出在变量x上。我设法解决了它!我将value[“money”]
更改为value.Economy.money
。在“用户不足”消息中,我将if(entries.length
更改为if(entries.length
现在一切都正常了:D