From f0c937ad4794a02437c99a2e4d75903a479d915a Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 2 Apr 2013 13:47:52 -0400 Subject: [PATCH] Fixed parties and /reload not playing nice together. --- src/main/java/com/gmail/nossr50/mcMMO.java | 6 ++---- src/main/java/com/gmail/nossr50/party/PartyManager.java | 9 +++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index dcfe4a1ae..6a39b9e54 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -38,7 +38,6 @@ import com.gmail.nossr50.party.PartyManager; import com.gmail.nossr50.runnables.SaveTimerTask; import com.gmail.nossr50.runnables.database.UserPurgeTask; import com.gmail.nossr50.runnables.party.PartyAutoKickTask; -import com.gmail.nossr50.runnables.party.PartyLoaderTask; import com.gmail.nossr50.runnables.skills.BleedTimerTask; import com.gmail.nossr50.runnables.skills.SkillMonitorTask; import com.gmail.nossr50.skills.child.ChildConfig; @@ -116,6 +115,8 @@ public class mcMMO extends JavaPlugin { registerEvents(); registerCustomRecipes(); + PartyManager.loadParties(); + // Setup the leader boards if (Config.getInstance().getUseMySQL()) { // TODO: Why do we have to check for a connection that hasn't be made yet? @@ -367,9 +368,6 @@ public class mcMMO extends JavaPlugin { } private void scheduleTasks() { - // Parties are loaded at the end of first server tick otherwise Server.getOfflinePlayer throws an IndexOutOfBoundsException - new PartyLoaderTask().runTaskLater(this, 0); - // Periodic save timer (Saves every 10 minutes by default) long saveIntervalTicks = Config.getInstance().getSaveInterval() * 1200; diff --git a/src/main/java/com/gmail/nossr50/party/PartyManager.java b/src/main/java/com/gmail/nossr50/party/PartyManager.java index ae00c0640..8985f42ef 100644 --- a/src/main/java/com/gmail/nossr50/party/PartyManager.java +++ b/src/main/java/com/gmail/nossr50/party/PartyManager.java @@ -15,6 +15,7 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent; import com.gmail.nossr50.events.party.McMMOPartyChangeEvent.EventReason; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.runnables.party.PartyLoaderTask; import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.player.UserManager; @@ -438,6 +439,14 @@ public final class PartyManager { * Load party file. */ public static void loadParties() { + try { + mcMMO.p.getServer().getOfflinePlayer("nossr50"); // TODO: Find a less-hacky way to manage reloading. + } + catch (IndexOutOfBoundsException ex){ + new PartyLoaderTask().runTaskLater(mcMMO.p, 0); + return; + } + File file = new File(partiesFilePath); if (!file.exists()) {