فهرست منبع

Fixed parties and /reload not playing nice together.

GJ 12 سال پیش
والد
کامیت
f0c937ad47
2فایلهای تغییر یافته به همراه11 افزوده شده و 4 حذف شده
  1. 2 4
      src/main/java/com/gmail/nossr50/mcMMO.java
  2. 9 0
      src/main/java/com/gmail/nossr50/party/PartyManager.java

+ 2 - 4
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;
 

+ 9 - 0
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()) {