KF-MMO-Server/Characters/characters.ts

29 lines
1.2 KiB
TypeScript

import { characterData } from "../Classes/characterData.js";
import { DatabaseController } from "../Database/dbcontroller.js";
export class characters{
static async createCharacter(db: DatabaseController, userId : number){
await db.run('INSERT INTO characters (user_id) VALUES (?)', [userId]);
return await this.readCharacter(db, userId)
}
static async readCharacter(db: DatabaseController, userId : number): Promise<characterData>{
let player = await db.select(`SELECT * FROM characters WHERE user_id = ? LIMIT 1`, [userId])
if (player.length > 0){
let row = player[0]
return new characterData({
...row,
inventory: row.inventory ? JSON.parse(row.inventory) : undefined,
questBook: row.questBook ? JSON.parse(row.questBook) : undefined,
})
}
else{
return null
}
}
static async savePlayer(db: DatabaseController, data: characterData){
await db.run(`UPDATE characters SET (inventory, questBook) VALUES (?,?) WHERE id = ?`,
[JSON.stringify(data.inventory), JSON.stringify(data.questBook), data.id])
}
}