如何在discord服务器中存储每个不和谐用户的数据?

时间:2018-01-15 03:49:30

标签: javascript node.js discord.js

我想存储每个玩家所拥有的金额,但我无法弄清楚如何为服务器中的每个不和谐用户设置自定义变量。任何形式的帮助都会有用,谢谢。

2 个答案:

答案 0 :(得分:2)

必需的相关性: sqlite

考虑到这个问题非常笼统,我会给出一个相当一般性答案。知道你正在使用 discord.js ......

您可以通过创建sqlite数据库来实现目标。 注意:这不涉及变量。为此,您必须要求sqlite作为依赖项:

const sql = require("sqlite");

完成此操作后,您可以创建文件,数据库将位于:

sql.open("./database.sqlite")

之后,您将为用户设置表格:

sql.run("CREATE TABLE IF NOT EXISTS userData (userId TEXT, money INTEGER)").then(() => {
    sql.run("INSERT INTO userData (userId, money) VALUES (?, ?)", [<user id object here>, 0]);
});

这将创建一个数据库,您可以使用该数据库存储公会中每个用户的信息。

之后更新余额请遵循以下格式(示例):

sql.get(`SELECT * FROM userData WHERE userId = ${msg.author.id}`).then(row => { //the row is the user's data
    if(!row) { //if the user is not in the database
      sql.run("INSERT INTO userData (userId, money) VALUES (?, ?)", [`${guildId}`, <user id object here>, 0]); //let's just insert them
      msg.channel.send("Registered.")
    } else { //if the user is in the database
      sql.run(`UPDATE userData SET money = ${row.money + 100} WHERE guild = ${msg.guild.id}`)
    }
});

如果提供的代码存在问题或错误,请随时发表评论或与我联系:)

答案 1 :(得分:1)

对象/词典非常适合这种情况。您可以使用userId为每个用户创建一个对象并创建条目。

var bankBalances = {};
bankBalances[pruina.id] = 5;
bankBalances[ekw.id] = 3;

虽然当然不知道你正在使用的库,但我只能给你伪代码。