【问题标题】:Discord.js Leaderboard for XP用于 XP 的 Discord.js 排行榜
【发布时间】:2020-07-29 12:37:55
【问题描述】:

在过去的几天里,我开发了一个练级系统。我将数据存储在一个 JSON 文件中,如下所示:

    {
      serverID{
         userID1{
          xp: 10;
          Level: 1
         },
         userID2{
          xp: 10;
          Level: 1
         }
      }
    }

现在我想做一个从这个文件中读取的排行榜。我在互联网上环顾四周,但没有任何效果。有人可以帮我吗?

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    为了制作一个简单的服务器 XP 排行榜,您必须使用fs library 读取您的 XP 数据文件并使用 JSON 解析它。

    let data = Fs.readFileSync("path-to-json-file", "utf8");
    data = JSON.parse(data);
    

    然后,只需 iterate the keys of your ServerID 对象,并在循环内,使用以下函数对它们进行排序:

    function sortMyArray() {
        arrayName.sort(function(a, b) {
            return b-a;
        });
    }
    

    最后,只需加入数组的元素,发送包含一些降价的消息,你就可以开始了!

    message.channel.send(`\`\`\`markdown\n# Leaderboard of the server \n${levels.join("\n")}\`\`\``);
    

    【讨论】:

    • 显示message.channel.send(```markdown\n# 服务器排行榜\n${levels.join("\n")}``); ^ TypeError: levels.join is not a function
    • 事实上,“levels”是一个示例数组名称 - 只需在您的代码中插入 [your array name].join(code)
    • 现在得到这个输出:Have no space to upload it here xD by this 代码
    • 您在.join() 之前关闭了}。这是正确的行:${levles[message.guild.id].join(" ")} 如果我的帖子有帮助,别忘了点赞 ;)
    • 现在得到了这个`message.channel.send(```markdown\n# Leaderboard of the server \n${levles[message.guild.id].join("\n")}```); ^ TypeError: levles[message.guild.id].join is not a function`对不起,如果我很烦xD
    猜你喜欢
    • 2021-05-14
    • 2021-09-03
    • 2020-11-22
    • 2019-07-26
    • 1970-01-01
    • 2020-11-05
    • 2012-09-08
    • 2021-03-23
    • 2013-04-12
    相关资源
    最近更新 更多