package de.steamwar.lobby.particle.elements; import de.steamwar.lobby.particle.ParticleElement; import de.steamwar.lobby.particle.ParticleTickData; import org.bukkit.Material; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; public class Cloud extends DelegatingParticleElement { public Cloud(ParticleElement particleElement) { super(particleElement); } @Override public String attribute() { return "PARTICLE_ATTRIBUTE_CLOUD"; } @Override public void tick(ParticleTickData particleTickData) { if (particleTickData.getWorld().getBlockAt(particleTickData.getPlayer().getLocation().subtract(0, 0.5, 0)).getType() == Material.AIR) { particleTickData.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 5, 2, false, false, false)); } else { particleTickData.getPlayer().removePotionEffect(PotionEffectType.SLOW_FALLING); return; } ParticleTickData nParticleTickData = particleTickData.withLocation(particleTickData.getLocation().subtract(0, -0.2, 0)); particleElement.tick(nParticleTickData); } }