diff --git a/.idea/misc.xml b/.idea/misc.xml index c0de29d..4e3cbfe 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -9,6 +9,18 @@ + + + + + + + + + + + + diff --git a/LaunchServer/source/response/update/UpdateListResponse.java b/LaunchServer/source/response/update/UpdateListResponse.java index 08e38d6..5f1c44b 100644 --- a/LaunchServer/source/response/update/UpdateListResponse.java +++ b/LaunchServer/source/response/update/UpdateListResponse.java @@ -1,6 +1,5 @@ package launchserver.response.update; -import java.util.Map; import java.util.Map.Entry; import java.util.Set; diff --git a/Launcher/source/client/ServerPinger.java b/Launcher/source/client/ServerPinger.java index 2755f1e..50733e2 100644 --- a/Launcher/source/client/ServerPinger.java +++ b/Launcher/source/client/ServerPinger.java @@ -145,11 +145,15 @@ output.writeVarInt(0x0); // Status packet ID output.flush(); - // Read outer status response packet ID // ab is a dirty fix for some servers (noticed KCauldron 1.7.10) + int ab = 0; + while (ab <= 0) { + ab = IOHelper.verifyLength(input.readVarInt(), PACKET_LENGTH); + } + + // Read outer status response packet ID String response; - int ab = IOHelper.verifyLength(input.readVarInt(), PACKET_LENGTH); - byte[] statusPacket = input.readByteArray(ab == 0x0 ? PACKET_LENGTH : -ab); + byte[] statusPacket = input.readByteArray(-ab); try (HInput packetInput = new HInput(statusPacket)) { int statusPacketID = packetInput.readVarInt(); if (statusPacketID != 0x0) {