package de.oppermann.bastian.spleef.util; import java.util.ArrayList; import org.bukkit.Bukkit; import org.bukkit.DyeColor; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.metadata.FixedMetadataValue; import de.oppermann.bastian.spleef.SpleefMain; public class BlockRemover { private static final ArrayList<BlockRemover> REMOVERS = new ArrayList<>(); private int x; private int y; private int z; private World world; private BlockRemover instance; @SuppressWarnings("deprecation") public BlockRemover(Block block) { this.instance = this; this.x = block.getX(); this.y = block.getY(); this.z = block.getZ(); this.world = block.getWorld(); if (REMOVERS.contains(this)) { return; } block.setMetadata("BlockRemover", new FixedMetadataValue(SpleefMain.getInstance(), 1)); block.setTypeIdAndData(Material.STAINED_CLAY.getId(), DyeColor.GREEN.getWoolData(), true); Bukkit.getScheduler().runTaskLater(SpleefMain.getInstance(), new Runnable() { @Override public void run() { Block block = world.getBlockAt(x, y, z); if (block.hasMetadata("BlockRemover")) { block.setTypeIdAndData(Material.STAINED_CLAY.getId(), DyeColor.ORANGE.getWoolData(), true); } } }, 10 * 1); Bukkit.getScheduler().runTaskLater(SpleefMain.getInstance(), new Runnable() { @Override public void run() { Block block = world.getBlockAt(x, y, z); if (block.hasMetadata("BlockRemover")) { block.setTypeIdAndData(Material.STAINED_CLAY.getId(), DyeColor.RED.getWoolData(), true); } } }, 10 * 2); Bukkit.getScheduler().runTaskLater(SpleefMain.getInstance(), new Runnable() { @Override public void run() { Block block = world.getBlockAt(x, y, z); if (block.hasMetadata("BlockRemover")) { block.setType(Material.AIR); } REMOVERS.remove(instance); block.removeMetadata("BlockRemover", SpleefMain.getInstance()); } }, 10 * 3); } /* * (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (!(obj instanceof BlockRemover)) { return false; } BlockRemover remover = (BlockRemover) obj; if (remover.x == x) { if (remover.y == y) { if (remover.z == z) { if (remover.world.getName().equals(world.getName())) { return true; } } } } return false; } }