diff options
author | snowleo <schneeleo@gmail.com> | 2012-02-21 19:17:22 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-02-21 19:17:22 +0100 |
commit | 32840e68f361c61ea42b77d33eb67d6164c136a4 (patch) | |
tree | b819cc442d37e2080c425332bf4a014094a310b7 /EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java | |
parent | 4da3f52164f118825ace616408b4ce13571cab63 (diff) | |
download | Essentials-32840e68f361c61ea42b77d33eb67d6164c136a4.tar Essentials-32840e68f361c61ea42b77d33eb67d6164c136a4.tar.gz Essentials-32840e68f361c61ea42b77d33eb67d6164c136a4.tar.lz Essentials-32840e68f361c61ea42b77d33eb67d6164c136a4.tar.xz Essentials-32840e68f361c61ea42b77d33eb67d6164c136a4.zip |
Sign settings
Diffstat (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java')
-rw-r--r-- | EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java new file mode 100644 index 000000000..dcf436b03 --- /dev/null +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java @@ -0,0 +1,64 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.api.IEssentials; +import com.earth2me.essentials.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 Plugin plugin; + private Set<EssentialsSign> enabledSigns = new HashSet<EssentialsSign>(); + + public SignsConfigHolder(final IEssentials ess, final Plugin plugin) + { + super(ess, SignsConfig.class); + this.plugin = plugin; + onReload(); + acquireReadLock(); + try + { + Map<String, Boolean> signs = getData().getSigns(); + for (Map.Entry<String, Boolean> entry : signs.entrySet()) + { + Signs sign = Signs.valueOf(entry.getKey().toUpperCase(Locale.ENGLISH)); + if (sign != null && entry.getValue()) + { + enabledSigns.add(sign.getSign()); + } + } + } + finally + { + unlock(); + } + acquireWriteLock(); + try + { + 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; + } +} |