package com.daveblencowe.chargefest; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.material.Door; public class Signs { private static final BlockFace[] tollFaces = {BlockFace.SELF, BlockFace.DOWN, BlockFace.UP, BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH, BlockFace.NORTH_EAST, BlockFace.NORTH_WEST, BlockFace.SOUTH_EAST, BlockFace.SOUTH_WEST}; private static boolean isTollSign (Sign sign) { String[] contents = Signs.getSignContents(sign); if (contents[0].equalsIgnoreCase("[Toll]")) return true; return false; } private static String[] getSignContents (Sign sign) { return sign.getLines(); } public static void use (Sign sign) { // Check to see if the right-clicked sign is a toll sign if (Signs.isTollSign(sign)) { // Locate the door Door door = Signs.findDoor(sign); System.out.println(door); ChargeFest.log.info("Back in to main thread..."); // Economy stuff here door.setOpen(door.isOpen()); } else return; } private static Block find (Sign sign, Material material) { Block block = sign.getBlock(); for (BlockFace bf : tollFaces) { Block faceBlock = block.getRelative(bf); if (faceBlock.getType() == material) { ChargeFest.log.info("Door found!"); return faceBlock; } } return null; } private static Door findDoor (Sign sign) { Block block = sign.getBlock(); for (BlockFace bf : tollFaces) { Block faceBlock = block.getRelative(bf); if (faceBlock.getState() instanceof Door) { return (Door) faceBlock.getState(); } } return null; } }