package com.nisovin.magicspells.spells.instant; import java.util.ArrayList; import java.util.List; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.nisovin.magicspells.spells.InstantSpell; import com.nisovin.magicspells.util.MagicConfig; import com.nisovin.magicspells.util.Util; public class UnconjureSpell extends InstantSpell { List<String> itemNames; List<ItemStack> items; public UnconjureSpell(MagicConfig config, String spellName) { super(config, spellName); itemNames = getConfigStringList("items", null); } @Override public void initialize() { items = new ArrayList<ItemStack>(); for (String s : itemNames) { ItemStack i = Util.getItemStackFromString(s); if (i != null) { items.add(i); } } } @Override public PostCastAction castSpell(Player player, SpellCastState state, float power, String[] args) { if (state == SpellCastState.NORMAL) { ItemStack[] inv = player.getInventory().getContents(); if (check(inv)) { player.getInventory().setContents(inv); } ItemStack[] armor = player.getInventory().getArmorContents(); if (check(armor)) { player.getInventory().setArmorContents(armor); } } return PostCastAction.HANDLE_NORMALLY; } private boolean check(ItemStack[] inv) { boolean chg = false; for (int i = 0; i < inv.length; i++) { if (inv[i] != null) { for (ItemStack item : items) { if (item.isSimilar(inv[i])) { inv[i] = null; chg = true; break; } } } } return chg; } }