aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0706-Add-missing-important-BlockStateListPopulator-method.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0706-Add-missing-important-BlockStateListPopulator-method.patch')
-rw-r--r--patches/server/0706-Add-missing-important-BlockStateListPopulator-method.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/patches/server/0706-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0706-Add-missing-important-BlockStateListPopulator-method.patch
new file mode 100644
index 0000000000..e0b94dc4ac
--- /dev/null
+++ b/patches/server/0706-Add-missing-important-BlockStateListPopulator-method.patch
@@ -0,0 +1,73 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Owen1212055 <[email protected]>
+Date: Sun, 12 Jun 2022 13:25:52 -0400
+Subject: [PATCH] Add missing important BlockStateListPopulator methods
+
+Without these methods it causes exceptions due to these being used by certain feature generators.
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
+index 072d105f05f3b535d53cfbf8538d1716f9cfcd0e..4d6d637188ef4010a71ea2eb6ea0310aea820511 100644
+--- a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
++++ b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
+@@ -129,7 +129,7 @@ public class BlockStateListPopulator extends DummyGeneratorAccess {
+
+ @Override
+ public boolean isFluidAtPosition(BlockPos pos, Predicate<FluidState> state) {
+- return this.world.isFluidAtPosition(pos, state);
++ return state.test(this.getFluidState(pos)); // Paper - fix
+ }
+
+ @Override
+@@ -152,4 +152,33 @@ public class BlockStateListPopulator extends DummyGeneratorAccess {
+ public long nextSubTickCount() {
+ return this.world.nextSubTickCount();
+ }
++
++ // Paper start
++ @Override
++ public <T extends BlockEntity> java.util.Optional<T> getBlockEntity(BlockPos pos, net.minecraft.world.level.block.entity.BlockEntityType<T> type) {
++ BlockEntity tileentity = this.getBlockEntity(pos);
++
++ return tileentity != null && tileentity.getType() == type ? (java.util.Optional<T>) java.util.Optional.of(tileentity) : java.util.Optional.empty();
++ }
++
++ @Override
++ public BlockPos getHeightmapPos(net.minecraft.world.level.levelgen.Heightmap.Types heightmap, BlockPos pos) {
++ return world.getHeightmapPos(heightmap, pos);
++ }
++
++ @Override
++ public int getHeight(net.minecraft.world.level.levelgen.Heightmap.Types heightmap, int x, int z) {
++ return world.getHeight(heightmap, x, z);
++ }
++
++ @Override
++ public int getRawBrightness(BlockPos pos, int ambientDarkness) {
++ return world.getRawBrightness(pos, ambientDarkness);
++ }
++
++ @Override
++ public int getBrightness(net.minecraft.world.level.LightLayer type, BlockPos pos) {
++ return world.getBrightness(type, pos);
++ }
++ // Paper end
+ }
+diff --git a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
+index 4705aed1dd98378c146bf9e346df1a17f719ad36..daf3c26fce7569761951bfd5594c6726d854a9ff 100644
+--- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
++++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
+@@ -258,4 +258,14 @@ public class DummyGeneratorAccess implements WorldGenLevel {
+ public boolean destroyBlock(BlockPos pos, boolean drop, Entity breakingEntity, int maxUpdateDepth) {
+ return false; // SPIGOT-6515
+ }
++
++ // Paper start - add more methods
++ public void scheduleTick(BlockPos pos, Fluid fluid, int delay) {}
++
++ @Override
++ public void scheduleTick(BlockPos pos, Block block, int delay, net.minecraft.world.ticks.TickPriority priority) {}
++
++ @Override
++ public void scheduleTick(BlockPos pos, Fluid fluid, int delay, net.minecraft.world.ticks.TickPriority priority) {}
++ // Paper end - add more methods
+ }