package fr.c_far.apprentissage; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockRedstoneEvent; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements Listener { @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); System.out.println("\n\nLoad.\n"); } @Override public void onDisable() { System.out.println("\n\nUnload.\n"); } @EventHandler public void onBlockRedstone(BlockRedstoneEvent e) { final int MAX_HEIGHT_FLOOR_LAMP = 10; final Material BASE = Material.COBBLE_WALL; Block lamp = e.getBlock(); Material m = lamp.getType(); if(!(m.equals(Material.REDSTONE_LAMP_ON) || m.equals(Material.REDSTONE_LAMP_OFF))) return; World world = lamp.getWorld(); int lamp_x = lamp.getX(); int lamp_y = lamp.getY(); int lamp_z = lamp.getZ(); int distance = 1; Block base; for(; distance <= MAX_HEIGHT_FLOOR_LAMP; distance++) { Location loc = new Location(world, lamp_x, lamp_y - distance, lamp_z); base = loc.getBlock(); if(base.getType().equals(BASE)) { break; } } if(distance == MAX_HEIGHT_FLOOR_LAMP + 1 || distance == 1) return; for(int base_y = lamp_y - distance + 1; base_y < lamp_y; base_y++) { Location loc_fence = new Location(world, lamp_x, base_y, lamp_z); if(!loc_fence.getBlock().getType().equals(Material.FENCE)) return; } e.setNewCurrent(15); lamp.setType(Material.REDSTONE_LAMP_ON); } }