From 00d38eb955724bdef1d31944f55c08acf3ebbde7 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Fri, 7 Aug 2020 22:03:00 +0200 Subject: [PATCH] fix chunk reading < 1.10. Print (version) mappings loading time --- src/main/java/de/bixilon/minosoft/Minosoft.java | 2 ++ .../packets/clientbound/play/PacketChunkData.java | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.java b/src/main/java/de/bixilon/minosoft/Minosoft.java index ce27ca6ad..706e2f0ce 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.java +++ b/src/main/java/de/bixilon/minosoft/Minosoft.java @@ -56,12 +56,14 @@ public class Minosoft { checkAssets(); Log.info("Assets checking done"); Log.info("Loading versions.json..."); + long mappingStartLoadingTime = System.currentTimeMillis(); try { Versions.load(Util.readJsonFromFile(Config.homeDir + "assets/mapping/versions.json")); } catch (IOException e) { e.printStackTrace(); System.exit(1); } + Log.info(String.format("Loaded versions mapping in %dms", (System.currentTimeMillis() - mappingStartLoadingTime))); checkClientToken(); diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChunkData.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChunkData.java index 5ebb80986..b824a32d8 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChunkData.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketChunkData.java @@ -99,10 +99,12 @@ public class PacketChunkData implements ClientboundPacket { // set position of the byte buffer, because of some reasons HyPixel makes some weired stuff and sends way to much 0 bytes. (~ 190k), thanks @pokechu22 buffer.setPosition(size + lastPos); } - int blockEntitiesCount = buffer.readVarInt(); - for (int i = 0; i < blockEntitiesCount; i++) { - CompoundTag tag = (CompoundTag) buffer.readNBT(); - blockEntities.put(new BlockPosition(tag.getIntTag("x").getValue(), (short) tag.getIntTag("y").getValue(), tag.getIntTag("z").getValue()), tag); + if (buffer.getProtocolId() >= 110) { + int blockEntitiesCount = buffer.readVarInt(); + for (int i = 0; i < blockEntitiesCount; i++) { + CompoundTag tag = (CompoundTag) buffer.readNBT(); + blockEntities.put(new BlockPosition(tag.getIntTag("x").getValue(), (short) tag.getIntTag("y").getValue(), tag.getIntTag("z").getValue()), tag); + } } return true; }