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 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 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 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 void getEntitiesByClass(Class clazz, Entity except, AABB box, List into, Predicate 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 }