fixed save/load

This commit is contained in:
katboi01 2024-12-02 09:51:41 +01:00
parent a17e460f50
commit a2ec6f700b
3 changed files with 14 additions and 15 deletions

View File

@ -1,6 +1,5 @@
import { game } from "../game"; import { game } from "../game";
import { userData } from "../Classes/userData"; import { userData } from "../Classes/userData";
const fs = require('fs');
export class users{ export class users{
static createUser(login, password){ static createUser(login, password){
@ -37,17 +36,17 @@ export class users{
game.accountsDB[game.accountsDB.indexOf(user)] = userNew; game.accountsDB[game.accountsDB.indexOf(user)] = userNew;
} }
static saveUsers(){ static saveUsers(fs){
game.accountsDB.forEach(user => {user.save(fs)}); game.accountsDB.forEach(user => {user.save(fs)});
} }
static loadUsers(){ static loadUsers(fs){
fs.mkdirSync(`Database/Users/`, { recursive: true }) fs.mkdirSync(`Database/Users/`, { recursive: true })
fs.readdir(`Database/Users/`, (err, files) => { fs.readdir(`Database/Users/`, (err, files) => {
files.forEach(file => { files.forEach(file => {
fs.readFile(`Database/Users/${file}`, (err, data) => { fs.readFile(`Database/Users/${file}`, (err, data) => {
if (err) throw err; if (err) throw err;
let user : userData = JSON.parse(data); let user : userData = Object.assign(new userData(-1,"",""), JSON.parse(data));
game.accountsDB.push(user); game.accountsDB.push(user);
console.log(`Loaded ${user.login}`); console.log(`Loaded ${user.login}`);
}); });

View File

@ -1,6 +1,5 @@
import { game } from "../game"; import { game } from "../game";
import { playerData } from "../Classes/playerData"; import { playerData } from "../Classes/playerData";
const fs = require('fs');
export class players{ export class players{
static createPlayer(id){ static createPlayer(id){
@ -20,11 +19,11 @@ export class players{
return player; return player;
} }
static savePlayers(){ static savePlayers(fs){
game.playersDB.forEach(player => {player.save(fs)}); game.playersDB.forEach(player => {player.save(fs)});
} }
static loadPlayers(){ static loadPlayers(fs){
fs.mkdirSync(`Database/Players/`, { recursive: true }) fs.mkdirSync(`Database/Players/`, { recursive: true })
fs.readdir(`Database/Players/`, (err, files) => { fs.readdir(`Database/Players/`, (err, files) => {
files.forEach(file => { files.forEach(file => {

View File

@ -11,6 +11,7 @@ const express = require("express");
const app = express(); const app = express();
const port = 3000; const port = 3000;
const server = require('http').Server(app); const server = require('http').Server(app);
const fs = require('fs');
server.listen(port, () => { server.listen(port, () => {
console.log(`Server listening at port ${port}`); console.log(`Server listening at port ${port}`);
@ -24,8 +25,8 @@ const io = require("socket.io")(server, {
} }
}); });
users.loadUsers(); users.loadUsers(fs);
players.loadPlayers(); players.loadPlayers(fs);
io.on('connection', (socket) => { io.on('connection', (socket) => {
console.log("Got connection!"); console.log("Got connection!");
@ -42,10 +43,10 @@ io.on('connection', (socket) => {
socket.on("disconnect", () => { socket.on("disconnect", () => {
socket.disconnect() socket.disconnect()
if(socket.hasOwnProperty("player")){ if(socket.hasOwnProperty("player")){
socket.player.save() socket.player.save(fs)
} }
if(socket.hasOwnProperty("user")){ if(socket.hasOwnProperty("user")){
socket.user.save() socket.user.save(fs)
game.lobbyState.removeUser(socket.user.id) game.lobbyState.removeUser(socket.user.id)
delete socket.user delete socket.user
} }
@ -92,8 +93,8 @@ setInterval(() => {
}, 5000) }, 5000)
setInterval(() => { setInterval(() => {
users.saveUsers(); users.saveUsers(fs);
players.savePlayers(); players.savePlayers(fs);
}, 1000 * 60 * 60 * 12) //twice a day }, 1000 * 60 * 60 * 12) //twice a day
process.on('uncaughtException', function (err) { process.on('uncaughtException', function (err) {
@ -105,7 +106,7 @@ process.on('SIGINT', function () {
process.exit(2); process.exit(2);
}); });
process.on('exit', function () { process.on('exit', function () {
users.saveUsers(); users.saveUsers(fs);
players.savePlayers(); players.savePlayers(fs);
console.log("exitted"); console.log("exitted");
}); });