From 9815451242ecdf53c2e0fe4189f5cf485271ec51 Mon Sep 17 00:00:00 2001 From: G1xb17 Date: Fri, 15 Aug 2025 15:18:05 -0230 Subject: [PATCH 1/3] Packet data length bug fix in client.js Either `(buffer[1] << 8 + buffer[2]) + 3` or The Commit made would fix this error Some packets seem to be getting munged due to the fact that (buffer[1] << 8) | (buffer[2] + 3) can turn out a lot different than (buffer[1] << 8 + buffer[2] + 3) due to the bitwise or operation resulting in a different length because of overlapping bits. --- src/client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client.js b/src/client.js index 0694721..bdfa10e 100644 --- a/src/client.js +++ b/src/client.js @@ -153,7 +153,7 @@ export default class { let buffer = Buffer.concat(this.incomingBuffers.splice(0)); while (buffer.length > 3 && buffer[0] === 0xAA) { - const length = buffer[1] << 8 | buffer[2] + 3; + const length = buffer[1] << 8 + buffer[2] + 3; if (length > buffer.length) { this.incomingBuffers.push(buffer); From f06932544cb0dda8b517e69f08f3d5f4f8d321f4 Mon Sep 17 00:00:00 2001 From: g1xb17 Date: Fri, 15 Aug 2025 19:38:06 -0230 Subject: [PATCH 2/3] Logging should be optional though --- src/client.js | 12 ++++++++---- src/packet-handlers.js | 22 ++++++++++++++++------ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/client.js b/src/client.js index bdfa10e..cf412b2 100644 --- a/src/client.js +++ b/src/client.js @@ -20,6 +20,7 @@ export default class { this.didSendVersion = false; this.logOutgoing = false; this.logIncoming = false; + this.logDebugging = false; this.incomingBuffers = []; this.events = new EventEmitter(); this.events.on(0x00, packetHandlers.encryption) @@ -43,7 +44,9 @@ export default class { } this.server = getServerFromAddress(address, port); - console.log(`Connecting to ${this.server.name}...`); + if (this.logDebugging) { + console.log(`Connecting to ${this.server.name}...`); + } const socket = new net.Socket(); socket.on('data', this.receive.bind(this)); @@ -59,7 +62,7 @@ export default class { }); } - disconnect(socket=this.socket) { + disconnect(socket = this.socket) { socket.destroy(); } @@ -81,8 +84,9 @@ export default class { } logIn() { - console.log(`Logging in as ${this.username}...`); - + if (this.logDebugging) { + console.log(`Logging in as ${this.username}...`); + } const key1 = random(0xFF); const key2 = random(0xFF); let clientId = random(0xFFFFFFFF); diff --git a/src/packet-handlers.js b/src/packet-handlers.js index 2fc9497..48ebad2 100644 --- a/src/packet-handlers.js +++ b/src/packet-handlers.js @@ -10,7 +10,9 @@ export default { if (code === 1) { client.appVersion -= 1; - console.log(`Invalid DA version, possibly too high. Trying again with ${client.appVersion}.`); + if (this.logDebugging) { + console.log(`Invalid DA version, possibly too high. Trying again with ${client.appVersion}.`); + } client.reconnect(); return; } @@ -19,7 +21,9 @@ export default { packet.readByte(); packet.readString8(); // patch url client.appVersion = version; - console.log(`Your DA version is too low. Setting DA version to ${version}.`); + if (this.logDebugging) { + console.log(`Your DA version is too low. Setting DA version to ${version}.`); + } client.reconnect(); return; } @@ -46,12 +50,16 @@ export default { case 3: // Invalid name or password case 14: // Name does not exist case 15: // Incorrect password - console.log(`${message}.`); + if (this.logDebugging) { + console.log(`${message}.`); + } client.disconnect(); break; default: - console.log(message, `(code ${code})`); - console.log('Log in failed. Retrying...'); + if (this.logDebugging) { + console.log(message, `(code ${code})`); + console.log('Log in failed. Retrying...'); + } setTimeout(() => client.reconnect(), 1000) } }, @@ -80,7 +88,9 @@ export default { }, userId(packet, client) { - console.log(`Logged into ${client.server.name} as ${client.username}.`); + if (this.logDebugging) { + console.log(`Logged into ${client.server.name} as ${client.username}.`); + } client.send(new Packet(0x2D)); }, From 94100637abfc29c6d043282b2fe5911217d7dd35 Mon Sep 17 00:00:00 2001 From: g1xb17 Date: Fri, 15 Aug 2025 19:53:06 -0230 Subject: [PATCH 3/3] Order of operations mistake --- src/client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client.js b/src/client.js index cf412b2..7042b14 100644 --- a/src/client.js +++ b/src/client.js @@ -157,7 +157,7 @@ export default class { let buffer = Buffer.concat(this.incomingBuffers.splice(0)); while (buffer.length > 3 && buffer[0] === 0xAA) { - const length = buffer[1] << 8 + buffer[2] + 3; + const length = (buffer[1] << 8 | buffer[2]) + 3; if (length > buffer.length) { this.incomingBuffers.push(buffer);