summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/com/earth2me/essentials/Jails.java21
-rw-r--r--Essentials/src/com/earth2me/essentials/storage/AsyncStorageObjectHolder.java8
-rw-r--r--examples/bpermissions.yml (renamed from Essentials/src/examples/bpermissions.yml)0
-rw-r--r--examples/permissionsbukkit.yml (renamed from Essentials/src/examples/permissionsbukkit.yml)0
-rw-r--r--examples/permissionsex.yml (renamed from Essentials/src/examples/permissionsex.yml)0
5 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<com.earth2me.essentials.settings.Jails> 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();
@@ -50,6 +51,24 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
}
@Override
+ public void finishRead()
+ {
+ if (enabled == false && getCount() > 0)
+ {
+ registerListeners();
+ }
+ }
+
+ @Override
+ public void finishWrite()
+ {
+ if (enabled == false)
+ {
+ registerListeners();
+ }
+ }
+
+ @Override
public Location getJail(final String jailName) throws Exception
{
acquireReadLock();
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<T extends StorageObject> implemen
{
new StorageObjectDataReader();
}
-
+
+ public abstract void finishRead();
+
+ public abstract void finishWrite();
+
public abstract File getStorageFile();
@@ -101,6 +105,7 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
public void onFinish()
{
unlock();
+ finishWrite();
}
}
@@ -126,6 +131,7 @@ public abstract class AsyncStorageObjectHolder<T extends StorageObject> implemen
data = object;
}
rwl.writeLock().unlock();
+ finishRead();
}
@Override
diff --git a/Essentials/src/examples/bpermissions.yml b/examples/bpermissions.yml
index 6b7900c4f..6b7900c4f 100644
--- a/Essentials/src/examples/bpermissions.yml
+++ b/examples/bpermissions.yml
diff --git a/Essentials/src/examples/permissionsbukkit.yml b/examples/permissionsbukkit.yml
index 515256ef1..515256ef1 100644
--- a/Essentials/src/examples/permissionsbukkit.yml
+++ b/examples/permissionsbukkit.yml
diff --git a/Essentials/src/examples/permissionsex.yml b/examples/permissionsex.yml
index 3dc6354fb..3dc6354fb 100644
--- a/Essentials/src/examples/permissionsex.yml
+++ b/examples/permissionsex.yml