sql - 不和谐机器人 | 基于 SQLite 的积分系统
问题描述
我对编程有点陌生,所以如果问题很愚蠢,请原谅我。我正在创建一个 Discord 机器人,练习 JS,但我想要一个 XP/leveling 系统,这对我来说太多了,所以我在这里遵循了这个指南:
https://anidiots.guide/coding-guides/sqlite-based-points-system
因此,我的代码与该页面中的代码 100% 相同,并且一切正常,但有一件事:显示排行榜时,用户 ID 显示不正确;而是显示“未定义”。此外,当打开 .sqlite 文件并检查 ID 选项卡时,它显示“未定义”,我可以手动输入 ID,但不用说它不应该那样工作。
该代码是否有任何部分未更新,或者其他什么?
提前致谢!
解决方案
该指南已过时,因为从 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).tag
为client.users.cache.get(data.user).tag
推荐阅读
- visual-studio - VS2015 中的 XAML 设计器问题
- java - 从java中的Json Object中获取一个值
- php - Laravel 循环遍历一组输入数组
- java - 如何使用响应格式的改造因参数而异?
- sage - Sage:3D 绘图 - 纵横比
- javascript - 你能做一个允许你输入文本但不允许你删除文本的文本输入吗?
- python - Scrapy:所有请求都出现 403 错误
- java - 如何从arrayList中删除唯一元素
- c# - 如何在从 SQL Server 数据库获取数据的 DataGridView 中显示货币符号?
- php - 与 Google App Engine 上的 Cloud SQL 的 PHP (PDO) 连接不起作用