用户没有出现在排行榜猫鼬 discordjs

Users not appearing on leaderboard 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()
                })
            }


我不确定为什么用户没有出现在排行榜上

抱歉久了post

因为您提到并且您的客户端(discord 应用程序)尚未在您的服务器中缓存该用户,因此他们不会只与您一起显示。如果其他客户端尚未缓存该用户,则行为与其他客户端相同 我希望您获取 guildMember 并在排行榜中显示带有标签的昵称或用户名(未提及)以便显示