package tv.mineinthebox.essentials.instances; import java.util.Date; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.EntityType; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; import tv.mineinthebox.essentials.xEssentials; public class SpawnerBlock { private final Block block; private final EntityType type; private final xEssentials pl; private BukkitTask task; private long end; @SuppressWarnings("deprecation") public SpawnerBlock(Block block, EntityType type, xEssentials pl) { this.block = block; this.type = type; this.pl = pl; Date date = new Date(System.currentTimeMillis()); date.setSeconds(date.getSeconds()+5); this.end = date.getTime(); } public void start() { if(!(this.task instanceof BukkitTask)) { this.task = new BukkitRunnable() { @Override public void run() { if(System.currentTimeMillis() >= SpawnerBlock.this.end) { cancel(); SpawnerBlock.this.task = null; } SpawnerBlock.this.block.getWorld().spawnEntity(SpawnerBlock.this.block.getRelative(BlockFace.UP).getLocation(), SpawnerBlock.this.type); } }.runTaskTimer(pl, 0L, 1L); } } public void stop() { if(this.task instanceof BukkitTask) { this.task.cancel(); this.task = null; } } }