【问题标题】:Top Level Members Leaderboard Discord.js顶级成员排行榜 Discord.js
【发布时间】:2020-08-09 14:01:06
【问题描述】:

所以,我为许多类型的东西制作了很少的排行榜命令,金钱排行榜,测验等。但是我在升级排行榜时遇到问题,当我输入命令时它给了我这个错误

(node:34294) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'username' of undefined
at Object.exports.run (/home/Lignjoslav/commands/generalno/leveltop.js:21:65)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

所有排行榜都是这样制作的,我对它们没有任何问题,它们运行良好,但这个有这个问题。这是命令:

const Discord = require("discord.js");
const db = require("quick.db");

exports.run = async (client, message, args) => {

    let komande = await db.fetch(`kanal_${message.guild.id}_komande`);
    if (message.channel.id !== komande && !message.member.permissions.has("ADMINISTRATOR"))
        return message.channel.send({
            embed: {
                title: `:video_game: Komande`,
                description: `Ovu komandu možeš koristiti samo u kanalu <#${komande}>`,
                color: 0x4CAAFF
            }
        });

    let levelTOP = await db
        .all()
        .filter(data => data.ID.startsWith(`level_${message.guild.id}`))
        .sort((a, b) => b.data - a.data);
    let content = "";

    for (let i = 0; i < levelTOP.length; i++) {
        if (i === 10) break;

        let user = client.users.cache.get(levelTOP[i].ID.split("_")[2]).username;

        content += `**${i + 1}.** __${user}__ - ${levelTOP[i].data} ????\n`;
    }

    const embed = new Discord.MessageEmbed()
        .setDescription(`**__Tabela članova sa najviše levela__**\n\n${content}`)
        .setColor("#4CAAFF");

    message.channel.send(embed);
};
exports.help = {
    name: "leveltop",
    description: "lista članova sa najviše levela",
    usage: "leveltop",
    category: "generalno",
    listed: true
};

【问题讨论】:

    标签: javascript discord bots


    【解决方案1】:

    client.users.cache 只是一个缓存,它可能会也可能不会保留连接到机器人的用户的全部数据。而是尝试调用异步client.users.fetch(id)

    const user = await client.users.fetch(levelTOP[i].ID.split("_")[2]);
    
    content += `**${i + 1}.** __${user.username}__ - ${levelTOP[i].data} ?\n`;
    

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 2021-09-03
      • 2020-11-22
      • 2021-04-10
      • 2019-07-26
      • 2020-07-29
      • 1970-01-01
      • 2021-06-21
      • 2020-11-05
      相关资源
      最近更新 更多