summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
diff options
context:
space:
mode:
authorElgarL <ElgarL@palmergames.com>2012-04-21 16:58:22 +0100
committerElgarL <ElgarL@palmergames.com>2012-04-21 16:58:22 +0100
commitfc7689354f3dea2614f248a1f82eb740b6a4fb9f (patch)
tree7cca68e9fae655ed60f026db50a0feab1d7fc18c /EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
parenta21b5fac76958a13fa067bfc452415d3885fc553 (diff)
downloadEssentials-fc7689354f3dea2614f248a1f82eb740b6a4fb9f.tar
Essentials-fc7689354f3dea2614f248a1f82eb740b6a4fb9f.tar.gz
Essentials-fc7689354f3dea2614f248a1f82eb740b6a4fb9f.tar.lz
Essentials-fc7689354f3dea2614f248a1f82eb740b6a4fb9f.tar.xz
Essentials-fc7689354f3dea2614f248a1f82eb740b6a4fb9f.zip
Fix forgetting sub groups on a manload.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java48
1 files changed, 42 insertions, 6 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
index 3da9666c3..0571db4b6 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
@@ -103,13 +103,20 @@ public class GroupManager extends JavaPlugin {
}
}
- if (WorldEvents != null)
- WorldEvents = null;
+
// Remove all attachments before clearing
if (BukkitPermissions != null) {
BukkitPermissions.removeAllAttachments();
+ }
+
+ if (!restarting) {
+
+ if (WorldEvents != null)
+ WorldEvents = null;
+
BukkitPermissions = null;
+
}
// EXAMPLE: Custom code, here we just output some info so we can check that all is well
@@ -130,6 +137,9 @@ public class GroupManager extends JavaPlugin {
selectedWorlds = new HashMap<CommandSender, String>();
lastError = "";
+ /*
+ * Setup our logger if we are not restarting.
+ */
if (!restarting) {
GroupManager.logger.setUseParentHandlers(false);
ch = new GMLoggerHandler();
@@ -144,11 +154,17 @@ public class GroupManager extends JavaPlugin {
// Load the global groups
globalGroups = new GlobalGroups(this);
+ /*
+ * Configure the worlds holder.
+ */
if (!restarting)
worldsHolder = new WorldsHolder(this);
else
worldsHolder.resetWorldsHolder();
+ /*
+ * This should NEVER happen. No idea why it's still here.
+ */
PluginDescriptionFile pdfFile = this.getDescription();
if (worldsHolder == null) {
GroupManager.logger.severe("Can't enable " + pdfFile.getName() + " version " + pdfFile.getVersion() + ", bad loading!");
@@ -156,13 +172,30 @@ public class GroupManager extends JavaPlugin {
throw new IllegalStateException("An error ocurred while loading GroupManager");
}
- // Set a few defaults (reloads)
+ /*
+ * Prevent our registered events from triggering
+ * updates as we are not fully loaded.
+ */
setLoaded(false);
- // Initialize the world listener and bukkit permissions to handle events.
- WorldEvents = new GMWorldListener(this);
- BukkitPermissions = new BukkitPermissions(this);
+ /*
+ * Initialize the world listener and bukkit permissions
+ * to handle events if this is a fresh start
+ *
+ * else
+ *
+ * Reset bukkit perms.
+ */
+ if (!restarting) {
+ WorldEvents = new GMWorldListener(this);
+ BukkitPermissions = new BukkitPermissions(this);
+ } else {
+ BukkitPermissions.reset();
+ }
+ /*
+ * Start the scheduler for data saving.
+ */
enableScheduler();
/*
@@ -172,6 +205,9 @@ public class GroupManager extends JavaPlugin {
if (getServer().getScheduler().scheduleSyncDelayedTask(this, new BukkitPermsUpdateTask(), 1) == -1) {
GroupManager.logger.severe("Could not schedule superperms Update.");
+ /*
+ * Flag that we are now loaded and should start processing events.
+ */
setLoaded(true);
}