package be.isach.ultracosmetics.cosmetics.morphs; import be.isach.ultracosmetics.UltraCosmetics; import be.isach.ultracosmetics.cosmetics.type.MorphType; import be.isach.ultracosmetics.player.UltraPlayer; 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.event.EventHandler; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.scheduler.BukkitRunnable; /** * Represents an instance of a blaze morph summoned by a player. * * @author iSach * @since 08-26-2015 */ public class MorphBlaze extends Morph { public MorphBlaze(UltraPlayer owner, UltraCosmetics ultraCosmetics) { super(owner, MorphType.BLAZE, ultraCosmetics); } @Override public void onUpdate() { if (getPlayer().isSneaking()) { UtilParticles.display(Particles.FLAME, getPlayer().getLocation()); UtilParticles.display(Particles.LAVA, getPlayer().getLocation()); SoundUtil.playSound(getPlayer(), Sounds.FIZZ, 0.1f, 1.5f); getPlayer().setVelocity(getPlayer().getEyeLocation().getDirection().multiply(1)); } } @EventHandler public void onKick(PlayerKickEvent event) { if (event.getPlayer() == getPlayer() && getOwner().getCurrentMorph() == this && event.getReason().contains("Flying")) { event.setCancelled(true); } } @Override protected void onClear() { } @EventHandler public void onDamage(EntityDamageEvent event) { if (event.getEntity() == getPlayer() && getOwner().getCurrentMorph() == this && event.getCause() == EntityDamageEvent.DamageCause.FALL) { event.setCancelled(true); } } }