aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0905-Add-missing-important-BlockStateListPopulator-method.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0905-Add-missing-important-BlockStateListPopulator-method.patch')
-rw-r--r--patches/server/0905-Add-missing-important-BlockStateListPopulator-method.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/patches/server/0905-Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/0905-Add-missing-important-BlockStateListPopulator-method.patch
new file mode 100644
index 0000000000..2296cce864
--- /dev/null
+++ b/patches/server/0905-Add-missing-important-BlockStateListPopulator-method.patch
@@ -0,0 +1,66 @@
+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 8e6a71c1e8b53faa70b893c76f5bd25f96a5e142..19abf7b6000a875be8c7141cfba81b279b2cae60 100644
+--- a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
++++ b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
+@@ -129,4 +129,32 @@ public class BlockStateListPopulator extends DummyGeneratorAccess {
+ public DimensionType dimensionType() {
+ return this.world.dimensionType();
+ }
++ // Paper start
++ @Override
++ public boolean isFluidAtPosition(BlockPos pos, Predicate<FluidState> state) {
++ return state.test(this.getFluidState(pos));
++ }
++
++ @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 net.minecraft.world.level.storage.LevelData getLevelData() {
++ return world.getLevelData();
++ }
++ // 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 fbd82b6be6604bf854e01ed5718e4e072f42b265..cd0dc080fbd8c5b1509d67e2b60264393b2b7dbb 100644
+--- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
++++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
+@@ -269,5 +269,17 @@ public class DummyGeneratorAccess implements WorldGenLevel {
+
+ @Override
+ public <T> void getEntitiesByClass(Class<? extends T> clazz, Entity except, AABB box, List<? super T> into, Predicate<? super T> predicate) {}
++
++ @Override
++ 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
+ }