package tv.mineinthebox.essentials.events.players; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.interfaces.XPlayer; public class PlayerFloorEvent implements Listener { private final xEssentials pl; public PlayerFloorEvent(xEssentials pl) { this.pl = pl; } @SuppressWarnings("deprecation") @EventHandler public void onPlace(BlockPlaceEvent e) { if(e.isCancelled() || !e.canBuild()) { return; } XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName()); if(xp.isFloorMode()) { xp.setFloorMode(false, xp.getFloorModeRange()); Location loc = e.getBlockPlaced().getLocation(); int range = xp.getFloorModeRange(); int xr = loc.getBlockX() - (range/2); int zr = loc.getBlockZ() - (range/2); int y = loc.getBlockY(); for(int x = xr; x < (loc.getBlockX()+(range/2)); x++) { for(int z = zr; z < (loc.getBlockZ()+(range/2)); z++) { Block block = new Location(loc.getWorld(), x, y, z).getBlock(); if(block.getType() == Material.AIR) { block.setTypeIdAndData(e.getItemInHand().getType().getId(), e.getItemInHand().getData().getData(), true); Bukkit.getPluginManager().callEvent(new BlockPlaceEvent(block, null, block, e.getItemInHand(), e.getPlayer(), true)); } } } xp.setFloorMode(true, xp.getFloorModeRange()); } } }