Fix crash in RegionLimitedWorldAccess
This commit is contained in:
@@ -9,7 +9,7 @@ Subject: [PATCH] Fix Old Sign Conversion
|
|||||||
This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures
|
This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java
|
diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java
|
||||||
index 65910508f..002b74175 100644
|
index 65910508f..2109f316d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/DefinedStructure.java
|
--- a/src/main/java/net/minecraft/server/DefinedStructure.java
|
||||||
+++ b/src/main/java/net/minecraft/server/DefinedStructure.java
|
+++ b/src/main/java/net/minecraft/server/DefinedStructure.java
|
||||||
@@ -0,0 +0,0 @@ public class DefinedStructure {
|
@@ -0,0 +0,0 @@ public class DefinedStructure {
|
||||||
@@ -42,12 +42,9 @@ index 65910508f..002b74175 100644
|
|||||||
- BlockPosition blockposition1 = blockposition.shift(enumdirection);
|
- BlockPosition blockposition1 = blockposition.shift(enumdirection);
|
||||||
- IBlockData iblockdata = generatoraccess.getType(blockposition);
|
- IBlockData iblockdata = generatoraccess.getType(blockposition);
|
||||||
+ // Paper start - decompile fixes
|
+ // Paper start - decompile fixes
|
||||||
+ int finalL = l;
|
+ int finalL = l1;
|
||||||
+ int finalI = i1;
|
|
||||||
+ int finalJ = j1;
|
|
||||||
+ int finalK = k1;
|
|
||||||
+ voxelshapebitset.a((enumdirection, i_, j_, k_) -> {
|
+ voxelshapebitset.a((enumdirection, i_, j_, k_) -> {
|
||||||
+ BlockPosition innerBlockposition = new BlockPosition(finalL + i_, finalI + j_, finalJ + k_);
|
+ BlockPosition innerBlockposition = new BlockPosition(i2 + i_, j2 + j_, finalL + k_);
|
||||||
+ BlockPosition blockposition1 = innerBlockposition.shift(enumdirection);
|
+ BlockPosition blockposition1 = innerBlockposition.shift(enumdirection);
|
||||||
+ IBlockData iblockdata = generatoraccess.getType(innerBlockposition);
|
+ IBlockData iblockdata = generatoraccess.getType(innerBlockposition);
|
||||||
IBlockData iblockdata1 = generatoraccess.getType(blockposition1);
|
IBlockData iblockdata1 = generatoraccess.getType(blockposition1);
|
||||||
@@ -56,7 +53,7 @@ index 65910508f..002b74175 100644
|
|||||||
|
|
||||||
if (iblockdata != iblockdata2) {
|
if (iblockdata != iblockdata2) {
|
||||||
- generatoraccess.setTypeAndData(blockposition, iblockdata2, k1 & -2 | 16);
|
- generatoraccess.setTypeAndData(blockposition, iblockdata2, k1 & -2 | 16);
|
||||||
+ generatoraccess.setTypeAndData(innerBlockposition, iblockdata2, finalK & -2 | 16);
|
+ generatoraccess.setTypeAndData(innerBlockposition, iblockdata2, i & -2 | 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
- IBlockData iblockdata3 = iblockdata1.updateState(enumdirection.opposite(), iblockdata2, generatoraccess, blockposition1, blockposition);
|
- IBlockData iblockdata3 = iblockdata1.updateState(enumdirection.opposite(), iblockdata2, generatoraccess, blockposition1, blockposition);
|
||||||
@@ -64,7 +61,7 @@ index 65910508f..002b74175 100644
|
|||||||
|
|
||||||
if (iblockdata1 != iblockdata3) {
|
if (iblockdata1 != iblockdata3) {
|
||||||
- generatoraccess.setTypeAndData(blockposition1, iblockdata3, k1 & -2 | 16);
|
- generatoraccess.setTypeAndData(blockposition1, iblockdata3, k1 & -2 | 16);
|
||||||
+ generatoraccess.setTypeAndData(blockposition1, iblockdata3, finalK & -2 | 16);
|
+ generatoraccess.setTypeAndData(blockposition1, iblockdata3, i & -2 | 16);
|
||||||
+ // Paper end - decompile fixes
|
+ // Paper end - decompile fixes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user