geforkt von Mirrors/Paper
2873869bb1
Signs no longer have a specific isEdiable state, the entire API in this regard needs updating/deprecation. The boolean field is completely gone, replaced by a uuid (which will need a new setEditingPlayer(UUID) method on the Sign interface), and the current upstream implementation of setEdiable simply flips the is_waxed state. This patch is hence not needed as it neither allows editing (which will be redone in a later patch) nor is required to copy the is_waxed boolean flag as it lives in the signs compound tag and is covered by applyTo.
82 Zeilen
3.5 KiB
Diff
82 Zeilen
3.5 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 4bd59614606962a5371fd0da54bde25bf6a01325..216b413ce29c2557d12b80b29072e7fc822de551 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/BlockStateListPopulator.java
|
|
@@ -128,7 +128,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
|
|
@@ -140,4 +140,38 @@ public class BlockStateListPopulator extends DummyGeneratorAccess {
|
|
public RegistryAccess registryAccess() {
|
|
return this.world.registryAccess();
|
|
}
|
|
+
|
|
+ // 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 net.minecraft.world.level.storage.LevelData getLevelData() {
|
|
+ return world.getLevelData();
|
|
+ }
|
|
+
|
|
+ @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..80026dcdb66cc88a080b33ef290a6a7fb7bcbbaa 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/DummyGeneratorAccess.java
|
|
@@ -273,5 +273,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
|
|
}
|