mirror of
https://github.com/PlayPro/CoreProtect.git
synced 2025-01-01 18:27:35 +01:00
Fixed moving pistons logged during explosions not rolling back correctly (#92)
This commit is contained in:
parent
ba0ad6c15c
commit
2d90f9cc08
@ -48,6 +48,7 @@ import org.bukkit.block.data.type.PistonHead;
|
|||||||
import org.bukkit.block.data.type.RedstoneWire;
|
import org.bukkit.block.data.type.RedstoneWire;
|
||||||
import org.bukkit.block.data.type.Snow;
|
import org.bukkit.block.data.type.Snow;
|
||||||
import org.bukkit.block.data.type.Stairs;
|
import org.bukkit.block.data.type.Stairs;
|
||||||
|
import org.bukkit.block.data.type.TechnicalPiston;
|
||||||
import org.bukkit.block.data.type.TrapDoor;
|
import org.bukkit.block.data.type.TrapDoor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.ArmorStand;
|
import org.bukkit.entity.ArmorStand;
|
||||||
@ -685,6 +686,12 @@ public class Rollback extends Queue {
|
|||||||
pistonBlock.setBlockData(piston, false);
|
pistonBlock.setBlockData(piston, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (rowType == Material.MOVING_PISTON && blockData instanceof TechnicalPiston && !(blockData instanceof PistonHead)) {
|
||||||
|
TechnicalPiston technicalPiston = (TechnicalPiston) blockData;
|
||||||
|
rowType = (technicalPiston.getType() == org.bukkit.block.data.type.TechnicalPiston.Type.STICKY ? Material.STICKY_PISTON : Material.PISTON);
|
||||||
|
blockData = rowType.createBlockData();
|
||||||
|
((Piston) blockData).setFacing(technicalPiston.getFacing());
|
||||||
|
}
|
||||||
|
|
||||||
if ((rowType == Material.AIR) && ((BukkitAdapter.ADAPTER.isItemFrame(oldTypeMaterial)) || (oldTypeMaterial == Material.PAINTING))) {
|
if ((rowType == Material.AIR) && ((BukkitAdapter.ADAPTER.isItemFrame(oldTypeMaterial)) || (oldTypeMaterial == Material.PAINTING))) {
|
||||||
int delay = Util.getHangingDelay(hangingDelay, rowWorldId, rowX, rowY, rowZ);
|
int delay = Util.getHangingDelay(hangingDelay, rowWorldId, rowX, rowY, rowZ);
|
||||||
@ -1089,6 +1096,7 @@ public class Rollback extends Queue {
|
|||||||
if (blockData instanceof MultipleFacing || BukkitAdapter.ADAPTER.isWall(blockData) || blockData instanceof Snow || blockData instanceof Stairs || blockData instanceof RedstoneWire || blockData instanceof Chest) {
|
if (blockData instanceof MultipleFacing || BukkitAdapter.ADAPTER.isWall(blockData) || blockData instanceof Snow || blockData instanceof Stairs || blockData instanceof RedstoneWire || blockData instanceof Chest) {
|
||||||
physics = !(blockData instanceof Snow) || block.getY() <= BukkitAdapter.ADAPTER.getMinHeight(block.getWorld()) || (block.getWorld().getBlockAt(block.getX(), block.getY() - 1, block.getZ()).getType().equals(Material.GRASS_BLOCK));
|
physics = !(blockData instanceof Snow) || block.getY() <= BukkitAdapter.ADAPTER.getMinHeight(block.getWorld()) || (block.getWorld().getBlockAt(block.getX(), block.getY() - 1, block.getZ()).getType().equals(Material.GRASS_BLOCK));
|
||||||
}
|
}
|
||||||
|
|
||||||
Util.setTypeAndData(block, rowType, blockData, physics);
|
Util.setTypeAndData(block, rowType, blockData, physics);
|
||||||
if (countBlock) {
|
if (countBlock) {
|
||||||
blockCount1++;
|
blockCount1++;
|
||||||
|
Loading…
Reference in New Issue
Block a user