forked from github-mirror/CoreProtect
Fixed beds not always rolling back in correct state (fixes #856)
This commit is contained in:
1 parent
afbbbd5aab
commit
0d47338038
1 file changed
+6
-5
@@ -210,11 +210,12 @@ public class RollbackBlockHandler extends Queue {
|
|||||||
|
|
||||||
if (remove) {
|
if (remove) {
|
||||||
boolean physics = true;
|
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;
|
physics = true;
|
||||||
}
|
}
|
||||||
else if (changeBlockData instanceof Bisected && !(changeBlockData instanceof TrapDoor)) {
|
else if (removeBlockData instanceof Bisected && !(removeBlockData instanceof TrapDoor)) {
|
||||||
Bisected bisected = (Bisected) changeBlockData;
|
Bisected bisected = (Bisected) removeBlockData;
|
||||||
Location bisectLocation = block.getLocation().clone();
|
Location bisectLocation = block.getLocation().clone();
|
||||||
if (bisected.getHalf() == Half.TOP) {
|
if (bisected.getHalf() == Half.TOP) {
|
||||||
bisectLocation.setY(bisectLocation.getY() - 1);
|
bisectLocation.setY(bisectLocation.getY() - 1);
|
||||||
@@ -234,8 +235,8 @@ public class RollbackBlockHandler extends Queue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (changeBlockData instanceof Bed) {
|
else if (removeBlockData instanceof Bed) {
|
||||||
Bed bed = (Bed) changeBlockData;
|
Bed bed = (Bed) removeBlockData;
|
||||||
if (bed.getPart() == Part.FOOT) {
|
if (bed.getPart() == Part.FOOT) {
|
||||||
Block adjacentBlock = block.getRelative(bed.getFacing());
|
Block adjacentBlock = block.getRelative(bed.getFacing());
|
||||||
BlockUtils.prepareTypeAndData(chunkChanges, adjacentBlock, rowType, null, false);
|
BlockUtils.prepareTypeAndData(chunkChanges, adjacentBlock, rowType, null, false);
|
||||||
|
|||||||
Reference in new issue
Block a user