diff --git a/pom.xml b/pom.xml
index 4a6dc8d45..11a3816fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,35 @@
--enable-preview
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.3.0
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+ de.bixilon.minosoft.Minosoft
+
+
+
+
+
+
+
@@ -82,7 +111,7 @@
15
15
16-ea+6
- 1.4.21
+ 1.4.30
@@ -151,7 +180,7 @@
org.jline
jline
- 3.18.0
+ 3.19.0
org.jetbrains.kotlin
@@ -164,6 +193,11 @@
${kotlin.version}
test
+
+ org.jetbrains.kotlin
+ kotlin-runtime
+ 1.2.71
+
com.github.Bixilon
ascii-table
diff --git a/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java b/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java
index 35e32aa9a..7acbca3b4 100644
--- a/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java
+++ b/src/main/java/de/bixilon/minosoft/util/ChunkUtil.java
@@ -160,9 +160,18 @@ public final class ChunkUtil {
for (int nibbleZ = 0; nibbleZ < ProtocolDefinition.SECTION_WIDTH_Z; nibbleZ++) {
for (int nibbleX = 0; nibbleX < ProtocolDefinition.SECTION_WIDTH_X; nibbleX++) {
int blockNumber = (((nibbleY * ProtocolDefinition.SECTION_HEIGHT_Y) + nibbleZ) * ProtocolDefinition.SECTION_WIDTH_X) + nibbleX;
- int startLong = (blockNumber * palette.getBitsPerBlock()) / 64;
- int startOffset = (blockNumber * palette.getBitsPerBlock()) % 64;
- int endLong = ((blockNumber + 1) * palette.getBitsPerBlock() - 1) / 64;
+ int startLong;
+ int startOffset;
+ int endLong;
+
+ if (buffer.getVersionId() < V_20W49A) { // ToDo: When did this changed? is just a guess
+ startLong = (blockNumber * palette.getBitsPerBlock()) / 64;
+ startOffset = (blockNumber * palette.getBitsPerBlock()) % 64;
+ endLong = ((blockNumber + 1) * palette.getBitsPerBlock() - 1) / 64;
+ } else {
+ startLong = endLong = blockNumber / (64 / palette.getBitsPerBlock());
+ startOffset = (blockNumber % (64 / palette.getBitsPerBlock())) * palette.getBitsPerBlock();
+ }
int blockId;
if (startLong == endLong) {