diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java index 51ad4edb3..999fe0da3 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/PressurePlateBlockBehavior.java @@ -182,6 +182,21 @@ public class PressurePlateBlockBehavior extends BukkitBlockBehavior { } } + @Override + public void onRemove(Object thisBlock, Object[] args, Callable superMethod) throws Exception { + Object state = args[0]; + Object level = args[1]; + Object pos = args[2]; + Object newState = args[3]; + boolean movedByPiston = (boolean) args[4]; + if (!movedByPiston && !FastNMS.INSTANCE.method$BlockStateBase$is(state, FastNMS.INSTANCE.method$BlockState$getBlock(newState))) { + if (this.getSignalForState(state) > 0) { + this.updateNeighbours(level, pos, thisBlock); + } + superMethod.call(); + } + } + private void updateNeighbours(Object level, Object pos, Object thisBlock) { FastNMS.INSTANCE.method$Level$updateNeighborsAt(level, pos, thisBlock); FastNMS.INSTANCE.method$Level$updateNeighborsAt(level, LocationUtils.below(pos), thisBlock);