Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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);
- }
- }
Advertisement