From 3301b1d98d2080f1c8ea3e502b42bcc4895e91a6 Mon Sep 17 00:00:00 2001 From: Ryoji Ikeda Fan Date: Sun, 26 Apr 2026 18:18:18 +0100 Subject: [PATCH] Fix BlockType occlusion check --- .../org/bukkit/craftbukkit/block/CraftBlockType.java | 3 +-- .../java/org/bukkit/craftbukkit/block/BlockTypeTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java index 78744b74d7a0..ae449a1083e8 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockType.java @@ -16,7 +16,6 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; -import net.minecraft.world.level.EmptyBlockGetter; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Fallable; @@ -200,7 +199,7 @@ public boolean isBurnable() { @Override public boolean isOccluding() { - return this.getHandle().defaultBlockState().isRedstoneConductor(EmptyBlockGetter.INSTANCE, BlockPos.ZERO); + return this.getHandle().defaultBlockState().canOcclude(); } @Override diff --git a/paper-server/src/test/java/org/bukkit/craftbukkit/block/BlockTypeTest.java b/paper-server/src/test/java/org/bukkit/craftbukkit/block/BlockTypeTest.java index cbc3dc039643..65a72891414e 100644 --- a/paper-server/src/test/java/org/bukkit/craftbukkit/block/BlockTypeTest.java +++ b/paper-server/src/test/java/org/bukkit/craftbukkit/block/BlockTypeTest.java @@ -21,4 +21,13 @@ public void testBlockDataClasses() throws Exception { assertThat(actual, is(expected)); } } + + @Test + public void testOcclusionMatchesDefaultBlockData() throws Exception { + for (Field f : BlockType.class.getDeclaredFields()) { + BlockType type = (BlockType) f.get(null); + + assertThat(type.isOccluding(), is(type.createBlockData().isOccluding()), type.getKey() + " should match its default BlockData occlusion"); + } + } }