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);
ChargeFest.log.info("Back in to main thread...");
// Economy stuff here
if (door != null) {
ChargeFest.log.info("A door");
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);
ChargeFest.log.info(""+faceBlock.getState());
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);
ChargeFest.log.info(""+faceBlock.getType());
if (faceBlock.getType() == Material.WOODEN_DOOR)
{
return (Door) faceBlock.getState().getData();
}
}
return null;
}
}