package org.arkham.cs.cosmetics; import java.util.ArrayList; import java.util.HashMap; import java.util.UUID; import org.arkham.cs.CosmeticSuite; import org.arkham.cs.handler.PlayerHandler; import org.arkham.cs.utils.Rank; import org.bukkit.Material; import org.bukkit.entity.FallingBlock; import org.bukkit.entity.Player; import org.bukkit.metadata.FixedMetadataValue; @SuppressWarnings("deprecation") public class TrailingBlock { public FallingBlock block; private boolean inUse; private Rank rank; private static HashMap<UUID, TrailingBlock> tbs = new HashMap<>(); public static ArrayList<FallingBlock> blocks = new ArrayList<>(); public TrailingBlock(Player player) { UUID uuid = player.getUniqueId(); this.inUse = true; this.rank = PlayerHandler.getRank(player); switch (rank) { case DEFAULT: break; case HERO: this.block = player.getWorld().spawnFallingBlock(player.getLocation(), Material.STATIONARY_WATER, (byte) 0); block.setDropItem(false); break; case SUPERHERO: this.block = player.getWorld().spawnFallingBlock(player.getLocation(), Material.STATIONARY_LAVA, (byte) 0); block.setDropItem(false); break; } block.setMetadata("flying", new FixedMetadataValue(CosmeticSuite.getInstance(), "")); tbs.put(uuid, this); } public boolean isInUse() { return inUse; } public void setInUse(boolean inUse) { this.inUse = inUse; } public FallingBlock getBlock() { return block; } public Rank getRank() { return rank; } public void run(Player player) { FallingBlock b = (player.getWorld().spawnFallingBlock(player.getLocation(), block.getMaterial(), (byte) 0)); b.setMetadata("flying", new FixedMetadataValue(CosmeticSuite.getInstance(), "")); blocks.add(b); } public static TrailingBlock get(Player player) { UUID uuid = player.getUniqueId(); return tbs.get(uuid); } }