From 9d343796850b562188d0740130ee78c82983ed6f Mon Sep 17 00:00:00 2001 From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> Date: Wed, 15 Jun 2022 12:30:58 -0400 Subject: [PATCH] Add missing important BlockStateListPopulator methods (#7952) --- ...rtant-BlockStateListPopulator-method.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 patches/server/Add-missing-important-BlockStateListPopulator-method.patch diff --git a/patches/server/Add-missing-important-BlockStateListPopulator-method.patch b/patches/server/Add-missing-important-BlockStateListPopulator-method.patch new file mode 100644 index 0000000000..0c912d0eb3 --- /dev/null +++ b/patches/server/Add-missing-important-BlockStateListPopulator-method.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java ++++ b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java +@@ -0,0 +0,0 @@ public class BlockStateListPopulator extends DummyGeneratorAccess { + public DimensionType dimensionType() { + return this.world.dimensionType(); + } ++ // Paper start ++ @Override ++ public boolean isFluidAtPosition(BlockPos pos, Predicate state) { ++ return state.test(this.getFluidState(pos)); ++ } ++ ++ @Override ++ public java.util.Optional getBlockEntity(BlockPos pos, net.minecraft.world.level.block.entity.BlockEntityType type) { ++ BlockEntity tileentity = this.getBlockEntity(pos); ++ ++ return tileentity != null && tileentity.getType() == type ? (java.util.Optional) 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 net.minecraft.world.level.storage.LevelData getLevelData() { ++ return world.getLevelData(); ++ } ++ // Paper end + }