From 9d545dcbf1fb95b6c2185de6f40e72708bdc53cd Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 28 Mar 2012 14:54:48 +0100 Subject: [PATCH] Don't register jail listeners, if no jails are set. --- .../src/com/earth2me/essentials/Jails.java | 21 ++++++++++++++++++- .../storage/AsyncStorageObjectHolder.java | 8 ++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Jails.java b/Essentials/src/com/earth2me/essentials/Jails.java index 65f486f42..00c9d8999 100644 --- a/Essentials/src/com/earth2me/essentials/Jails.java +++ b/Essentials/src/com/earth2me/essentials/Jails.java @@ -26,16 +26,17 @@ import org.bukkit.plugin.PluginManager; public class Jails extends AsyncStorageObjectHolder implements IJails { private static final transient Logger LOGGER = Bukkit.getLogger(); + private static transient boolean enabled = false; public Jails(final IEssentials ess) { super(ess, com.earth2me.essentials.settings.Jails.class); reloadConfig(); - registerListeners(); } private void registerListeners() { + enabled = true; final PluginManager pluginManager = ess.getServer().getPluginManager(); final JailBlockListener blockListener = new JailBlockListener(); final JailPlayerListener playerListener = new JailPlayerListener(); @@ -49,6 +50,24 @@ public class Jails extends AsyncStorageObjectHolder 0) + { + registerListeners(); + } + } + + @Override + public void finishWrite() + { + if (enabled == false) + { + registerListeners(); + } + } + @Override public Location getJail(final String jailName) throws Exception { diff --git a/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java b/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java index 31c61a63f..b651dd40b 100644 --- a/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java +++ b/Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java @@ -79,7 +79,11 @@ public abstract class AsyncStorageObjectHolder implemen { new StorageObjectDataReader(); } - + + public abstract void finishRead(); + + public abstract void finishWrite(); + public abstract File getStorageFile(); @@ -101,6 +105,7 @@ public abstract class AsyncStorageObjectHolder implemen public void onFinish() { unlock(); + finishWrite(); } } @@ -126,6 +131,7 @@ public abstract class AsyncStorageObjectHolder implemen data = object; } rwl.writeLock().unlock(); + finishRead(); } @Override