浏览代码

Correct bad default config files

nossr50 4 年之前
父节点
当前提交
f01efd92f5
共有 2 个文件被更改,包括 17 次插入0 次删除
  1. 6 0
      Changelog.txt
  2. 11 0
      src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java

+ 6 - 0
Changelog.txt

@@ -1,3 +1,9 @@
+Version 2.1.184
+    Fixed a bug where the default treasures.yml file had incorrect keys (see notes)
+
+    NOTES:
+    mcMMO will fix bad config files automatically, you don't need to do anything
+
 Version 2.1.183
     Players now gain Acrobatics XP from falling even if they don't have the Roll permission node (checks for Acrobatics skill permission)
     treasures.yml now has separate settings for Drop_Level for Standard/Retro mode (see notes / this change is automatic)

+ 11 - 0
src/main/java/com/gmail/nossr50/config/treasure/TreasureConfig.java

@@ -25,6 +25,7 @@ public class TreasureConfig extends ConfigLoader {
     public static final String FILENAME = "treasures.yml";
     public static final String LEVEL_REQUIREMENT_RETRO_MODE = ".Level_Requirement.Retro_Mode";
     public static final String LEVEL_REQUIREMENT_STANDARD_MODE = ".Level_Requirement.Standard_Mode";
+    public static final String LEVEL_REQUIREMENT_INVALID = ".Level_Requirement.Standard";
     public static final String LEGACY_DROP_LEVEL = ".Drop_Level";
     private static TreasureConfig instance;
 
@@ -112,6 +113,16 @@ public class TreasureConfig extends ConfigLoader {
             int legacyDropLevel = config.getInt(type + "." + treasureName + LEGACY_DROP_LEVEL, -1);
             int dropLevel = -1;
 
+            int badDefaults = config.getInt(type + "." + treasureName + LEVEL_REQUIREMENT_INVALID, -1);
+
+            //Hacky fix for bad keys in treasures.yml defaults
+            if(badDefaults != -1) {
+                config.set(type + "." + treasureName + LEVEL_REQUIREMENT_INVALID, null);
+                config.set(type + "." + treasureName + LEVEL_REQUIREMENT_STANDARD_MODE, badDefaults);
+                updatedFile = true;
+            }
+
+
             if(legacyDropLevel >= 0) {
                 //Config needs to be updated to be more specific
                 mcMMO.p.getLogger().info("(" + treasureName + ") Updating Drop_Level in treasures.yml for treasure to match new expected format");