Package com.gmail.nossr50.datatypes.skills.alchemy

Source Code of com.gmail.nossr50.datatypes.skills.alchemy.AlchemyPotion

package com.gmail.nossr50.datatypes.skills.alchemy;

import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.Potion;
import org.bukkit.potion.PotionEffect;

public class AlchemyPotion {
    private short dataValue;
    private String name;
    private List<String> lore;
    private List<PotionEffect> effects;
    private Map<ItemStack, Short> children;

    public AlchemyPotion(short dataValue, String name, List<String> lore, List<PotionEffect> effects, Map<ItemStack, Short> children) {
        this.dataValue = dataValue;
        this.lore = lore;
        this.name = name;
        this.effects = effects;
        this.children = children;
    }

    public String toString() {
        return "AlchemyPotion{" + dataValue + ", " + name + ", Effects[" + effects.size() + "], Children[" + children.size() + "]}";
    }

    public ItemStack toItemStack(int amount) {
        ItemStack potion = new ItemStack(Material.POTION, amount, this.getDataValue());
        PotionMeta meta = (PotionMeta) potion.getItemMeta();

        if (this.getName() != null) {
            meta.setDisplayName(this.getName());
        }

        if (this.getLore() != null && !this.getLore().isEmpty()) {
            meta.setLore(this.getLore());
        }

        if (!this.getEffects().isEmpty()) {
            for (PotionEffect effect : this.getEffects()) {
                meta.addCustomEffect(effect, true);
            }
        }

        potion.setItemMeta(meta);
        return potion;
    }

    public Potion toPotion(int amount) {
        return Potion.fromItemStack(this.toItemStack(amount));
    }

    public short getDataValue() {
        return dataValue;
    }

    public void setDataValue(short data_value) {
        this.dataValue = data_value;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<String> getLore() {
        return lore;
    }

    public void setLore(List<String> lore) {
        this.lore = lore;
    }

    public List<PotionEffect> getEffects() {
        return effects;
    }

    public void setEffects(List<PotionEffect> effects) {
        this.effects = effects;
    }

    public Map<ItemStack, Short> getChildren() {
        return children;
    }

    public void setChildren(Map<ItemStack, Short> children) {
        this.children = children;
    }

    public Short getChildDataValue(ItemStack ingredient) {
        if (!children.isEmpty()) {
            for (Entry<ItemStack, Short> child : children.entrySet()) {
                if (ingredient.isSimilar(child.getKey())) {
                    return child.getValue();
                }
            }
        }
        return -1;
    }
}
TOP

Related Classes of com.gmail.nossr50.datatypes.skills.alchemy.AlchemyPotion

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.