如何在 discord 服务器中为每个 discord 用户存储数据?
How to you store data for each discord user in the discord server?
我想存储每个玩家拥有的金额,但我不知道如何为服务器中的每个不和谐用户创建一个自定义变量。任何形式的帮助都会有用,谢谢。
Objects/Dictionaries 非常适合这种情况。您可以创建一个对象并使用每个用户的用户 ID 创建条目。
var bankBalances = {};
bankBalances[pruina.id] = 5;
bankBalances[ekw.id] = 3;
当然不知道你使用的库,我只能给你伪代码。
所需的依赖项: sqlite
考虑到这个问题很笼统,我会给出一个相当笼统的回答。知道您正在使用 discord.js ...
完成目标的一种方法是创建 sqlite
数据库。 注意:这不涉及变量。为此,您必须要求 sqlite
作为依赖项:
const sql = require("sqlite");
完成此操作后,您可以创建文件,数据库将位于:
sql.open("./database.sqlite")
之后,您将为用户设置 table:
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}`)
}
});
如果提供的代码有问题或错误,请随时发表评论或与我联系:)
我想存储每个玩家拥有的金额,但我不知道如何为服务器中的每个不和谐用户创建一个自定义变量。任何形式的帮助都会有用,谢谢。
Objects/Dictionaries 非常适合这种情况。您可以创建一个对象并使用每个用户的用户 ID 创建条目。
var bankBalances = {};
bankBalances[pruina.id] = 5;
bankBalances[ekw.id] = 3;
当然不知道你使用的库,我只能给你伪代码。
所需的依赖项: sqlite
考虑到这个问题很笼统,我会给出一个相当笼统的回答。知道您正在使用 discord.js ...
完成目标的一种方法是创建 sqlite
数据库。 注意:这不涉及变量。为此,您必须要求 sqlite
作为依赖项:
const sql = require("sqlite");
完成此操作后,您可以创建文件,数据库将位于:
sql.open("./database.sqlite")
之后,您将为用户设置 table:
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}`)
}
});
如果提供的代码有问题或错误,请随时发表评论或与我联系:)