package net.ess3.economy; import java.util.Collections; import java.util.HashMap; import java.util.Map; import lombok.*; import net.ess3.storage.EnchantmentLevel; import net.ess3.storage.MapKeyType; import net.ess3.storage.MapValueType; import net.ess3.storage.StorageObject; import org.bukkit.Material; import org.bukkit.material.MaterialData; @Data @EqualsAndHashCode(callSuper = false) public class Worth implements StorageObject { @MapKeyType(MaterialData.class) @MapValueType(Double.class) @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private Map sell; public Map getSell() { return sell == null ? Collections.emptyMap() : Collections.unmodifiableMap(sell); } @MapKeyType(MaterialData.class) @MapValueType(Double.class) @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private Map buy; public Map getBuy() { return buy == null ? Collections.emptyMap() : Collections.unmodifiableMap(buy); } @MapKeyType(EnchantmentLevel.class) @MapValueType(Double.class) @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private Map enchantmentMultiplier; public Map getEnchantmentMultiplier() { return enchantmentMultiplier == null ? Collections.emptyMap() : Collections.unmodifiableMap(enchantmentMultiplier); } public Worth() { sell = new HashMap(); sell.put(new MaterialData(Material.APPLE, (byte)0), 1.0); } void setSellPrice(MaterialData data, double price) { Map sellMap = new HashMap(sell); sellMap.put(data, price); sell = sellMap; } }