geforkt von Mirrors/Paper
bffb08c2f9
The Paper method was chosen for deprecation because it was more restrictive in that it has an isGliding check.
73 Zeilen
3.4 KiB
Diff
73 Zeilen
3.4 KiB
Diff
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 ffe6881d93153838cd23f125980b832e6fd1d0eb..f5cbe9ae5802fa48e57092b1e5ca8a5f5f69ee60 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 d5861dfa771c4eb217e082e3c832c3a6c603710d..1233788274f1cbdaa564d3145214b4908ae1f573 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
|
@@ -274,4 +274,13 @@ 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) {}
|
|
// Paper end
|
|
+ // 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
|
|
}
|