package be.isach.ultracosmetics.cosmetics.gadgets; import be.isach.ultracosmetics.UltraCosmetics; import be.isach.ultracosmetics.player.UltraPlayer; import be.isach.ultracosmetics.cosmetics.type.GadgetType; import be.isach.ultracosmetics.util.Particles; import be.isach.ultracosmetics.util.Sounds; import be.isach.ultracosmetics.util.UtilParticles; import be.isach.ultracosmetics.util.SoundUtil; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.Projectile; import org.bukkit.entity.Snowball; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.entity.ProjectileHitEvent; import java.util.ArrayList; import java.util.List; /** * Represents an instance of a fungun gadget summoned by a player. * * @author iSach * @since 10-12-2015 */ public class GadgetFunGun extends Gadget { private List<Projectile> projectiles = new ArrayList<>(); public GadgetFunGun(UltraPlayer owner, UltraCosmetics ultraCosmetics) { super(owner, GadgetType.FUNGUN, ultraCosmetics); } @Override void onRightClick() { for (int i = 0; i < 5; i++) projectiles.add(getPlayer().launchProjectile(Snowball.class)); } @EventHandler public void onProjectileHit(ProjectileHitEvent event) { Projectile projectile = event.getEntity(); if (!projectiles.contains(projectile)) return; Location location = projectile.getLocation(); for (Projectile snowball : projectiles) snowball.remove(); UtilParticles.display(Particles.LAVA, 1.3f, 1f, 1.3f, location, 16); UtilParticles.display(Particles.HEART, 0.8f, 0.8f, 0.8f, location, 20); SoundUtil.playSound(getPlayer(), Sounds.CAT_PURREOW, 1.4f, 1.5f); } @Override void onLeftClick() { } @Override public void onUpdate() { } @Override public void onClear() { HandlerList.unregisterAll(this); } }