> For the complete documentation index, see [llms.txt](https://docs.eliteminecraftplugins.com/elitearmor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eliteminecraftplugins.com/elitearmor/general-information/developer-api.md).

# Developer API

The API of EliteArmor is very extensive and it allows you to create your own effects very easily.

```java
public class EliteArmorAPI {

    @Getter(lazy = true)
    private static final EliteArmorAPI armorAPI;

    /**
     * Fetch all the armor sets loaded into the plugin
     * @return
     */
    public LinkedHashMap<String, Armor> getArmorSets();

    public void loadEffects(Class<? extends Effect>... effects);

    /**
     * Create an armor set piece
     * @param armorSet
     * @param armorType
     * @return
     */
    public ItemStack createArmor(String armorSet, String armorType);

    /**
     * Create a armor set weapon
     * @param armorSet
     * @return
     */
    public ItemStack createWeapon(String armorSet);

    /**
     * Create a heroic armor piece
     * @param armorType
     * @return
     */
    public ItemStack createHeroic(String armorType);

    /**
     * Create a heroic armor piece and define color
     * @param armorType
     * @param color
     * @return
     */
    public ItemStack createHeroic(String armorType, Color color);

    /**
     * Convert an itemstack to a heroic version
     * @param itemStack
     * @return
     */
    public ItemStack convert(ItemStack itemStack);

    /**
     * Convert an itemstack to heroic version
     * of an armor set piece
     * @param itemStack
     * @param armorSet
     * @return
     */
    public ItemStack convert(ItemStack itemStack, String armorSet);

    /**
     * Create a heroic upgrade item with a defined chance
     * @param chance
     * @return
     */
    public ItemStack getHeroicUpgrade(int chance);

    /**
     * Create a heroic upgrade item with a random chance
     * @return
     */
    public ItemStack getHeroicUpgrade();

    public List<String> getActiveArmorSets(UUID uuid);

    public List<String> getActiveArmorSets(Player player);

}
```
