summaryrefslogtreecommitdiffstats
path: root/Essentials/src/net/ess3/economy/Worth.java
blob: f2f3d2d6469ff4465bc1b5dd95dc2f0a5da422f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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<MaterialData, Double> sell;

	public Map<MaterialData, Double> getSell()
	{
		return sell == null ? Collections.<MaterialData, Double>emptyMap() : Collections.unmodifiableMap(sell);
	}

	@MapKeyType(MaterialData.class)
	@MapValueType(Double.class)
	@Getter(AccessLevel.NONE)
	@Setter(AccessLevel.NONE)
	private Map<MaterialData, Double> buy;

	public Map<MaterialData, Double> getBuy()
	{
		return buy == null ? Collections.<MaterialData, Double>emptyMap() : Collections.unmodifiableMap(buy);
	}

	@MapKeyType(EnchantmentLevel.class)
	@MapValueType(Double.class)
	@Getter(AccessLevel.NONE)
	@Setter(AccessLevel.NONE)
	private Map<EnchantmentLevel, Double> enchantmentMultiplier;

	public Map<EnchantmentLevel, Double> getEnchantmentMultiplier()
	{
		return enchantmentMultiplier == null ? Collections.<EnchantmentLevel, Double>emptyMap() : Collections.unmodifiableMap(enchantmentMultiplier);
	}

	public Worth()
	{
		sell = new HashMap<MaterialData, Double>();
		sell.put(new MaterialData(Material.APPLE, (byte)0), 1.0);
	}

	void setSellPrice(MaterialData data, double price)
	{
		Map<MaterialData, Double> sellMap = new HashMap<MaterialData, Double>(sell);
		sellMap.put(data, price);
		sell = sellMap;
	}
}