diff --git a/pom.xml b/pom.xml index 4d242c8..f3ee692 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.forestfire Elevators - 3.3.1 + 3.3.2 jar Elevators diff --git a/src/main/java/net/forestfire/elevators/Conf.java b/src/main/java/net/forestfire/elevators/Conf.java index a974325..fd7dc85 100644 --- a/src/main/java/net/forestfire/elevators/Conf.java +++ b/src/main/java/net/forestfire/elevators/Conf.java @@ -24,6 +24,7 @@ import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; import org.bukkit.block.data.Bisected; +import org.bukkit.block.data.MultipleFacing; import org.bukkit.block.data.Openable; import org.bukkit.block.data.type.*; import org.bukkit.command.CommandSender; @@ -282,7 +283,17 @@ public static Block getSignBlock(Block s) { public static void addSignBlock(Block s) { Block b = Conf.getSignBlock(s); if(!b.getType().isSolid()) setDoorBlock(b,true); } -public static void setDoorBlock(Block b, boolean on) { b.setType(on?Conf.DOOR_SET:Conf.AIR); } +public static void setDoorBlock(Block b, boolean on) { + b.setType(on?Conf.DOOR_SET:Conf.AIR); + if(on && b.getBlockData() instanceof MultipleFacing) { //Connect block faces + MultipleFacing f=(MultipleFacing)b.getBlockData(); Location l=b.getLocation(); + f.setFace(BlockFace.EAST, !l.clone().add(1,0,0).getBlock().isEmpty()); + f.setFace(BlockFace.WEST, !l.clone().add(-1,0,0).getBlock().isEmpty()); + f.setFace(BlockFace.NORTH, !l.clone().add(0,0,-1).getBlock().isEmpty()); + f.setFace(BlockFace.SOUTH, !l.clone().add(0,0,1).getBlock().isEmpty()); + b.setBlockData(f); + } +} //Determine if sign or call sign was clicked on: public static boolean isElevSign(Block b, ConfData ref, Player pl, String perm) {