首页 > 解决方案 > 不和谐机器人 | 基于 SQLite 的积分系统

问题描述

我对编程有点陌生,所以如果问题很愚蠢,请原谅我。我正在创建一个 Discord 机器人,练习 JS,但我想要一个 XP/leveling 系统,这对我来说太多了,所以我在这里遵循了这个指南:

https://anidiots.guide/coding-guides/sqlite-based-points-system

因此,我的代码与该页面中的代码 100% 相同,并且一切正常,但有一件事:显示排行榜时,用户 ID 显示不正确;而是显示“未定义”。此外,当打开 .sqlite 文件并检查 ID 选项卡时,它显示“未定义”,我可以手动输入 ID,但不用说它不应该那样工作。

该代码是否有任何部分未更新,或者其他什么?

提前致谢!

标签: sqlbotsdiscord.js

解决方案


该指南已过时,因为从 discord.js v12 开始您需要使用client.users缓存,或者您可以使用该fetch()方法。

我假设您指的是在您链接的页面上找到的下面的片段,它在leaderboard命令中。

for(const data of top10) {

embed.addField(client.users.get(data.user).tag, `${data.points} points (level ${data.level})`);

}

在此代码段中,替换client.users.get(data.user).tagclient.users.cache.get(data.user).tag


推荐阅读