You've already forked KF-MMO-Server
Connectivity optimization
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
import { game } from "../game";
|
||||
|
||||
export function clearRoom(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : string = JSON.parse(buff.toString('utf-8'));
|
||||
|
||||
let room = game.lobbyState.roomComplete(data1)
|
||||
game.socketIO.emit("lobby/cleared", JSON.stringify(room))
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
import { roomChangeData as roomChangeRequest } from "../Classes/roomChangeRequest";
|
||||
import { roomChangeResponse } from "../Classes/roomChangeResponse";
|
||||
import { game } from "../game";
|
||||
|
||||
export function enter(socket, data){
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : roomChangeRequest = JSON.parse(buff.toString('utf-8'));
|
||||
|
||||
socket.join(data1.targetRoom.id)
|
||||
let newRoom = game.lobbyState.roomEnter(data1.targetRoom, socket.player)
|
||||
socket.player.room = newRoom.id
|
||||
|
||||
socket.leave(data1.previousRoom)
|
||||
let oldRoom = game.lobbyState.roomExit(data1.previousRoom, socket.player)
|
||||
|
||||
let data2 = new roomChangeResponse()
|
||||
data2.player = socket.player.copyLight()
|
||||
data2.newRoom = newRoom.copyLight()
|
||||
data2.previousRoom = oldRoom.copyLight()
|
||||
|
||||
game.socketIO.emit("lobby/entered", JSON.stringify(data2))
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import { playerData } from "../Classes/playerData";
|
||||
import { game } from "../game";
|
||||
|
||||
export function loadoutChanged(socket, data){
|
||||
if(!socket.hasOwnProperty("user")) return;
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : playerData = JSON.parse(buff.toString('utf-8'));
|
||||
@@ -12,5 +12,5 @@ export function loadoutChanged(socket, data){
|
||||
player.inventory.equipment = data1.inventory.equipment
|
||||
player.validateEquipment()
|
||||
|
||||
game.socketIO.emit("lobby/loadoutChanged", JSON.stringify(player))
|
||||
socket.emit("lobby/loadoutChanged", JSON.stringify(player.copyInventory()))
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import { lobbyJoin } from "../Classes/Incoming/lobbyJoin";
|
||||
import { levelState } from "../Classes/levelState";
|
||||
import { lobbyMessage } from "../Classes/lobbyMessage";
|
||||
import { playerData } from "../Classes/playerData";
|
||||
@@ -5,32 +6,36 @@ import { userData } from "../Classes/userData";
|
||||
import { game } from "../game";
|
||||
|
||||
export function playerJoin(socket, data){
|
||||
if(!socket.hasOwnProperty("user")) return;
|
||||
if(!socket.hasOwnProperty("player")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : playerData = JSON.parse(buff.toString('utf-8'));
|
||||
let data1 : lobbyJoin = JSON.parse(buff.toString('utf-8'));
|
||||
let player : playerData = socket.player
|
||||
|
||||
socket.player.characterId = data1.characterId
|
||||
game.lobbyState.addUser(socket.user, socket.player)
|
||||
|
||||
let newUser = {users:[userData.makeSafe(socket.user)], players:[socket.player], rooms:[]};
|
||||
let existingUsers = {users:game.lobbyState.users.map(u=> userData.makeSafe(u)), players:[], rooms:[]}
|
||||
|
||||
game.lobbyState.players.forEach(player=>{
|
||||
if(player.id == socket.player.id){
|
||||
existingUsers.players.push(player)
|
||||
}
|
||||
else{
|
||||
let newPlayer = Object.assign({}, player);
|
||||
delete(newPlayer.inventory)
|
||||
existingUsers.players.push(newPlayer)
|
||||
}
|
||||
})
|
||||
|
||||
let room = game.lobbyState.roomEnter(new levelState("0_0", -1), socket.player)
|
||||
existingUsers.rooms = game.lobbyState.rooms
|
||||
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)
|
||||
socket.join("0_0")
|
||||
|
||||
let newUser = {
|
||||
users:[userData.makeSafe(socket.user)],
|
||||
players:[player.copyStart()],
|
||||
rooms:[]
|
||||
};
|
||||
let existingUsers = {
|
||||
users:game.lobbyState.users.map(u=> userData.makeSafe(u)),
|
||||
players:game.lobbyState.players.map(p=>p.copyStart()),
|
||||
rooms:[]
|
||||
}
|
||||
|
||||
game.lobbyState.rooms.forEach(room=>{
|
||||
if(room == spawnRoom)
|
||||
existingUsers.rooms.push(spawnRoom.copyStart())
|
||||
else
|
||||
existingUsers.rooms.push(room.copyState())
|
||||
})
|
||||
|
||||
//send only player to all existing players
|
||||
socket.broadcast.emit("lobby/playerJoin", JSON.stringify(newUser));
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
import { playerData } from "../Classes/playerData";
|
||||
|
||||
export function playerUpdate(socket, data){
|
||||
if(!socket.hasOwnProperty("user")) return;
|
||||
|
||||
let buff = Buffer.from(data, 'base64');
|
||||
let data1 : playerData = JSON.parse(buff.toString('utf-8'));
|
||||
|
||||
let player : playerData = socket.player
|
||||
if(player == null){
|
||||
console.log("Error! Player not spawned!")
|
||||
return
|
||||
}
|
||||
|
||||
player.room = data1.room
|
||||
player.rigidbody = data1.rigidbody
|
||||
player.damageInfo = player.damageInfo.concat(data1.damageInfo)
|
||||
}
|
||||
@@ -1,27 +1,12 @@
|
||||
import { clearRoom } from "./_clearRoom";
|
||||
import { enter } from "./_enter";
|
||||
import { loadoutChanged } from "./_loadoutChanged";
|
||||
import { message } from "./_message";
|
||||
import { playerJoin } from "./_playerJoin";
|
||||
import { playerUpdate } from "./_playerUpdate";
|
||||
|
||||
export function registerLobbyCallbacks(socket){
|
||||
socket.on('lobby/enter', (data) => {
|
||||
enter(socket, data)
|
||||
});
|
||||
|
||||
socket.on('lobby/cleared', (data) => {
|
||||
clearRoom(socket, data)
|
||||
});
|
||||
|
||||
socket.on('lobby/playerJoin', (data) => {
|
||||
playerJoin(socket, data)
|
||||
});
|
||||
|
||||
socket.on('lobby/playerUpdate', (data) => {
|
||||
playerUpdate(socket, data)
|
||||
});
|
||||
|
||||
socket.on('lobby/loadoutChanged', (data) => {
|
||||
loadoutChanged(socket, data)
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user