package org.arkham.cs.cosmetics; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.arkham.cs.CosmeticSuite; import org.arkham.cs.effects.EffectManager; import org.arkham.cs.gui.Category; import org.arkham.cs.handler.ParticleLibManager.FancyEffect; import org.arkham.cs.interfaces.Button; import org.arkham.cs.utils.PlayerMetaDataUtil; import org.arkham.cs.utils.Rank; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; public class CustomEffect extends Button { private FancyEffect effect; private int amount; private String name; private static ArrayList<CustomEffect> effects = new ArrayList<>(); private static HashMap<Rank, ArrayList<CustomEffect>> effectsByRank = new HashMap<>(); /** * @param slot * @param cat * @param effect * @param permission * @param display * @param amount */ public CustomEffect(int slot, Category cat, FancyEffect effect, String permission, ItemStack item, int amount, Rank rank, String name) { super(slot, cat, permission, item); this.effect = effect; this.amount = amount; this.name = name; effects.add(this); ArrayList<CustomEffect> ces = effectsByRank.get(rank); if(ces == null){ ces = new ArrayList<>(); } ces.add(this); effectsByRank.put(rank, ces); } public static void addSuperHeroToHero(){ ArrayList<CustomEffect> ces = effectsByRank.get(Rank.HERO); if(ces == null){ return; } ArrayList<CustomEffect> sces = effectsByRank.get(Rank.SUPERHERO); if(sces == null){ return; } sces.addAll(ces); return; } public String getName(){ return name; } public int getAmount(){ return amount; } @Override public void onClick(Player player) { player.sendMessage(CosmeticSuite.PREFIX + "Your trail effect is now " + ChatColor.UNDERLINE + getName()); PlayerMetaDataUtil.removeFromSwitching(player); EffectManager manager = CosmeticSuite.getInstance().getEffectManager(); manager.setEffect(player, this); player.closeInventory(); } public FancyEffect getEffect(){ return effect; } public static List<CustomEffect> getEffects(Rank rank){ return effectsByRank.get(rank); } }