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);
//
//
//