diff --git a/src/net/minecraft/network/packets/Packet51MapChunk.java b/src/net/minecraft/network/packets/Packet51MapChunk.java index 942b3db..05f0d6c 100644 --- a/src/net/minecraft/network/packets/Packet51MapChunk.java +++ b/src/net/minecraft/network/packets/Packet51MapChunk.java @@ -3,11 +3,12 @@ package net.minecraft.network.packets; import net.minecraft.network.NetHandler; import net.minecraft.world.World; +import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.zip.DataFormatException; -import java.util.zip.Deflater; +import java.util.zip.DeflaterOutputStream; import java.util.zip.Inflater; public class Packet51MapChunk extends Packet { @@ -19,6 +20,9 @@ public class Packet51MapChunk extends Packet { public int zSize; public byte[] chunk; private int chunkSize; + // Patch start + public byte[] uncompressedChunk; + // Patch end public Packet51MapChunk() { this.isChunkDataPacket = true; @@ -32,17 +36,20 @@ public class Packet51MapChunk extends Packet { this.xSize = var4; this.ySize = var5; this.zSize = var6; - byte[] var8 = var7.getChunkData(var1, var2, var3, var4, var5, var6); - Deflater var9 = new Deflater(-1); + // Patch start + //byte[] var8 = var7.getChunkData(var1, var2, var3, var4, var5, var6); + //Deflater var9 = new Deflater(-1); - try { - var9.setInput(var8); - var9.finish(); - this.chunk = new byte[var4 * var5 * var6 * 5 / 2]; - this.chunkSize = var9.deflate(this.chunk); - } finally { - var9.end(); - } + //try { + // var9.setInput(var8); + // var9.finish(); + // this.chunk = new byte[var4 * var5 * var6 * 5 / 2]; + // this.chunkSize = var9.deflate(this.chunk); + //} finally { + // var9.end(); + //} + this.uncompressedChunk = var7.getChunkData(var1, var2, var3, var4, var5, var6); + // Patch end } @@ -71,6 +78,15 @@ public class Packet51MapChunk extends Packet { } public void writePacketData(DataOutputStream var1) throws IOException { + // Patch start + ByteArrayOutputStream compressed = new ByteArrayOutputStream(); + try (DeflaterOutputStream dos = new DeflaterOutputStream(compressed)) { + dos.write(this.uncompressedChunk); + } catch (IOException ignore) { + } + this.chunk = compressed.toByteArray(); + this.chunkSize = this.chunk.length; + // Patch end var1.writeInt(this.xPosition); var1.writeShort(this.yPosition); var1.writeInt(this.zPosition);