Fix 3th chests
This commit is contained in:
parent
20c21a497a
commit
0cdd12669f
@ -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 net.milkbowl.vault.permission.Permission;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
@ -12,6 +12,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.block.BlockPistonExtendEvent;
|
import org.bukkit.event.block.BlockPistonExtendEvent;
|
||||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||||
import org.bukkit.event.block.BlockRedstoneEvent;
|
import org.bukkit.event.block.BlockRedstoneEvent;
|
||||||
|
import org.bukkit.inventory.DoubleChestInventory;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.material.PistonBaseMaterial;
|
import org.bukkit.material.PistonBaseMaterial;
|
||||||
|
|
||||||
@ -128,6 +129,36 @@ public class WorldListener implements Listener {
|
|||||||
List<Block> blocks = checker.getMovedBlocksObjects();
|
List<Block> blocks = checker.getMovedBlocksObjects();
|
||||||
List<Block> toBreak = checker.getBrokenBlocksObjects();
|
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) {
|
if (isMovable) {
|
||||||
BlockPistonExtendedExtendEvent event = new BlockPistonExtendedExtendEvent(block, blocks, piston.getFacing());
|
BlockPistonExtendedExtendEvent event = new BlockPistonExtendedExtendEvent(block, blocks, piston.getFacing());
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
|
Reference in New Issue
Block a user