如何让Discord.js机器人为每个用户记录变量

时间:2019-05-26 10:45:15

标签: javascript node.js discord discord.js

我正在创建一个类似于Pokecord的discord机器人,并希望为每个用户记录1个或多个变量。我正在使用Discord.js,JavaScript和Node.js。 这可能吗?

4 个答案:

答案 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)

要为每个用户存储某个值或变量,您有三个主要选项。数据库可能是您的最佳选择。

1。声明一个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);

2。 json文件

专业人士
-单独的文件/有组织的
-甚至在代码停止运行后仍然存在

缺点
-稍微复杂些
-与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));

3。数据库

专业人士
-速度
-甚至在代码停止运行后仍然保留
-易于访问

缺点
-更困难的设置

您可以根据自己的需要选择数据库,并且每种数据库的设置和使用情况都不同。做一些最适合您的研究。