我正在创建一个类似于Pokecord的discord机器人,并希望为每个用户记录1个或多个变量。我正在使用Discord.js,JavaScript和Node.js。 这可能吗?
答案 0 :(得分:1)
使用我安装在服务器上的SQL数据,然后添加phpmyadmin,您只需连接到数据库
答案 1 :(得分:0)
这可能行不通,我没有时间或资源进行测试,但是其代码是从先前的项目中挽救的
var money = new Map();
const mems = client.guilds.get("serverid");
mems.members.forEach(member => () {
money.set(member.user.username, 1);
console.log(money.get(member.user.username));
});
答案 2 :(得分:0)
这不是一件容易的事,为此,您必须创建一个数据库,我建议您 Mysql安装该软件,然后观看该指南的另一个不错的指南here 然后,如果您安装并观看了指南 `
BBPATH
要进行连接,然后您必须在数据库中创建一个值(钱)并分配所需的值
const mysql = require('mysql');
const connection = mysql.createConnection({
host : 'myhost',
port : '3306',
user : 'myuser'
password : 'mypassword',
database : 'mydatabase',
charset : 'utf8mb4'
});
答案 3 :(得分:0)
要为每个用户存储某个值或变量,您有三个主要选项。数据库可能是您的最佳选择。
Map
有关JavaScript中的地图的更多信息,请参见here。
专业人士
-简单又容易
-完全包含在您的代码中
缺点
-如果代码停止,所有值将被重置
示例
初始化客户端时,可以将其属性之一声明为Map,以便可以在代码的其他位置轻松访问它:
client.money = new Map();
获取用户余额:
const ID = message.author.id; // or set it as the mentioned user's ID, etc.
console.log(client.money.get(ID));
设置用户余额:
client.money.set(ID, 5);
增加用户的余额:
client.money.set(ID, client.money.get(ID) + 2);
专业人士
-单独的文件/有组织的
-甚至在代码停止运行后仍然存在
缺点
-稍微复杂些
-与DB相比,速度
示例
money.json
:
{ "userIDhere": 0 }
获取用户余额:
const money = require('./money.json'); // path may vary
const ID = message.author.id; // or set it as the mentioned user's ID, etc.
console.log(money[ID]);
设置用户余额:
money[ID] = 3;
fs.writeFileSync('./money.json', JSON.stringify(money));
增加用户的余额:
money[ID] += 8;
fs.writeFileSync('./money.json', JSON.stringify(money));
专业人士
-速度
-甚至在代码停止运行后仍然保留
-易于访问
缺点
-更困难的设置
您可以根据自己的需要选择数据库,并且每种数据库的设置和使用情况都不同。做一些最适合您的研究。