diff --git a/Spigot-Server-Patches/Fix-Old-Sign-Conversion.patch b/Spigot-Server-Patches/Fix-Old-Sign-Conversion.patch index 19620042b7..71fd45a098 100644 --- a/Spigot-Server-Patches/Fix-Old-Sign-Conversion.patch +++ b/Spigot-Server-Patches/Fix-Old-Sign-Conversion.patch @@ -9,18 +9,9 @@ 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 diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java -index 65910508f..2109f316d 100644 +index 15c7cc170..2109f316d 100644 --- a/src/main/java/net/minecraft/server/DefinedStructure.java +++ b/src/main/java/net/minecraft/server/DefinedStructure.java -@@ -0,0 +0,0 @@ public class DefinedStructure { - } - - private void a(World world, BlockPosition blockposition, BlockPosition blockposition1) { -- List list = world.a(Entity.class, new AxisAlignedBB(blockposition, blockposition1), (entity) -> { -+ List list = world.a(Entity.class, new AxisAlignedBB(blockposition, blockposition1),(Predicate) (entity) -> { // Paper - decompile fix - return !(entity instanceof EntityHuman); - }); - @@ -0,0 +0,0 @@ public class DefinedStructure { definedstructure_blockinfo1.c.setInt("x", blockposition1.getX()); definedstructure_blockinfo1.c.setInt("y", blockposition1.getY()); @@ -33,48 +24,6 @@ index 65910508f..2109f316d 100644 } } -@@ -0,0 +0,0 @@ public class DefinedStructure { - voxelshapebitset.a(blockposition3.getX() - i2, blockposition3.getY() - j2, blockposition3.getZ() - l1, true, true); - } - -- voxelshapebitset.a((enumdirection, i, j, k) -> { -- BlockPosition blockposition = new BlockPosition(l + i, i1 + j, j1 + k); -- BlockPosition blockposition1 = blockposition.shift(enumdirection); -- IBlockData iblockdata = generatoraccess.getType(blockposition); -+ // Paper start - decompile fixes -+ int finalL = l1; -+ voxelshapebitset.a((enumdirection, i_, j_, k_) -> { -+ BlockPosition innerBlockposition = new BlockPosition(i2 + i_, j2 + j_, finalL + k_); -+ BlockPosition blockposition1 = innerBlockposition.shift(enumdirection); -+ IBlockData iblockdata = generatoraccess.getType(innerBlockposition); - IBlockData iblockdata1 = generatoraccess.getType(blockposition1); -- IBlockData iblockdata2 = iblockdata.updateState(enumdirection, iblockdata1, generatoraccess, blockposition, blockposition1); -+ IBlockData iblockdata2 = iblockdata.updateState(enumdirection, iblockdata1, generatoraccess, innerBlockposition, blockposition1); - - if (iblockdata != iblockdata2) { -- generatoraccess.setTypeAndData(blockposition, iblockdata2, k1 & -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, innerBlockposition); - - if (iblockdata1 != iblockdata3) { -- generatoraccess.setTypeAndData(blockposition1, iblockdata3, k1 & -2 | 16); -+ generatoraccess.setTypeAndData(blockposition1, iblockdata3, i & -2 | 16); -+ // Paper end - decompile fixes - } - - }); -@@ -0,0 +0,0 @@ public class DefinedStructure { - public IBlockData a(int i) { - IBlockData iblockdata = (IBlockData) this.b.fromId(i); - -- return iblockdata == null ? DefinedStructure.a.a : iblockdata; -+ return iblockdata == null ? a : iblockdata; // Paper - decompile error - Blocks.AIR.getBlockData() - } - - public Iterator iterator() { diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java index 8cab71c0e..2cfe2202e 100644 --- a/src/main/java/net/minecraft/server/TileEntity.java diff --git a/Spigot-Server-Patches/MC-Dev-fixes.patch b/Spigot-Server-Patches/MC-Dev-fixes.patch index 7ecfddca51..61c39a92e2 100644 --- a/Spigot-Server-Patches/MC-Dev-fixes.patch +++ b/Spigot-Server-Patches/MC-Dev-fixes.patch @@ -56,4 +56,59 @@ index 002da2a19..121a137f3 100644 ++this.j; } +diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java +index 65910508f..15c7cc170 100644 +--- a/src/main/java/net/minecraft/server/DefinedStructure.java ++++ b/src/main/java/net/minecraft/server/DefinedStructure.java +@@ -0,0 +0,0 @@ public class DefinedStructure { + } + + private void a(World world, BlockPosition blockposition, BlockPosition blockposition1) { +- List list = world.a(Entity.class, new AxisAlignedBB(blockposition, blockposition1), (entity) -> { ++ List list = world.a(Entity.class, new AxisAlignedBB(blockposition, blockposition1),(Predicate) (entity) -> { // Paper - decompile fix + return !(entity instanceof EntityHuman); + }); + +@@ -0,0 +0,0 @@ public class DefinedStructure { + voxelshapebitset.a(blockposition3.getX() - i2, blockposition3.getY() - j2, blockposition3.getZ() - l1, true, true); + } + +- voxelshapebitset.a((enumdirection, i, j, k) -> { +- BlockPosition blockposition = new BlockPosition(l + i, i1 + j, j1 + k); +- BlockPosition blockposition1 = blockposition.shift(enumdirection); +- IBlockData iblockdata = generatoraccess.getType(blockposition); ++ // Paper start - decompile fixes ++ int finalL = l1; ++ voxelshapebitset.a((enumdirection, i_, j_, k_) -> { ++ BlockPosition innerBlockposition = new BlockPosition(i2 + i_, j2 + j_, finalL + k_); ++ BlockPosition blockposition1 = innerBlockposition.shift(enumdirection); ++ IBlockData iblockdata = generatoraccess.getType(innerBlockposition); + IBlockData iblockdata1 = generatoraccess.getType(blockposition1); +- IBlockData iblockdata2 = iblockdata.updateState(enumdirection, iblockdata1, generatoraccess, blockposition, blockposition1); ++ IBlockData iblockdata2 = iblockdata.updateState(enumdirection, iblockdata1, generatoraccess, innerBlockposition, blockposition1); + + if (iblockdata != iblockdata2) { +- generatoraccess.setTypeAndData(blockposition, iblockdata2, k1 & -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, innerBlockposition); + + if (iblockdata1 != iblockdata3) { +- generatoraccess.setTypeAndData(blockposition1, iblockdata3, k1 & -2 | 16); ++ generatoraccess.setTypeAndData(blockposition1, iblockdata3, i & -2 | 16); ++ // Paper end - decompile fixes + } + + }); +@@ -0,0 +0,0 @@ public class DefinedStructure { + public IBlockData a(int i) { + IBlockData iblockdata = (IBlockData) this.b.fromId(i); + +- return iblockdata == null ? DefinedStructure.a.a : iblockdata; ++ return iblockdata == null ? a : iblockdata; // Paper - decompile error - Blocks.AIR.getBlockData() + } + + public Iterator iterator() { -- \ No newline at end of file