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(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 ${(user as userData).login} registerd and logged in`); } else{ console.log(`User ${(user as userData).login} logged in`); } } else{ socket.emit("account/login", JSON.stringify(new loginResponse(false, null, null))); console.log("Login Failed"); } } socket.on('account/register', (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.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); let player = null if(result != null){ player = players.readPlayer(result.id) } emitLogin(result, player); }); }