package com.daveblencowe.chargefest; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; 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 Block doorBlock = Signs.findDoor(sign); ChargeFest.log.info("Back in to main thread..."); // Economy stuff here if (doorBlock != null) { ChargeFest.log.info("A door"); Door door = (Door) doorBlock.getState().getData(); doorBlock.setData((byte)(door.getData()^4)); } } else return; } private static Block find (Sign sign, Material material) { Block block = sign.getBlock(); for (BlockFace bf : tollFaces) { Block faceBlock = block.getRelative(bf); ChargeFest.log.info(""+faceBlock.getState()); if (faceBlock.getType() == material) { ChargeFest.log.info("Door found!"); return faceBlock; } } return null; } private static Block findDoor (Sign sign) { Block block = sign.getBlock(); for (BlockFace bf : tollFaces) { Block faceBlock = block.getRelative(bf); ChargeFest.log.info(""+faceBlock.getType()); if (faceBlock.getType() == Material.WOODEN_DOOR) { return (Block) faceBlock.getState(); } } return null; } }