You've already forked KF-MMO-Server
further refactor
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
import { playerData } from "../Classes/playerData.js";
|
||||
import { Socket } from "socket.io";
|
||||
import { characterData } from "../Classes/characterData.js";
|
||||
import { game } from "../game.js";
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
|
||||
export function loadoutChanged(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
export function loadoutChanged(socket : Socket, data){
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : playerData = JSON.parse(buff.toString('utf-8'));
|
||||
let data1 : characterData = JSON.parse(buff.toString('utf-8'));
|
||||
|
||||
let player : playerData = socket.player
|
||||
player.inventory.weapon = data1.inventory.weapon
|
||||
player.inventory.equipment = data1.inventory.equipment
|
||||
player.validateEquipment()
|
||||
let character : characterData = socket.character
|
||||
character.inventory.weapon = data1.inventory.weapon
|
||||
character.inventory.equipment = data1.inventory.equipment
|
||||
character.validateEquipment()
|
||||
|
||||
socket.emit("lobby/loadoutChanged", JSON.stringify(player.copyInventory()))
|
||||
socket.emit(Endpoints.LoadoutChanged, JSON.stringify(character.copyInventory()))
|
||||
}
|
||||
@@ -1,46 +1,50 @@
|
||||
import { lobbyJoin } from "../Classes/Incoming/lobbyJoin.js";
|
||||
import { levelState } from "../Classes/levelState.js";
|
||||
import { lobbyMessage } from "../Classes/lobbyMessage.js";
|
||||
import { playerData } from "../Classes/playerData.js";
|
||||
import { characterData } from "../Classes/characterData.js";
|
||||
import { userData } from "../Classes/userData.js";
|
||||
import { game } from "../game.js";
|
||||
import { Socket } from "socket.io";
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
|
||||
export function playerJoin(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
export function playerJoin(socket : Socket, data){
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : lobbyJoin = JSON.parse(buff.toString('utf-8'));
|
||||
let player : playerData = socket.player
|
||||
let character : characterData = socket.character
|
||||
|
||||
player.room = "0_0"
|
||||
player.characterId = data1.player.characterId
|
||||
game.lobbyState.addUser(socket.user, player)
|
||||
let spawnRoom = game.lobbyState.roomEnter(new levelState("0_0", -1), player)
|
||||
console.log(character)
|
||||
|
||||
character.room = "0_0"
|
||||
character.characterId = data1.player.characterId
|
||||
game.lobbyState.addUser(socket)
|
||||
let spawnRoom = game.lobbyState.roomEnter(new levelState("0_0", -1), character)
|
||||
socket.join("0_0")
|
||||
|
||||
let newUser = {
|
||||
users:[userData.makeSafe(socket.user)],
|
||||
players:[player.copyStart()],
|
||||
users:[socket.user.makeSafe()],
|
||||
players:[character.copyStart()],
|
||||
rooms:[]
|
||||
};
|
||||
let existingUsers = {
|
||||
users:game.lobbyState.users.map(u=> userData.makeSafe(u)),
|
||||
players:game.lobbyState.players.map(p=>p.copyStart()),
|
||||
rooms:[]
|
||||
users:game.lobbyState.activeUsers.map(u=> u.user.makeSafe()),
|
||||
players:game.lobbyState.activeUsers.map(p=>p.character.copyStart()),
|
||||
rooms:game.lobbyState.rooms.map(room=>{
|
||||
if(room == spawnRoom)
|
||||
return spawnRoom.copyStart()
|
||||
else
|
||||
return room.copyState()
|
||||
})
|
||||
}
|
||||
|
||||
game.lobbyState.rooms.forEach(room=>{
|
||||
if(room == spawnRoom)
|
||||
existingUsers.rooms.push(spawnRoom.copyStart())
|
||||
else
|
||||
existingUsers.rooms.push(room.copyState())
|
||||
})
|
||||
|
||||
console.log(spawnRoom)
|
||||
console.log(spawnRoom.copyStart())
|
||||
console.log(existingUsers)
|
||||
|
||||
//send only player to all existing players
|
||||
socket.broadcast.emit("lobby/playerJoin", JSON.stringify(newUser));
|
||||
socket.broadcast.emit(Endpoints.PlayerJoin, JSON.stringify(newUser));
|
||||
|
||||
//send all users to player (including player)
|
||||
socket.emit("lobby/playerJoin", JSON.stringify(existingUsers))
|
||||
socket.emit(Endpoints.PlayerJoin, JSON.stringify(existingUsers))
|
||||
|
||||
game.addMessage(new lobbyMessage(socket.user.login + " joined"))
|
||||
}
|
||||
@@ -1,17 +1,18 @@
|
||||
import { Endpoints } from "../endpoints.js";
|
||||
import { loadoutChanged } from "./_loadoutChanged.js";
|
||||
import { message } from "./_message.js";
|
||||
import { playerJoin } from "./_playerJoin.js";
|
||||
|
||||
export function registerLobbyCallbacks(socket){
|
||||
socket.on('lobby/playerJoin', (data) => {
|
||||
socket.on(Endpoints.PlayerJoin, (data) => {
|
||||
playerJoin(socket, data)
|
||||
});
|
||||
|
||||
socket.on('lobby/loadoutChanged', (data) => {
|
||||
socket.on(Endpoints.LoadoutChanged, (data) => {
|
||||
loadoutChanged(socket, data)
|
||||
});
|
||||
|
||||
socket.on('lobby/message', (data) => {
|
||||
socket.on(Endpoints.Message, (data) => {
|
||||
message(socket, data)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user