用户:
黑色中王牌查看:1 回复:5 评论:1 创建时间:2022-07-18T09:20:27
async function saveData(entity) {
if (entity.player.userKey) {
await db.sql`
INSERT INTO saveWuZi (
wood,
stone,
metal,
hide,
chitin,
flint,
metalingot,
thatch,
fiber,
crystal,
sparkpowder,
gunpowder,
obsidian,
cementingpaste,
oil,
silicapearls,
polymer,
keratin,
furs,
userKey
)
VALUES (
${entity.player.wood},
${entity.player.stone},
${entity.player.metal},
${entity.player.hide},
${entity.player.chitin},
${entity.player.flint},
${entity.player.metalingot},
${entity.player.thatch},
${entity.player.fiber},
${entity.player.crystal},
${entity.player.sparkpowder},
${entity.player.gunpowder},
${entity.player.obsidian},
${entity.player.cementingpaste},
${entity.player.oil},
${entity.player.silicapearls},
${entity.player.polymer},
${entity.player.keratin},
${entity.player.furs},
${entity.player.userKey}
)
ON CONFLICT(userKey)
DO UPDATE SET
wood = excluded.wood,
stone = excluded.stone,
metal = excluded.metal,
hide = excluded.hide,
chitin = excluded.chitin,
flint = excluded.flint,
metalingot = excluded.metalingot,
thatch = excluded.thatch,
fiber = excluded.fiber,
crystal = excluded.crystal,
sparkpowder = excluded.sparkpowder,
gunpowder = excluded.gunpowder,
obsidian = excluded.obsidian,
cementingpaste = excluded.cementingpaste,
oil = excluded.oil,
silicapearls = excluded.silicapearls,
polymer = excluded.polymer,
keratin = excluded.keratin,
furs = excluded.furs,
userKey = excluded.userKey
`
}
}
world.onPlayerLeave(async ({entity})=>{await saveData(entity);});
async function loadData(entity) {
const data = (
await (
db.sql`
SELECT * FROM saveWuZi WHERE userKey = ${entity.player.userKey} limit 1
`
)
)[0];
if (data) {
entity.player.wood = data.wood;
entity.player.stone = data.stone;
entity.player.metal = data.metal;
entity.player.hide = data.hide;
entity.player.chitin = data.chitin;
entity.player.flint = data.flint;
entity.player.metalingot = data.metalingot;
entity.player.thatch = data.thatch;
entity.player.fiber = data.fiber;
entity.player.crystal = data.crystal;
entity.player.sparkpowder = data.sparkpowder;
entity.player.gunpowder = data.gunpowder;
entity.player.obsidian = data.obsidian;
entity.player.cementingpaste = data.cementingpaste;
entity.player.oil = data.oil;
entity.player.silicapearls = data.silicapearls;
entity.player.polymer = data.polymer;
entity.player.keratin = data.keratin;
entity.player.furs = data.furs;
entity.player.directMessage('系统提示:已读取数据');
} else {
entity.player.directMessage('系统提示:你目前还没有数据,已帮你创建');
}
全部手写还有一个简单的SQL
async function savePlayer(entity) {
if (entity.player.userKey) {
await db.sql`
INSERT INTO player (
userName,
hp,
exp,
rank,
knapsack,
userKey
)
VALUES(
${entity.player.name},
${entity.hp},
${entity.exp},
${entity.rank},
${JSON.stringify(entity.knapsack)},
${entity.player.userKey}
)
ON CONFLICT(userKey)
DO UPDATE SET
userName=excluded.userName,
hp=excluded.hp,
exp=excluded.exp,
rank=excluded.rank,
knapsack=excluded.knapsack
`
}
}
async function showPlayers() {
console.clear()
const playerList = await db.sql`SELECT * FROM player`
for (const p of playerList) {
console.log(JSON.stringify(p))
}
}
async function createTable() {
await db.sql`
CREATE TABLE IF NOT EXISTS player (
hp INTEGER DEFAULT 100,
exp INTEGER DEFAULT 0,
rank INTEGER DEFAULT 0,
knapsack TEXT DEFAULT '',
userKey TEXT PRIMARY KEY UNIQUE DEFAULT ''
)
`
showPlayers()
}
async function loadPlayer(entity) {
const data = (await (db.sql`SELECT * FROM player WHERE userKey=${entity.player.userKey} limit 1`))[0]
if (data) {
entity.hp = data.hp
entity.exp = data.exp
entity.rank = data.rank
entity.knapsack = JSON.parse(data.knapsack)
}
}
async function showPlayers() {
console.clear()
const playerList = await db.sql`SELECT * FROM player`
for (const p of playerList) {
console.log(JSON.stringify(p))
}
}
async function createTable() {
await db.sql`CREATE TABLE IF NOT EXISTS player (
userName TEXT DEFAULT '',
hp INTEGER DEFAULT 100,
exp INTEGER DEFAULT 0,
rank INTEGER DEFAULT 0,
knapsack TEXT DEFAULT '',
userKey TEXT PRIMARY KEY UNIQUE DEFAULT ''
)`
showPlayers()
}
createTable()
也是手写
这两个SQL不一样但全是手写无报错
现在我觉得sql太简单了