package fr.c_far.lampfloorauto;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
public class FloorLamp
{
private final Material LAMP_ON = Material.REDSTONE_LAMP_ON;
private final Material LAMP_OFF = Material.REDSTONE_LAMP_OFF;
private final Material BASE = Material.COBBLE_WALL;
private final int MAX_HEIGHT_FLOOR_LAMP = 6;
public boolean isFloorLamp(Block b)
{
if(!b.getType().equals(BASE)) return false;
Block lamp = getBlockLamp(b);
Material m = lamp.getType();
if(!(m.equals(LAMP_ON) || m.equals(LAMP_OFF))) return false;
int distance = lamp.getY() - b.getY();
if(distance >= MAX_HEIGHT_FLOOR_LAMP || distance <= 1) return false;
Block fence = b;
for(int i = 1; i < distance; i++)
{
fence = fence.getRelative(BlockFace.UP);
if(!fence.getType().equals(Material.FENCE)) return false;
}
return true;
}
public boolean setON(Block b)
{
if(!b.getType().equals(BASE)) return false;
getBlockLamp(b).setType(LAMP_ON);
if(LAMP_ON.equals(Material.REDSTONE_LAMP_ON))
{
Block rb = b.getWorld().getHighestBlockAt(b.getLocation());
rb.setType(Material.REDSTONE_BLOCK);
rb.setType(Material.AIR);
}
return true;
}
public boolean setOFF(Block b)
{
if(!b.getType().equals(BASE)) return false;
getBlockLamp(b).setType(LAMP_OFF);
return true;
}
private Block getBlockLamp(Block b)
{
return b.getWorld().getHighestBlockAt(b.getLocation()).getRelative(BlockFace.DOWN);
}
}
Comments
0 B
|👍
/👎