package tc.oc.pgm.tracker.damage;
import javax.annotation.Nullable;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TranslatableComponent;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import tc.oc.commons.core.chat.Component;
import tc.oc.commons.core.chat.Components;
import tc.oc.commons.bukkit.util.NMSHacks;
import tc.oc.pgm.match.ParticipantState;
public class ItemInfo extends OwnerInfoBase implements PhysicalInfo {
private static final ItemStack AIR_STACK = new ItemStack(Material.AIR);
@Inspect private final ItemStack item;
public ItemInfo(@Nullable ItemStack item, @Nullable ParticipantState owner) {
super(owner);
this.item = item != null ? item : AIR_STACK;
}
public ItemInfo(@Nullable ItemStack item) {
this(item, null);
}
public ItemStack getItem() {
return item;
}
public boolean isEnchanted() {
return !getItem().getEnchantments().isEmpty();
}
@Override
public String getIdentifier() {
return getItem().getType().name();
}
@Override
public BaseComponent getLocalizedName() {
if(getItem().hasItemMeta()) {
String customName = getItem().getItemMeta().getDisplayName();
if(customName != null) {
return Components.fromLegacyText(customName);
}
}
String key = NMSHacks.getTranslationKey(getItem());
return key != null ? new TranslatableComponent(key)
: new Component(getItem().getType().name());
}
}