summaryrefslogtreecommitdiffstats
path: root/EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java
blob: 51937ee77790608a8a127e1d157c38bcd9a75fab (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
65
package net.ess3.signs;

import java.io.File;
import java.util.*;
import net.ess3.api.IEssentials;
import net.ess3.storage.AsyncStorageObjectHolder;
import org.bukkit.plugin.Plugin;


public class SignsConfigHolder extends AsyncStorageObjectHolder<SignConfig>
{
	private final transient Plugin plugin;
	private Set<EssentialsSign> enabledSigns = new HashSet<EssentialsSign>();
	private boolean signsEnabled = false;

	public SignsConfigHolder(final IEssentials ess, final Plugin plugin)
	{
		super(ess, SignConfig.class, new File(plugin.getDataFolder(), "signs.yml"));
		this.plugin = plugin;
		onReload();
		final Map<String, Boolean> signs = getData().getSigns();
		for (Map.Entry<String, Boolean> entry : signs.entrySet())
		{
			if (entry.getKey().trim().toUpperCase(Locale.ENGLISH).equals("COLOR") || entry.getKey().trim().toUpperCase(Locale.ENGLISH).equals("COLOUR"))
			{
				signsEnabled = true;
				continue;
			}
			final Signs sign = Signs.valueOf(entry.getKey().toUpperCase(Locale.ENGLISH));
			if (sign != null && entry.getValue())
			{
				enabledSigns.add(sign.getSign());
				signsEnabled = true;
			}
		}

		final Map<String, Boolean> signs2 = new HashMap<String, Boolean>();
		for (Signs sign : Signs.values())
		{
			signs2.put(sign.toString(), enabledSigns.contains(sign.getSign()));
		}
		getData().setSigns(signs2);
		queueSave();
	}

	public Set<EssentialsSign> getEnabledSigns()
	{
		return enabledSigns;
	}

	public boolean areSignsDisabled()
	{
		return !signsEnabled;
	}

	@Override
	public void finishRead()
	{
	}

	@Override
	public void finishWrite()
	{
	}
}