package nl.sugcube.crystalquest.items; import nl.sugcube.crystalquest.CrystalQuest; import nl.sugcube.crystalquest.ParticleHandler; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.inventory.ItemStack; /** * @author SugarCaney */ public class Railgun extends ItemExecutor { public Railgun() { super(Material.IRON_HOE); } @Override public void removeItem(CrystalQuest plugin, Player player, ItemStack itemStack) { if (itemStack.getAmount() == 1) { Bukkit.getScheduler().scheduleSyncDelayedTask( plugin, () -> player.getInventory().removeItem(itemStack), 1L); } else { itemStack.setAmount(itemStack.getAmount() - 1); } } @Override boolean execute(CrystalQuest plugin, Player player, ItemStack itemStack) { // Play sound. Location location = player.getLocation(); player.playSound(location, Sound.BLOCK_ANVIL_LAND, 20f, 20f); // Shoot bullet final Snowball ball = player.launchProjectile(Snowball.class); ball.setVelocity(player.getLocation().getDirection().multiply(15)); ParticleHandler.balls.add(ball); Bukkit.getScheduler().scheduleSyncDelayedTask( plugin, () -> ParticleHandler.balls.remove(ball), 60L ); return true; } }