diff --git a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/serverside/ChunkDataPacket.java b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/serverside/ChunkDataPacket.java index 5a2b24d..f451fdf 100644 --- a/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/serverside/ChunkDataPacket.java +++ b/proto_1.12.2/src/main/java/mc/core/network/proto_1_12_2/packets/serverside/ChunkDataPacket.java @@ -268,7 +268,7 @@ public class ChunkDataPacket implements SCPacket { this.skyLight.set(bx, by, bz, skyLight); } - void writeToNetStream(final NetOutputStream netOutputStream) { + private int getBitsPerBlock() { int bitsPerBlock = 4; if (palette.size() > 15) { if (palette.size() <= 31) @@ -281,15 +281,12 @@ public class ChunkDataPacket implements SCPacket { bitsPerBlock = 8; } - // - netOutputStream.writeUnsignedByte(bitsPerBlock); // Bits Per Block - netOutputStream.writeVarInt(palette.size()); // Size of palette - palette.forEach(netOutputStream::writeVarInt); // Palette - // - // - final int dataLength = (4096/*16*16*16*/ * bitsPerBlock) / 64/*size of long in bits*/; - netOutputStream.writeVarInt(dataLength); // Size of Data Array - // + return bitsPerBlock; + } + + private void writePalette(final int bitsPerBlock, + final NetOutputStream netOutputStream) { + long value = 0; int lastPos = 0; boolean fairy = false; @@ -324,6 +321,21 @@ public class ChunkDataPacket implements SCPacket { } } netOutputStream.writeLong(value); + } + + void writeToNetStream(final NetOutputStream netOutputStream) { + final int bitsPerBlock = getBitsPerBlock(); + + // + netOutputStream.writeUnsignedByte(bitsPerBlock); // Bits Per Block + netOutputStream.writeVarInt(palette.size()); // Size of palette + palette.forEach(netOutputStream::writeVarInt); // Palette + // + // + final int dataLength = (4096/*16*16*16*/ * bitsPerBlock) / 64/*size of long in bits*/; + netOutputStream.writeVarInt(dataLength); // Size of Data Array + // + writePalette(bitsPerBlock, netOutputStream); // // //