Fix 3th chests

This commit is contained in:
Ilya 2022-02-11 16:11:28 +03:00
parent 20c21a497a
commit 0cdd12669f
2 changed files with 32 additions and 1 deletions

View File

@ -1,4 +1,4 @@
package ru.redguy.extendedpistons; //TODO: Block 3th chests, slime sides chests move, power supply remove, refactor
package ru.redguy.extendedpistons; //TODO: slime sides chests move, power supply remove, refactor
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;

View File

@ -12,6 +12,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPistonExtendEvent;
import org.bukkit.event.block.BlockPistonRetractEvent;
import org.bukkit.event.block.BlockRedstoneEvent;
import org.bukkit.inventory.DoubleChestInventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.material.PistonBaseMaterial;
@ -128,6 +129,36 @@ public class WorldListener implements Listener {
List<Block> blocks = checker.getMovedBlocksObjects();
List<Block> toBreak = checker.getBrokenBlocksObjects();
upper: for (Block b : blocks) {
Block b2 = b.getRelative(piston.getFacing());
ArrayList<BlockFace> faces = new ArrayList<BlockFace>() {{add(BlockFace.NORTH);add(BlockFace.SOUTH);add(BlockFace.WEST);add(BlockFace.EAST);}};
faces.remove(piston.getFacing().getOppositeFace());
int chests = 0;
for (BlockFace blockFace : faces) {
Block b3 = b2.getRelative(blockFace);
if(b3.getType() == Material.CHEST) {
chests++;
Chest chest = (Chest)b3.getState();
if(chest.getInventory() instanceof DoubleChestInventory) {
isMovable = false;
break upper;
}
}
}
if(chests > 1) {
isMovable = false;
break;
} else {
if(b.getType() == Material.CHEST) {
Chest chest = (Chest)b.getState();
if(chest.getInventory() instanceof DoubleChestInventory) {
isMovable = false;
break;
}
}
}
}
if (isMovable) {
BlockPistonExtendedExtendEvent event = new BlockPistonExtendedExtendEvent(block, blocks, piston.getFacing());
Bukkit.getPluginManager().callEvent(event);