package com.nisovin.magicspells.castmodifiers.conditions;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import com.nisovin.magicspells.MagicSpells;
import com.nisovin.magicspells.castmodifiers.Condition;
import com.nisovin.magicspells.materials.MagicMaterial;
public class WearingInSlotCondition extends Condition {
int slot = -1;
MagicMaterial mat = null;
@Override
public boolean setVar(String var) {
try {
String[] data = var.split("=");
String s = data[0].toLowerCase();
if (s.startsWith("helm") || s.startsWith("hat") || s.startsWith("head")) {
slot = 0;
} else if (s.startsWith("chest") || s.startsWith("tunic")) {
slot = 1;
} else if (s.startsWith("leg") || s.startsWith("pant")) {
slot = 2;
} else if (s.startsWith("boot") || s.startsWith("shoe") || s.startsWith("feet")) {
slot = 3;
}
if (slot == -1) return false;
if (data[1].equals("0") || data[1].equals("air") || data[1].equals("empty")) {
mat = null;
} else {
mat = MagicSpells.getItemNameResolver().resolveItem(data[1]);
if (mat == null) return false;
}
return true;
} catch (Exception e) {
return false;
}
}
@Override
public boolean check(Player player) {
ItemStack item = player.getInventory().getArmorContents()[slot];
if (mat == null && (item == null || item.getType() == Material.AIR)) {
return true;
} else if (mat != null && item != null && mat.getMaterial() == item.getType()) {
return true;
}
return false;
}
@Override
public boolean check(Player player, LivingEntity target) {
if (target instanceof Player) {
return check((Player)target);
} else {
return false;
}
}
@Override
public boolean check(Player player, Location location) {
return false;
}
}