package tv.mineinthebox.essentials.events.players; import org.bukkit.Effect; import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.interfaces.XPlayer; public class FireflyEvent implements Listener { private final xEssentials pl; public FireflyEvent(xEssentials pl) { this.pl = pl; } @SuppressWarnings("deprecation") @EventHandler public void onFirefly(PlayerMoveEvent e) { if(pl.getManagers().getPlayerManager().isOnline(e.getPlayer().getName())) { XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName()); if(xp.isFirefly()) { if(e.getFrom().distance(e.getTo()) > 0) { if(xp.isVanished()) { //only draw client side particles while being vanished e.getPlayer().playEffect(e.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).getLocation(), Effect.MOBSPAWNER_FLAMES, 1); e.getPlayer().playEffect(e.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).getLocation(), Effect.ENDER_SIGNAL, 1); } else { //draw particles towards everyone e.getPlayer().getWorld().playEffect(e.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).getLocation(), Effect.MOBSPAWNER_FLAMES, 1); e.getPlayer().getWorld().playEffect(e.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).getLocation(), Effect.ENDER_SIGNAL, 1); } } } } } }