node.js - 没有出现在排行榜上的用户 mongoose discordjs
问题描述
我创建了一个排行榜,在 discord.js 和 mongoose 中将用户从最富有到最贫穷进行排序。有些用户本应出现在排行榜上时却没有出现在排行榜上。这家伙有数万亿,但不在上面
这是我的排行榜代码
const { Message, DiscordAPIError } = require('discord.js')
const Client = require('../bot')
const stats = require('./stats')
const mongoose = require('mongoose')
const Discord = require('discord.js')
const commaNumber = require('comma-number')
module.exports = {
name: `lb`,
aliases:['leaderboard'],
/**
* @param {Client} client
* @param {Message} message
* @param {String[]} args
*/
run: async(client, message, args) => {
const users = await client.schema.find()
const Userid = users.User
const lb = users
.slice(0)
.sort(({ Bobux: a }, { Bobux: b }) => b - a)
.map(
({ User, Bobux }, pos) => `${pos + 1}. <@${User}> - ${commaNumber(Bobux)} Bobux`,
);
const newnew = lb.slice(0, 15)
const embed = new Discord.MessageEmbed()
.setTitle('Global Leaderboard For Most Bobux - Top 15')
.setDescription(newnew)
.setColor('RANDOM')
message.channel.send(embed)
},
timeout: 5000
}
这是架构代码。它在主 bot.js 文件中
this.schema = this.mongoose.model(
`economy`,
new this.mongoose.Schema({
User: String,
Bobux: Number,
})
);
const self = this
this.economy = {
async getBal(User) {
return await self.schema.findOne({
User
}).then((d) => d ? d.Bobux : 0)
},
async addBal(User, Bobux) {
return await self.schema.findOne({ User }, async(err, data) => {
if(err) throw err
if(data) {
data.Bobux += Number(Bobux)
} else {
data = new self.schema({ User, Bobux })
}
data.save()
})
},
async subBal(User, Bobux) {
return await self.schema.findOne({ User }, async(err, data) => {
if(err) throw err
if(data) {
data.Bobux -= Number(Bobux)
} else {
data = new self.schema({ User, Bobux })
}
data.save()
})
}
我不确定为什么用户没有出现在排行榜上
对不起,很长的帖子
解决方案
因为您提到并且您的客户端(不和谐应用程序)尚未将该用户缓存在您的服务器中,因此它们不会仅与您一起显示。如果其他客户端没有缓存该用户,行为与其他客户端相同我希望您获取 guildMember 并在排行榜中显示他们的昵称或用户名和标签(未提及)以便很好地显示
推荐阅读
- javascript - 根据子元素的数量在图标之间切换
- javascript - 关于 React.useEffect() 和 React.useState() 的问题
- ruby-on-rails - Rails,ZSH - 在 ubuntu 20.04 中安装 ZSH 终端后找不到 rails 和 ruby 命令
- python - 如何使用批量插入将数据从 Dataframe 插入 SQL Server 表?
- jenkins - 如何配置 Jenkins 拉取请求构建器以在 Github 依赖 PR 上运行测试
- python - 计算一个函数被调用了多少次
- neo4j - 得到
Neo4j 节点的分类 - java - 如何使状态视图突出显示和超链接链接
- pytorch - Huggingface BERT SequenceClassification - ValueError:要解包的值太多(预期为 2)
- coq - 如果 Coq 中两个归纳类型的构造函数表达式相等,我可以根据它们对应的参数进行重写吗?