fixed removing users from session

fixed client positions not updating
This commit is contained in:
katboi01 2025-07-13 21:22:29 +02:00
parent 0a40a8ce5d
commit 96d4c30126
4 changed files with 21 additions and 28 deletions

View File

@ -65,7 +65,6 @@ export class levelState{
removePlayer(player : characterData) : boolean{ removePlayer(player : characterData) : boolean{
this.players = this.players.filter(p=> p !== player) this.players = this.players.filter(p=> p !== player)
if(this.hostId == player.id){ if(this.hostId == player.id){
if(this.players.length > 0){ if(this.players.length > 0){
this.hostId = this.players[0].id this.hostId = this.players[0].id

View File

@ -3,8 +3,6 @@ import { levelUpdateClient } from "../Classes/Incoming/levelUpdateClient.js";
import { characterData } from "../Classes/characterData.js"; import { characterData } from "../Classes/characterData.js";
export function playerUpdate(socket : Socket, data){ export function playerUpdate(socket : Socket, data){
if(socket.user != null) return;
let buff = Buffer.from(data, 'base64'); let buff = Buffer.from(data, 'base64');
let data1 : levelUpdateClient = JSON.parse(buff.toString('utf-8')); let data1 : levelUpdateClient = JSON.parse(buff.toString('utf-8'));
@ -13,7 +11,7 @@ export function playerUpdate(socket : Socket, data){
console.log("Error! Player not spawned!") console.log("Error! Player not spawned!")
return return
} }
character.rigidbody = data1.player.rigidbody character.rigidbody = data1.player.rigidbody
if(data1.player.hasOwnProperty("damageInfo")) if(data1.player.hasOwnProperty("damageInfo"))
character.damageInfo = character.damageInfo.concat(data1.player.damageInfo) character.damageInfo = character.damageInfo.concat(data1.player.damageInfo)

View File

@ -31,8 +31,4 @@ export class game{
} }
return item return item
} }
static removeUser(socket : Socket) : void {
this.lobbyState.activeUsers = this.lobbyState.activeUsers.filter(u => u !== socket)
}
} }

View File

@ -48,7 +48,7 @@ io.on('connection', (socket : SocketExtended) => {
if(socket.character != null){ if(socket.character != null){
characters.savePlayer(db, socket.character) characters.savePlayer(db, socket.character)
} }
game.removeUser(socket) game.lobbyState.removeUser(socket)
console.log(socket.id + " disconnected"); console.log(socket.id + " disconnected");
}); });
@ -71,25 +71,25 @@ setInterval(async () => {
} }
}, 1000/30) }, 1000/30)
// setInterval(() => { setInterval(() => {
// let lobbyState = game.lobbyState let lobbyState = game.lobbyState
// console.clear() console.clear()
// console.log("Players:") console.log("Players:")
// for(let i = 0; i < lobbyState.activeUsers.length; i++){ for(let i = 0; i < lobbyState.activeUsers.length; i++){
// console.log(lobbyState.activeUsers[i].user.login + " " + lobbyState.activeUsers[i].character.room) console.log(lobbyState.activeUsers[i].user.login + " " + lobbyState.activeUsers[i].character.room)
// } }
// console.log("Rooms:") console.log("Rooms:")
// for(let i = 0; i < lobbyState.rooms.length; i++){ for(let i = 0; i < lobbyState.rooms.length; i++){
// console.log(lobbyState.rooms[i].id + " " + lobbyState.rooms[i].hostId) console.log(lobbyState.rooms[i].id + " " + lobbyState.rooms[i].hostId)
// lobbyState.rooms[i].objects.forEach(object => { lobbyState.rooms[i].objects.forEach(object => {
// console.log("\t" + object.id + ": " + JSON.stringify(object.rigidbody)) console.log("\t" + object.id + ": " + JSON.stringify(object.rigidbody))
// }); });
// } }
// console.log("Dungeon:") console.log("Dungeon:")
// for(let i = 0; i < lobbyState.dungeons.length; i++){ for(let i = 0; i < lobbyState.dungeons.length; i++){
// console.log(lobbyState.dungeons[i].entranceId + " " + lobbyState.dungeons[i].playerCount) console.log(lobbyState.dungeons[i].entranceId + " " + lobbyState.dungeons[i].playerCount)
// } }
// }, 5000) }, 5000)
process.on('uncaughtException', function (err) { process.on('uncaughtException', function (err) {
console.log('Caught exception: ', err); console.log('Caught exception: ', err);