【问题标题】:How to you store data for each discord user in the discord server?如何在不和谐服务器中存储每个不和谐用户的数据?
【发布时间】:2018-06-23 17:08:00
【问题描述】:

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

【问题讨论】:

  • 您知道一些代码会很好,因为如果您不尝试解决问题,我们将无法帮助您。

标签: javascript node.js discord.js


【解决方案1】:

必需的依赖项: 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}`)
    }
});

如果提供的代码有问题或错误,请随时评论或联系我:)

【讨论】:

  • 我更喜欢对象/字典,因为它更简单,但这也有效。谢谢!
  • 当我尝试创建 database.sqlite 时,它​​会将它变成一个文本文件。我需要下载什么才能注册为 sqlite 文件?
【解决方案2】:

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

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

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

【讨论】:

  • 我正在使用 discord.js 库。
猜你喜欢
  • 2020-11-24
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 2020-08-16
  • 2018-03-20
  • 2020-10-20
  • 2018-08-28
  • 2020-05-25
相关资源
最近更新 更多