summaryrefslogtreecommitdiffstats
path: root/EssentialsSigns/src/com/earth2me/essentials/signs
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-02-21 19:17:22 +0100
committersnowleo <schneeleo@gmail.com>2012-02-21 19:17:22 +0100
commit32840e68f361c61ea42b77d33eb67d6164c136a4 (patch)
treeb819cc442d37e2080c425332bf4a014094a310b7 /EssentialsSigns/src/com/earth2me/essentials/signs
parent4da3f52164f118825ace616408b4ce13571cab63 (diff)
downloadEssentials-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')
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java37
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/ISignsPlugin.java7
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java16
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java8
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java8
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfig.java19
-rw-r--r--EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfigHolder.java64
7 files changed, 125 insertions, 34 deletions
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java b/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java
index 986624125..6f21a0f1a 100644
--- a/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java
+++ b/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java
@@ -5,16 +5,17 @@ import com.earth2me.essentials.api.IEssentials;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
-import org.bukkit.event.Event;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
-public class EssentialsSignsPlugin extends JavaPlugin
+public class EssentialsSignsPlugin extends JavaPlugin implements ISignsPlugin
{
private static final transient Logger LOGGER = Bukkit.getLogger();
private transient IEssentials ess;
+ private transient SignsConfigHolder config;
+ @Override
public void onEnable()
{
final PluginManager pluginManager = getServer().getPluginManager();
@@ -28,35 +29,29 @@ public class EssentialsSignsPlugin extends JavaPlugin
this.setEnabled(false);
return;
}
-
- final SignBlockListener signBlockListener = new SignBlockListener(ess);
- pluginManager.registerEvent(Event.Type.SIGN_CHANGE, signBlockListener, Event.Priority.Highest, this);
- pluginManager.registerEvent(Event.Type.BLOCK_PLACE, signBlockListener, Event.Priority.Low, this);
- pluginManager.registerEvent(Event.Type.BLOCK_BREAK, signBlockListener, Event.Priority.Highest, this);
- pluginManager.registerEvent(Event.Type.BLOCK_IGNITE, signBlockListener, Event.Priority.Low, this);
- pluginManager.registerEvent(Event.Type.BLOCK_BURN, signBlockListener, Event.Priority.Low, this);
- pluginManager.registerEvent(Event.Type.BLOCK_PISTON_EXTEND, signBlockListener, Event.Priority.Low, this);
- pluginManager.registerEvent(Event.Type.BLOCK_PISTON_RETRACT, signBlockListener, Event.Priority.Low, this);
-
- final SignPlayerListener signPlayerListener = new SignPlayerListener(ess);
- pluginManager.registerEvent(Event.Type.PLAYER_INTERACT, signPlayerListener, Event.Priority.Low, this);
-
- final SignEntityListener signEntityListener = new SignEntityListener(ess);
- pluginManager.registerEvent(Event.Type.ENTITY_EXPLODE, signEntityListener, Event.Priority.Low, this);
- pluginManager.registerEvent(Event.Type.ENDERMAN_PICKUP, signEntityListener, Event.Priority.Low, this);
- //final SignBlockListener signBlockListener = new SignBlockListener(ess);
+
+ final SignBlockListener signBlockListener = new SignBlockListener(ess, this);
pluginManager.registerEvents(signBlockListener, this);
- //final SignPlayerListener signPlayerListener = new SignPlayerListener(ess);
+ final SignPlayerListener signPlayerListener = new SignPlayerListener(ess, this);
pluginManager.registerEvents(signPlayerListener, this);
- //final SignEntityListener signEntityListener = new SignEntityListener(ess);
+ final SignEntityListener signEntityListener = new SignEntityListener(ess, this);
pluginManager.registerEvents(signEntityListener, this);
+ config = new SignsConfigHolder(ess, this);
+
LOGGER.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), "essentials team"));
}
+ @Override
public void onDisable()
{
}
+
+ @Override
+ public SignsConfigHolder getSettings()
+ {
+ return config;
+ }
}
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/ISignsPlugin.java b/EssentialsSigns/src/com/earth2me/essentials/signs/ISignsPlugin.java
new file mode 100644
index 000000000..98030a6e6
--- /dev/null
+++ b/EssentialsSigns/src/com/earth2me/essentials/signs/ISignsPlugin.java
@@ -0,0 +1,7 @@
+package com.earth2me.essentials.signs;
+
+import com.earth2me.essentials.api.IEssentialsModule;
+
+public interface ISignsPlugin extends IEssentialsModule {
+ SignsConfigHolder getSettings();
+}
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java
index d7c53ac44..b16cdb07e 100644
--- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java
+++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java
@@ -17,11 +17,13 @@ import org.bukkit.event.block.*;
public class SignBlockListener implements Listener
{
private final transient IEssentials ess;
+ private final transient ISignsPlugin plugin;
private final static Logger LOGGER = Logger.getLogger("Minecraft");
- public SignBlockListener(final IEssentials ess)
+ public SignBlockListener(final IEssentials ess, final ISignsPlugin plugin)
{
this.ess = ess;
+ this.plugin = plugin;
}
@EventHandler(priority = EventPriority.HIGHEST)
@@ -45,7 +47,7 @@ public class SignBlockListener implements Listener
{
final Sign csign = (Sign)block.getState();
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName())
&& !sign.onSignBreak(block, player, ess))
@@ -62,7 +64,7 @@ public class SignBlockListener implements Listener
LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign.");
return true;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockBreak(block, player, ess))
@@ -158,7 +160,7 @@ public class SignBlockListener implements Listener
event.setCancelled(true);
return;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockBurn(block, ess))
@@ -186,7 +188,7 @@ public class SignBlockListener implements Listener
event.setCancelled(true);
return;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockIgnite(block, ess))
@@ -210,7 +212,7 @@ public class SignBlockListener implements Listener
event.setCancelled(true);
return;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockPush(block, ess))
@@ -236,7 +238,7 @@ public class SignBlockListener implements Listener
event.setCancelled(true);
return;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockPush(block, ess))
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java
index 1b540c807..96d5e7222 100644
--- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java
+++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java
@@ -13,10 +13,12 @@ import org.bukkit.event.entity.EntityExplodeEvent;
public class SignEntityListener implements Listener
{
private final transient IEssentials ess;
+ private final transient ISignsPlugin plugin;
- public SignEntityListener(final IEssentials ess)
+ public SignEntityListener(final IEssentials ess, final ISignsPlugin plugin)
{
this.ess = ess;
+ this.plugin = plugin;
}
@EventHandler(priority = EventPriority.LOW)
@@ -32,7 +34,7 @@ public class SignEntityListener implements Listener
event.setCancelled(true);
return;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType()))
{
@@ -60,7 +62,7 @@ public class SignEntityListener implements Listener
event.setCancelled(true);
return;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockBreak(block, ess))
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java
index 11e4fb2b4..3aed5d155 100644
--- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java
+++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java
@@ -14,10 +14,12 @@ import org.bukkit.event.player.PlayerInteractEvent;
public class SignPlayerListener implements Listener
{
private final transient IEssentials ess;
+ private final transient ISignsPlugin plugin;
- public SignPlayerListener(final IEssentials ess)
+ public SignPlayerListener(final IEssentials ess, final ISignsPlugin plugin)
{
this.ess = ess;
+ this.plugin = plugin;
}
@EventHandler(priority = EventPriority.LOW)
@@ -41,7 +43,7 @@ public class SignPlayerListener implements Listener
return;
}
final Sign csign = (Sign)block.getState();
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName()))
{
@@ -53,7 +55,7 @@ public class SignPlayerListener implements Listener
}
else
{
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ for (EssentialsSign sign : plugin.getSettings().getEnabledSigns())
{
if (sign.getBlocks().contains(block.getType())
&& !sign.onBlockInteract(block, event.getPlayer(), ess))
diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfig.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfig.java
new file mode 100644
index 000000000..c40e8f184
--- /dev/null
+++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignsConfig.java
@@ -0,0 +1,19 @@
+package com.earth2me.essentials.signs;
+
+import com.earth2me.essentials.storage.StorageObject;
+import java.util.HashMap;
+import java.util.Map;
+
+public class SignsConfig implements StorageObject {
+ private Map<String, Boolean> signs = new HashMap<String, Boolean>();
+
+ public Map<String, Boolean> getSigns()
+ {
+ return signs;
+ }
+
+ public void setSigns(Map<String, Boolean> signs)
+ {
+ this.signs = signs;
+ }
+}
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;
+ }
+}