You've already forked KF-MMO-Server
Backend refactor, player-user decoupling
This commit is contained in:
@@ -1,21 +1,24 @@
|
||||
import { game } from "../game";
|
||||
import { loginResponse } from "../Classes/loginResponse";
|
||||
import { playerData } from "../Classes/playerData";
|
||||
import { userData } from "../Classes/userData";
|
||||
import { users } from "./users";
|
||||
import { players } from "../Player/players";
|
||||
|
||||
export function registerAccountCallbacks(socket){
|
||||
function emitLogin(result : userData, registered:boolean = false){
|
||||
if(result != null){
|
||||
socket.emit("account/login", JSON.stringify(userData.makeSafe(result, socket.id)));
|
||||
socket.user = result
|
||||
function emitLogin(user : userData, player:playerData, registered:boolean = false){
|
||||
if(user != null){
|
||||
socket.emit("account/login", JSON.stringify(new loginResponse(true, user, player)));
|
||||
socket.user = user
|
||||
socket.player = player
|
||||
if(registered){
|
||||
console.log(`User ${(result as userData).login} registerd and logged in`);
|
||||
console.log(`User ${(user as userData).login} registerd and logged in`);
|
||||
}
|
||||
else{
|
||||
console.log(`User ${(result as userData).login} logged in`);
|
||||
console.log(`User ${(user as userData).login} logged in`);
|
||||
}
|
||||
}
|
||||
else{
|
||||
socket.emit("account/login", "");
|
||||
socket.emit("account/login", JSON.stringify(new loginResponse(false, null, null)));
|
||||
console.log("Login Failed");
|
||||
}
|
||||
}
|
||||
@@ -24,17 +27,27 @@ export function registerAccountCallbacks(socket){
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let json : userData = JSON.parse(buff.toString('utf-8'));
|
||||
if (!json.login || !json.password) return
|
||||
let result = users.createUser(json.login, json.password);
|
||||
|
||||
emitLogin(result, true);
|
||||
let result = users.createUser(json.login, json.password);
|
||||
let player = null
|
||||
if(result != null){
|
||||
player = players.createPlayer(result.id)
|
||||
}
|
||||
|
||||
emitLogin(result, player);
|
||||
});
|
||||
|
||||
socket.on('account/login', (data) => {
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let json : userData = JSON.parse(buff.toString('utf-8'));
|
||||
if (!json.login || !json.password) return
|
||||
let result = users.readUser(json.login, json.password);
|
||||
|
||||
emitLogin(result);
|
||||
let result = users.readUser(json.login, json.password);
|
||||
let player = null
|
||||
if(result != null){
|
||||
player = players.readPlayer(result.id)
|
||||
}
|
||||
|
||||
emitLogin(result, player);
|
||||
});
|
||||
}
|
||||
@@ -45,20 +45,13 @@ export class users{
|
||||
}
|
||||
|
||||
static loadUsers(){
|
||||
let maxItemId = 0;
|
||||
fs.mkdirSync(`Database/Users/`, { recursive: true })
|
||||
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);
|
||||
let user : userData = JSON.parse(data);
|
||||
game.accountsDB.push(user);
|
||||
if(user.playerData != null){
|
||||
user.playerData.inventory.items.forEach(i=>{
|
||||
if(i.id > maxItemId){
|
||||
game.itemCount = maxItemId = i.id
|
||||
}
|
||||
})
|
||||
}
|
||||
console.log(`Loaded ${user.login}`);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user