From 888782c2a99ece5f20778468cd8db761d62d1415 Mon Sep 17 00:00:00 2001 From: sophie Date: Fri, 3 May 2024 20:46:05 +0300 Subject: [PATCH] fix some bugs --- classes/Server.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/classes/Server.ts b/classes/Server.ts index 660a695..62c5011 100644 --- a/classes/Server.ts +++ b/classes/Server.ts @@ -39,18 +39,20 @@ export class Server { hostname: process.env.HOST || "127.0.0.1", port: +process.env.PORT!, socket: { - data: (socket, data) => { + data: async (socket, data) => { if(socket.data.dataBuffer) { - const newBuffer = Buffer.concat([socket.data.dataBuffer, data]); + const newBuffer = Buffer.concat([socket.data.dataBuffer, data]); socket.data.dataBuffer = newBuffer; } else { socket.data.dataBuffer = data; } log.debug("Socket", socket.remoteAddress, "has", socket.data.dataBuffer.length, "data for parsing."); + if(config.debug) await new Promise(r => setTimeout(r, 100)); + const parseBuffer = () => { if(!socket.data.dataBuffer) return; - + if(socket.data.dataBuffer.length == 0) return; const packetId = socket.data.dataBuffer.readUint8(0); const packetLength = this.lengthMap.get(packetId); if(!packetLength) { @@ -59,12 +61,15 @@ export class Server { }; if(socket.data.dataBuffer.byteLength < packetLength) return; - this.handlePacket(socket.data.dataBuffer.subarray(1), packetId, socket); + this.handlePacket(socket.data.dataBuffer.copyWithin(0, 1, packetLength+1), packetId, socket); + log.debug("Parsed packet", packetId, "with packet length", packetLength) + socket.data.dataBuffer = socket.data.dataBuffer.subarray(packetLength+1); parseBuffer(); } + parseBuffer(); }, open: (socket) => { @@ -318,6 +323,7 @@ export class Server { } if (pluginAnswer.some((e) => e == true)) { + console.log(world.size, position) PacketDefinitions.setBlock(position, world.getBlock(position), player); return; }