KF-MMO-Server/Account/accountSocket.ts

56 lines
1.9 KiB
TypeScript
Raw Normal View History

import { loginResponse } from "../Classes/loginResponse";
import { playerData } from "../Classes/playerData";
2023-09-16 05:42:42 +08:00
import { userData } from "../Classes/userData";
2023-09-14 16:59:21 +08:00
import { users } from "./users";
import { players } from "../Player/players";
2023-09-14 16:59:21 +08:00
export function registerAccountCallbacks(socket){
2023-09-18 18:33:06 +08:00
function emitLogin(user : userData | null, 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
2023-09-14 16:59:21 +08:00
if(registered){
console.log(`User ${(user as userData).login} registerd and logged in`);
2023-09-14 16:59:21 +08:00
}
else{
console.log(`User ${(user as userData).login} logged in`);
2023-09-14 16:59:21 +08:00
}
}
2023-09-15 04:49:31 +08:00
else{
socket.emit("account/login", JSON.stringify(new loginResponse(false, null, null)));
2023-09-15 04:49:31 +08:00
console.log("Login Failed");
}
2023-09-14 16:59:21 +08:00
}
socket.on('account/register', (data) => {
let buff = Buffer.from(data, 'base64');
2023-09-16 05:42:42 +08:00
let json : userData = JSON.parse(buff.toString('utf-8'));
if (!json.login || !json.password) return
2023-09-16 05:42:42 +08:00
let result = users.createUser(json.login, json.password);
let player = null
if(result != null){
player = players.createPlayer(result.id)
}
2023-09-14 16:59:21 +08:00
emitLogin(result, player);
2023-09-14 16:59:21 +08:00
});
socket.on('account/login', (data) => {
let buff = Buffer.from(data, 'base64');
2023-09-16 05:42:42 +08:00
let json : userData = JSON.parse(buff.toString('utf-8'));
if (!json.login || !json.password) return
2023-09-16 05:42:42 +08:00
let result = users.readUser(json.login, json.password);
let player = null
if(result != null){
player = players.readPlayer(result.id)
2023-09-18 18:33:06 +08:00
if(player == null){
player = players.createPlayer(result.id)
}
}
2023-09-14 16:59:21 +08:00
emitLogin(result, player);
2023-09-14 16:59:21 +08:00
});
}