ChestShop-3/com/Acrobot/ChestShop/Utils/uBlock.java

93 lines
3.3 KiB
Java
Raw Normal View History

2011-05-15 19:33:03 +02:00
package com.Acrobot.ChestShop.Utils;
import com.Acrobot.ChestShop.Listeners.blockBreak;
import com.Acrobot.ChestShop.Signs.restrictedSign;
2011-05-15 19:33:03 +02:00
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.Chest;
import org.bukkit.block.Sign;
/**
* @author Acrobot
*/
public class uBlock {
private static final BlockFace[] chestFaces = {BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH};
2011-09-09 15:15:53 +02:00
private static final BlockFace[] shopFaces = {BlockFace.SELF, BlockFace.DOWN, BlockFace.UP, BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH};
2011-05-15 19:33:03 +02:00
2011-05-29 13:25:25 +02:00
public static Chest findChest(Sign sign) {
2011-05-15 19:33:03 +02:00
Block block = sign.getBlock();
return findChest(block);
}
2011-05-29 13:25:25 +02:00
public static Chest findChest(Block block) {
for (BlockFace bf : shopFaces) {
Block faceBlock = block.getRelative(bf);
if (faceBlock.getType() == Material.CHEST) return (Chest) faceBlock.getState();
2011-05-15 19:33:03 +02:00
}
return null;
}
public static void blockUpdate(Block block) {
for (BlockFace bf : shopFaces) {
block.getRelative(bf).getState().update(true);
}
}
2011-05-15 19:33:03 +02:00
public static Sign findSign(Block block, String originalName) {
for (BlockFace bf : shopFaces) {
Block faceBlock = block.getRelative(bf);
if (uSign.isSign(faceBlock)) {
Sign sign = (Sign) faceBlock.getState();
if (uSign.isValid(sign) && !sign.getLine(0).equals(originalName) && (faceBlock.equals(block) || blockBreak.getAttachedFace(sign).equals(block))) return sign;
}
}
for (BlockFace bf : shopFaces) {
Block faceBlock = block.getRelative(bf);
if (uSign.isSign(faceBlock)) {
Sign sign = (Sign) faceBlock.getState();
if (uSign.isValid(sign) && (faceBlock.equals(block) || blockBreak.getAttachedFace(sign).equals(block))) return sign;
}
}
return null;
}
//Well, I need to re-write this plugin... I hate to code like that - sorry!
public static Sign findSign2(Block block) {
for (BlockFace bf : shopFaces) {
Block faceBlock = block.getRelative(bf);
if (uSign.isSign(faceBlock)) {
2011-05-29 13:25:25 +02:00
Sign sign = (Sign) faceBlock.getState();
if (uSign.isValid(sign)) return sign;
2011-05-15 19:33:03 +02:00
}
}
return null;
}
2011-06-09 22:54:01 +02:00
public static Sign findRestrictedSign(Block block) {
for (BlockFace bf : shopFaces) {
Block faceBlock = block.getRelative(bf);
if (uSign.isSign(faceBlock)) {
Sign sign = (Sign) faceBlock.getState();
if (restrictedSign.isRestricted(sign) && (faceBlock.equals(block) || blockBreak.getAttachedFace(sign).equals(block))) return sign;
}
}
return null;
}
public static Chest findNeighbor(Block block) {
for (BlockFace blockFace : chestFaces) {
Block neighborBlock = block.getRelative(blockFace);
2011-05-29 13:25:25 +02:00
if (neighborBlock.getType() == Material.CHEST) {
return (Chest) neighborBlock.getState();
}
}
return null;
2011-05-29 13:25:25 +02:00
}
2011-07-02 20:34:14 +02:00
public static Chest findNeighbor(Chest chest) {
return findNeighbor(chest.getBlock());
}
2011-05-15 19:33:03 +02:00
}