Fixed beds not always rolling back in correct state (fixes #856)

This commit is contained in:
Intelli committed 2026-04-24 14:33:04 -06:00
1 parent afbbbd5aab
commit 0d47338038
1 file changed
+6 -5
@@ -210,11 +210,12 @@ public class RollbackBlockHandler extends Queue {
if (remove) {
boolean physics = true;
if ((changeType == Material.NETHER_PORTAL) || changeBlockData instanceof MultipleFacing || changeBlockData instanceof Snow || changeBlockData instanceof Stairs || changeBlockData instanceof RedstoneWire || changeBlockData instanceof Chest) {
BlockData removeBlockData = pendingChangeData != null ? pendingChangeData : changeBlockData;
if ((changeType == Material.NETHER_PORTAL) || removeBlockData instanceof MultipleFacing || removeBlockData instanceof Snow || removeBlockData instanceof Stairs || removeBlockData instanceof RedstoneWire || removeBlockData instanceof Chest) {
physics = true;
}
else if (changeBlockData instanceof Bisected && !(changeBlockData instanceof TrapDoor)) {
Bisected bisected = (Bisected) changeBlockData;
else if (removeBlockData instanceof Bisected && !(removeBlockData instanceof TrapDoor)) {
Bisected bisected = (Bisected) removeBlockData;
Location bisectLocation = block.getLocation().clone();
if (bisected.getHalf() == Half.TOP) {
bisectLocation.setY(bisectLocation.getY() - 1);
@@ -234,8 +235,8 @@ public class RollbackBlockHandler extends Queue {
}
}
}
else if (changeBlockData instanceof Bed) {
Bed bed = (Bed) changeBlockData;
else if (removeBlockData instanceof Bed) {
Bed bed = (Bed) removeBlockData;
if (bed.getPart() == Part.FOOT) {
Block adjacentBlock = block.getRelative(bed.getFacing());
BlockUtils.prepareTypeAndData(chunkChanges, adjacentBlock, rowType, null, false);