import { game } from "../game"; import { userData } from "./userData"; const fs = require('fs'); export class users{ static createUser(login, password){ if(game.accountsDB.filter(u=>u.Login == login)[0] != undefined){ console.log(`User ${login} alread exists`); return null; } var user = new userData(game.accountsDB.length, login, password); game.accountsDB.push(user); return user; } static readUser(login, password){ let user = game.accountsDB.filter(u=>u.Login == login && u.Password == password)[0]; if(user != undefined){ return user; } return null; } static readUserID(id : number){ let user = game.accountsDB.filter(u=>u.Id == id)[0]; return user; } static updateUser(userNew : userData){ let user = this.readUserID(userNew.Id); let sum = Math.floor(Math.random() * 99999); while(sum == userNew.Checksum){ sum = Math.floor(Math.random() * 99999); } userNew.Checksum = sum; game.accountsDB[game.accountsDB.indexOf(user)] = userNew; } static saveUsers(){ game.accountsDB.forEach(user => { let data = JSON.stringify(user, null, 2); fs.writeFileSync(`Database/Users/${user.Id}_${user.Login}.json`, data); }); } static loadUsers(){ fs.readdir(`Database/Users/`, (err, files) => { files.forEach(file => { fs.readFile(`Database/Users/${file}`, (err, data) => { if (err) throw err; let user = JSON.parse(data); game.accountsDB.push(user); console.log(`Loaded ${user.Login}`); }); }); }); } }