diff options
author | ementalo <ementalodev@gmx.co.uk> | 2012-06-27 13:35:39 +0100 |
---|---|---|
committer | ementalo <ementalodev@gmx.co.uk> | 2012-06-27 13:35:39 +0100 |
commit | 16d0b5c228dd8d981a0d79944c70248ea813d63b (patch) | |
tree | b76e6966bfc2b4b9b668b89b13e30307e0b81988 /EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java | |
parent | c1230bd6ae4e17539e1f6f2c82691fa7a8395e8c (diff) | |
download | Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar.gz Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar.lz Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.tar.xz Essentials-16d0b5c228dd8d981a0d79944c70248ea813d63b.zip |
package name change to net.ess3
Diffstat (limited to 'EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java')
-rw-r--r-- | EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java b/EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java new file mode 100644 index 000000000..395d0194a --- /dev/null +++ b/EssentialsSigns/src/net/ess3/signs/SignsConfigHolder.java @@ -0,0 +1,85 @@ +package net.ess3.signs; + +import net.ess3.api.IEssentials; +import net.ess3.storage.AsyncStorageObjectHolder; +import java.io.File; +import java.io.IOException; +import java.util.*; +import org.bukkit.plugin.Plugin; + + +public class SignsConfigHolder extends AsyncStorageObjectHolder<SignsConfig> +{ + 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, SignsConfig.class); + this.plugin = plugin; + onReload(); + acquireReadLock(); + try + { + 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()); + } + } + } + finally + { + unlock(); + } + acquireWriteLock(); + try + { + final Map<String, Boolean> signs = new HashMap<String, Boolean>(); + for (Signs sign : Signs.values()) + { + signs.put(sign.toString(), enabledSigns.contains(sign.getSign())); + } + getData().setSigns(signs); + } + finally + { + unlock(); + } + } + + @Override + public File getStorageFile() throws IOException + { + return new File(plugin.getDataFolder(), "config.yml"); + } + + public Set<EssentialsSign> getEnabledSigns() + { + return enabledSigns; + } + + public boolean areSignsDisabled() + { + return !signsEnabled; + } + + @Override + public void finishRead() + { + } + + @Override + public void finishWrite() + { + } +} |