فهرست منبع

Modify custom items loading to permit registering of repairables from these configs.
Move loading of the main repairables to below the custom items so that repair.*.yml will over-write any custom items when the list is processed and repairables registered.

NuclearW 13 سال پیش
والد
کامیت
0a15cb1e13

+ 9 - 0
src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java

@@ -11,6 +11,7 @@ import org.bukkit.inventory.ItemStack;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.datatypes.mods.CustomItem;
+import com.gmail.nossr50.skills.repair.Repairable;
 
 public class CustomArmorConfig extends ModConfigLoader{
     private static CustomArmorConfig instance;
@@ -23,6 +24,8 @@ public class CustomArmorConfig extends ModConfigLoader{
         return instance;
     }
 
+    private List<Repairable> repairables;
+
     public List<Integer> customBootIDs = new ArrayList<Integer>();
     public List<Integer> customChestplateIDs = new ArrayList<Integer>();
     public List<Integer> customHelmetIDs = new ArrayList<Integer>();
@@ -51,6 +54,7 @@ public class CustomArmorConfig extends ModConfigLoader{
     @Override
     protected void loadKeys() {
         plugin.getLogger().info("Loading mcMMO armor.yml File...");
+        repairables = new ArrayList<Repairable>();
 
         loadArmor("Boots", customBootIDs);
         loadArmor("Chestplates", customChestplateIDs);
@@ -99,4 +103,9 @@ public class CustomArmorConfig extends ModConfigLoader{
             customArmor.put(id, armor);
         }
     }
+
+    public List<Repairable> getLoadedRepairables() {
+        if(repairables == null) return new ArrayList<Repairable>();
+        return repairables;
+    }
 }

+ 9 - 0
src/main/java/com/gmail/nossr50/config/mods/CustomToolsConfig.java

@@ -11,6 +11,7 @@ import org.bukkit.inventory.ItemStack;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.datatypes.mods.CustomTool;
+import com.gmail.nossr50.skills.repair.Repairable;
 
 public class CustomToolsConfig extends ModConfigLoader {
     private static CustomToolsConfig instance;
@@ -23,6 +24,8 @@ public class CustomToolsConfig extends ModConfigLoader {
         return instance;
     }
 
+    private List<Repairable> repairables;
+
     public List<Integer> customAxeIDs = new ArrayList<Integer>();
     public List<Integer> customBowIDs = new ArrayList<Integer>();
     public List<Integer> customHoeIDs = new ArrayList<Integer>();
@@ -53,6 +56,7 @@ public class CustomToolsConfig extends ModConfigLoader {
     @Override
     protected void loadKeys() {
         plugin.getLogger().info("Loading mcMMO tools.yml File...");
+        repairables = new ArrayList<Repairable>();
 
         loadTool("Axes", customAxeIDs);
         loadTool("Bows", customBowIDs);
@@ -106,4 +110,9 @@ public class CustomToolsConfig extends ModConfigLoader {
             customTools.put(id, tool);
         }
     }
+
+    public List<Repairable> getLoadedRepairables() {
+        if(repairables == null) return new ArrayList<Repairable>();
+        return repairables;
+    }
 }

+ 10 - 5
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -36,6 +36,7 @@ import net.shatteredlands.shatt.backup.ZipLibrary;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
@@ -84,24 +85,28 @@ public class mcMMO extends JavaPlugin {
         TreasuresConfig.getInstance();
         HiddenConfig.getInstance();
 
-        //Load repair configs and register them
-        RepairConfigManager rManager = new RepairConfigManager(this);
-        List<Repairable> repairables = rManager.getLoadedRepairables();
-        repairManager = RepairManagerFactory.getRepairManager(repairables.size());
-        repairManager.registerRepairables(repairables);
+        List<Repairable> repairables = new ArrayList<Repairable>();
 
         if (configInstance.getToolModsEnabled()) {
             CustomToolsConfig.getInstance().load();
+            repairables.addAll(CustomToolsConfig.getInstance().getLoadedRepairables());
         }
 
         if (configInstance.getArmorModsEnabled()) {
             CustomArmorConfig.getInstance().load();
+            repairables.addAll(CustomArmorConfig.getInstance().getLoadedRepairables());
         }
 
         if (configInstance.getBlockModsEnabled()) {
             CustomBlocksConfig.getInstance().load();
         }
 
+        //Load repair configs, make manager, and register them at this time
+        RepairConfigManager rManager = new RepairConfigManager(this);
+        repairables.addAll(rManager.getLoadedRepairables());
+        repairManager = RepairManagerFactory.getRepairManager(repairables.size());
+        repairManager.registerRepairables(repairables);
+
         if (!configInstance.getUseMySQL()) {
             Users.loadUsers();
         }