From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Helvetica Volubi Date: Tue, 18 Nov 2025 00:24:32 +0800 Subject: [PATCH] Revert TrapDoorBlock changes form Paper diff --git a/net/minecraft/world/level/block/TrapDoorBlock.java b/net/minecraft/world/level/block/TrapDoorBlock.java index 614f70a520d13f6fe422ac7e42808c813fb3506d..eb36bea7d3dd593539cdbc6938f1fe29df58dadf 100644 --- a/net/minecraft/world/level/block/TrapDoorBlock.java +++ b/net/minecraft/world/level/block/TrapDoorBlock.java @@ -129,31 +129,7 @@ public class TrapDoorBlock extends HorizontalDirectionalBlock implements SimpleW if (!level.isClientSide()) { boolean signal = level.hasNeighborSignal(pos); if (signal != state.getValue(POWERED)) { - // Paper start - Call BlockRedstoneEvent - if (!org.bukkit.craftbukkit.event.CraftEventFactory.callBinaryRedstoneChange(level, pos, signal)) { - return; - } - // Paper end - Call BlockRedstoneEvent - // Paper start - break redstone on trapdoors early - boolean open = state.getValue(TrapDoorBlock.OPEN) != signal; - // note: this must run before any state for this block/its neighbours are written to the world - // we allow the redstone event to fire so that plugins can block - if (signal && open) { // if we are now powered and it caused the trap door to open - // in this case, first check for the redstone on top first - BlockPos abovePos = pos.above(); - BlockState above = level.getBlockState(abovePos); - if (above.getBlock() instanceof RedStoneWireBlock) { - level.setBlock(abovePos, Blocks.AIR.defaultBlockState(), Block.UPDATE_CLIENTS | Block.UPDATE_NEIGHBORS); - Block.popResource(level, abovePos, new ItemStack(net.minecraft.world.item.Items.REDSTONE)); - // now check that this didn't change our state - if (level.getBlockState(pos) != state) { - // our state was changed, so we cannot propagate this update - return; - } - } - } - if (open) { - // Paper end - break redstone on trapdoors early + if (state.getValue(OPEN) != signal) { // Lophine - revert Paper trapdoor redstone handling state = state.setValue(OPEN, signal); this.playSound(null, level, pos, signal); }