Răsfoiți Sursa

new config system pt 4

nossr50 6 ani în urmă
părinte
comite
41b484b1c3
19 a modificat fișierele cu 81 adăugiri și 70 ștergeri
  1. 4 0
      core/src/main/java/com/gmail/nossr50/core/TODO
  2. 1 1
      core/src/main/java/com/gmail/nossr50/core/config/AdvancedConfig.java
  3. 7 4
      core/src/main/java/com/gmail/nossr50/core/config/ConfigurableLoader.java
  4. 5 4
      core/src/main/java/com/gmail/nossr50/core/config/RankConfig.java
  5. 4 3
      core/src/main/java/com/gmail/nossr50/core/config/SoundConfig.java
  6. 6 7
      core/src/main/java/com/gmail/nossr50/core/config/WorldBlacklist.java
  7. 9 13
      core/src/main/java/com/gmail/nossr50/core/config/experience/ExperienceConfig.java
  8. 1 2
      core/src/main/java/com/gmail/nossr50/core/config/mods/ArmorConfigManager.java
  9. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/mods/CustomArmorConfig.java
  10. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/mods/CustomBlockConfig.java
  11. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/mods/CustomEntityConfig.java
  12. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/mods/CustomToolConfig.java
  13. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/party/ItemWeightConfig.java
  14. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/skills/alchemy/PotionConfig.java
  15. 2 1
      core/src/main/java/com/gmail/nossr50/core/config/skills/repair/RepairConfig.java
  16. 4 2
      core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfig.java
  17. 4 4
      core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfigManager.java
  18. 9 16
      core/src/main/java/com/gmail/nossr50/core/config/treasure/TreasureConfig.java
  19. 1 1
      core/src/main/java/com/gmail/nossr50/core/util/random/RandomChanceSkill.java

+ 4 - 0
core/src/main/java/com/gmail/nossr50/core/TODO

@@ -6,3 +6,7 @@ This file is just going to take note of all the caveats of mcMMO code as I abstr
 2) mcMMO uses a a global reference of its Plugin class for Bukkit in order to schedule tasks
 
 3) Need to configure the logger
+
+4) Safety check the hardcore/vampirism commands
+
+5) Tweak configs to not do any string operations

+ 1 - 1
core/src/main/java/com/gmail/nossr50/core/config/AdvancedConfig.java

@@ -10,7 +10,7 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 import java.util.ArrayList;
 import java.util.List;
 
-@ConfigSerializable
+//@ConfigSerializable
 public class AdvancedConfig extends ConfigurableLoader {
 
     public static final String SKILLS = "Skills";

+ 7 - 4
core/src/main/java/com/gmail/nossr50/core/config/ConfigurableLoader.java

@@ -43,15 +43,18 @@ public abstract class ConfigurableLoader implements DefaultKeys, VersionedConfig
     /* CONFIG MANAGER */
     private ConfigurationLoader<CommentedConfigurationNode> configManager;
 
-    //TODO: Needed?
-    //private ConfigurationLoader<CommentedConfigurationNode> configManager;
+    public ConfigurableLoader(String pathToParentFolder, String relativePath) {
+        //TODO: Check if this works...
+        this(new File(pathToParentFolder), relativePath);
+        System.out.println("mcMMO Debug: Don't forget to check if loading config file by string instead of File works...");
+    }
 
-    public ConfigurableLoader(File pathToDataFolder, String relativePath) {
+    public ConfigurableLoader(File pathToParentFolder, String relativePath) {
         /*
          * These must be at the top
          */
         mkdirDefaults(); // Make our default config dir
-        DIRECTORY_DATA_FOLDER = pathToDataFolder; //Data Folder for our plugin
+        DIRECTORY_DATA_FOLDER = pathToParentFolder; //Data Folder for our plugin
         FILE_RELATIVE_PATH = relativePath; //Relative path to config from a parent folder
 
         //Attempt IO Operations

+ 5 - 4
core/src/main/java/com/gmail/nossr50/core/config/RankConfig.java

@@ -1,16 +1,17 @@
 package com.gmail.nossr50.core.config;
 
-import com.gmail.nossr50.core.mcmmo.skills.SubSkillType;
-import com.gmail.nossr50.core.mcmmo.skills.subskills.AbstractSubSkill;
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.skills.SubSkillType;
+import com.gmail.nossr50.core.skills.subskills.AbstractSubSkill;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class RankConfig extends AutoUpdateConfigLoader {
+public class RankConfig extends ConfigurableLoader {
     private static RankConfig instance;
 
     public RankConfig() {
-        super("skillranks.yml");
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"skillranks.yml");
         validate();
         this.instance = this;
     }

+ 4 - 3
core/src/main/java/com/gmail/nossr50/core/config/SoundConfig.java

@@ -1,12 +1,13 @@
 package com.gmail.nossr50.core.config;
 
-import com.gmail.nossr50.util.sounds.SoundType;
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.util.sounds.SoundType;
 
-public class SoundConfig extends AutoUpdateConfigLoader {
+public class SoundConfig extends ConfigurableLoader {
     private static SoundConfig instance;
 
     public SoundConfig() {
-        super("sounds.yml");
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "sounds.yml");
         validate();
         this.instance = this;
     }

+ 6 - 7
core/src/main/java/com/gmail/nossr50/core/config/WorldBlacklist.java

@@ -1,7 +1,7 @@
 package com.gmail.nossr50.core.config;
 
-import com.gmail.nossr50.mcMMO;
-import org.bukkit.World;
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.mcmmo.world.World;
 
 import java.io.*;
 import java.util.ArrayList;
@@ -12,10 +12,8 @@ import java.util.ArrayList;
 public class WorldBlacklist {
     private static ArrayList<String> blacklist;
     private final String blackListFileName = "world_blacklist.txt";
-    private mcMMO plugin;
 
-    public WorldBlacklist(mcMMO plugin) {
-        this.plugin = plugin;
+    public WorldBlacklist() {
         blacklist = new ArrayList<>();
         init();
     }
@@ -32,7 +30,8 @@ public class WorldBlacklist {
 
     public void init() {
         //Make the blacklist file if it doesn't exist
-        File blackListFile = new File(plugin.getDataFolder() + File.separator + blackListFileName);
+        //TODO: Check if this works
+        File blackListFile = new File(McmmoCore.getDataFolderPath().getAbsoluteFile() + File.separator + blackListFileName);
 
         try {
             if (!blackListFile.exists())
@@ -70,6 +69,6 @@ public class WorldBlacklist {
             e.printStackTrace();
         }
 
-        plugin.getLogger().info(blacklist.size() + " entries in mcMMO World Blacklist");
+        McmmoCore.getLogger().info(blacklist.size() + " entries in mcMMO World Blacklist");
     }
 }

+ 9 - 13
core/src/main/java/com/gmail/nossr50/core/config/experience/ExperienceConfig.java

@@ -1,25 +1,21 @@
 package com.gmail.nossr50.core.config.experience;
 
-import com.gmail.nossr50.core.config.AutoUpdateConfigLoader;
-import com.gmail.nossr50.core.mcmmo.experience.FormulaType;
-import com.gmail.nossr50.core.mcmmo.skills.MaterialType;
-import com.gmail.nossr50.core.mcmmo.skills.PrimarySkillType;
-import com.gmail.nossr50.core.mcmmo.skills.alchemy.PotionStage;
-import com.gmail.nossr50.util.StringUtils;
-import org.bukkit.Material;
-import org.bukkit.block.data.BlockData;
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarStyle;
-import org.bukkit.entity.EntityType;
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
+import com.gmail.nossr50.core.datatypes.experience.FormulaType;
+import com.gmail.nossr50.core.skills.MaterialType;
+import com.gmail.nossr50.core.skills.PotionStage;
+import com.gmail.nossr50.core.skills.PrimarySkillType;
+import com.gmail.nossr50.core.util.StringUtils;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class ExperienceConfig extends AutoUpdateConfigLoader {
+public class ExperienceConfig extends ConfigurableLoader {
     private static ExperienceConfig instance;
 
     private ExperienceConfig() {
-        super("experience.yml");
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"experience.yml");
         validate();
     }
 

+ 1 - 2
core/src/main/java/com/gmail/nossr50/core/config/mods/ArmorConfigManager.java

@@ -1,7 +1,6 @@
 package com.gmail.nossr50.core.config.mods;
 
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.util.ModManager;
+import com.gmail.nossr50.core.util.ModManager;
 
 import java.io.File;
 import java.util.regex.Pattern;

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/mods/CustomArmorConfig.java

@@ -1,6 +1,8 @@
 package com.gmail.nossr50.core.config.mods;
 
+import com.gmail.nossr50.core.McmmoCore;
 import com.gmail.nossr50.core.config.ConfigLoader;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.skills.ItemType;
 import com.gmail.nossr50.core.mcmmo.skills.MaterialType;
 import com.gmail.nossr50.skills.repair.repairables.Repairable;
@@ -14,7 +16,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-public class CustomArmorConfig extends ConfigLoader {
+public class CustomArmorConfig extends ConfigurableLoader {
     public List<Material> customBoots = new ArrayList<Material>();
     public List<Material> customChestplates = new ArrayList<Material>();
     public List<Material> customHelmets = new ArrayList<Material>();
@@ -23,7 +25,7 @@ public class CustomArmorConfig extends ConfigLoader {
     private boolean needsUpdate = false;
 
     protected CustomArmorConfig(String fileName) {
-        super("mods", fileName);
+        super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName);
         loadKeys();
     }
 

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/mods/CustomBlockConfig.java

@@ -1,6 +1,8 @@
 package com.gmail.nossr50.core.config.mods;
 
+import com.gmail.nossr50.core.McmmoCore;
 import com.gmail.nossr50.core.config.ConfigLoader;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.mods.CustomBlock;
 import org.bukkit.Material;
 import org.bukkit.configuration.ConfigurationSection;
@@ -10,7 +12,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
 
-public class CustomBlockConfig extends ConfigLoader {
+public class CustomBlockConfig extends ConfigurableLoader {
     public List<Material> customExcavationBlocks = new ArrayList<>();
     public List<Material> customHerbalismBlocks = new ArrayList<>();
     public List<Material> customMiningBlocks = new ArrayList<>();
@@ -22,7 +24,7 @@ public class CustomBlockConfig extends ConfigLoader {
     private boolean needsUpdate = false;
 
     protected CustomBlockConfig(String fileName) {
-        super("mods", fileName);
+        super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName);
         loadKeys();
     }
 

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/mods/CustomEntityConfig.java

@@ -1,6 +1,8 @@
 package com.gmail.nossr50.core.config.mods;
 
+import com.gmail.nossr50.core.McmmoCore;
 import com.gmail.nossr50.core.config.ConfigLoader;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.mods.CustomEntity;
 import org.apache.commons.lang.ClassUtils;
 import org.bukkit.Material;
@@ -8,12 +10,12 @@ import org.bukkit.inventory.ItemStack;
 
 import java.util.HashMap;
 
-public class CustomEntityConfig extends ConfigLoader {
+public class CustomEntityConfig extends ConfigurableLoader {
     public HashMap<String, CustomEntity> customEntityClassMap = new HashMap<String, CustomEntity>();
     public HashMap<String, CustomEntity> customEntityTypeMap = new HashMap<String, CustomEntity>();
 
     protected CustomEntityConfig(String fileName) {
-        super("mods", fileName);
+        super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName);
         loadKeys();
     }
 

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/mods/CustomToolConfig.java

@@ -1,6 +1,8 @@
 package com.gmail.nossr50.core.config.mods;
 
+import com.gmail.nossr50.core.McmmoCore;
 import com.gmail.nossr50.core.config.ConfigLoader;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.mods.CustomTool;
 import com.gmail.nossr50.core.mcmmo.skills.ItemType;
 import com.gmail.nossr50.core.mcmmo.skills.MaterialType;
@@ -16,7 +18,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
 
-public class CustomToolConfig extends ConfigLoader {
+public class CustomToolConfig extends ConfigurableLoader {
     public List<Material> customAxes = new ArrayList<Material>();
     public List<Material> customBows = new ArrayList<Material>();
     public List<Material> customHoes = new ArrayList<Material>();
@@ -28,7 +30,7 @@ public class CustomToolConfig extends ConfigLoader {
     private boolean needsUpdate = false;
 
     protected CustomToolConfig(String fileName) {
-        super("mods", fileName);
+        super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName);
         loadKeys();
     }
 

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/party/ItemWeightConfig.java

@@ -1,16 +1,18 @@
 package com.gmail.nossr50.core.config.party;
 
+import com.gmail.nossr50.core.McmmoCore;
 import com.gmail.nossr50.core.config.ConfigLoader;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.util.StringUtils;
 import org.bukkit.Material;
 
 import java.util.HashSet;
 
-public class ItemWeightConfig extends ConfigLoader {
+public class ItemWeightConfig extends ConfigurableLoader {
     private static ItemWeightConfig instance;
 
     private ItemWeightConfig() {
-        super("itemweights.yml");
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(), "itemweights.yml");
     }
 
     public static ItemWeightConfig getInstance() {

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/skills/alchemy/PotionConfig.java

@@ -1,5 +1,7 @@
 package com.gmail.nossr50.core.config.skills.alchemy;
 
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.colors.ChatColor;
 import com.gmail.nossr50.core.mcmmo.item.ItemStack;
 import com.gmail.nossr50.core.skills.primary.alchemy.AlchemyPotion;
@@ -10,7 +12,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class PotionConfig extends ConfigLoader {
+public class PotionConfig extends ConfigurableLoader {
     private static PotionConfig instance;
 
     private List<ItemStack> concoctionsIngredientsTierOne = new ArrayList<ItemStack>();
@@ -25,7 +27,7 @@ public class PotionConfig extends ConfigLoader {
     private Map<String, AlchemyPotion> potionMap = new HashMap<String, AlchemyPotion>();
 
     private PotionConfig() {
-        super("potions.yml");
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"potions.yml");
         loadKeys();
     }
 

+ 2 - 1
core/src/main/java/com/gmail/nossr50/core/config/skills/repair/RepairConfig.java

@@ -1,6 +1,7 @@
 package com.gmail.nossr50.config.skills.repair;
 
 import com.gmail.nossr50.config.ConfigLoader;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.skills.ItemType;
 import com.gmail.nossr50.core.mcmmo.skills.MaterialType;
 import com.gmail.nossr50.skills.repair.repairables.Repairable;
@@ -15,7 +16,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-public class RepairConfig extends ConfigLoader {
+public class RepairConfig extends ConfigurableLoader {
     private List<Repairable> repairables;
 
     public RepairConfig(String fileName) {

+ 4 - 2
core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfig.java

@@ -1,6 +1,8 @@
 package com.gmail.nossr50.config.skills.salvage;
 
 import com.gmail.nossr50.config.ConfigLoader;
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
 import com.gmail.nossr50.core.mcmmo.skills.ItemType;
 import com.gmail.nossr50.core.mcmmo.skills.MaterialType;
 import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
@@ -15,11 +17,11 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-public class SalvageConfig extends ConfigLoader {
+public class SalvageConfig extends ConfigurableLoader {
     private List<Salvageable> salvageables;
 
     public SalvageConfig(String fileName) {
-        super(fileName);
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(), fileName);
         loadKeys();
     }
 

+ 4 - 4
core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfigManager.java

@@ -1,7 +1,7 @@
-package com.gmail.nossr50.config.skills.salvage;
+package com.gmail.nossr50.core.config.skills.salvage;
 
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
+
+import com.gmail.nossr50.core.skills.child.salvage.salvageables.Salvageable;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -31,7 +31,7 @@ public class SalvageConfigManager {
                 continue;
             }
 
-            SalvageConfig salvageConfig = new SalvageConfig(fileName);
+            com.gmail.nossr50.config.skills.salvage.SalvageConfig salvageConfig = new com.gmail.nossr50.config.skills.salvage.SalvageConfig(fileName);
             salvageables.addAll(salvageConfig.getLoadedSalvageables());
         }
     }

+ 9 - 16
core/src/main/java/com/gmail/nossr50/core/config/treasure/TreasureConfig.java

@@ -1,25 +1,18 @@
 package com.gmail.nossr50.core.config.treasure;
 
-import com.gmail.nossr50.core.config.ConfigLoader;
-import com.gmail.nossr50.util.EnchantmentUtils;
-import com.gmail.nossr50.util.StringUtils;
-import org.bukkit.ChatColor;
-import org.bukkit.Material;
-import org.bukkit.Tag;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.enchantments.Enchantment;
-import org.bukkit.entity.EntityType;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-import org.bukkit.inventory.meta.PotionMeta;
-import org.bukkit.potion.PotionData;
-import org.bukkit.potion.PotionType;
+import com.gmail.nossr50.core.McmmoCore;
+import com.gmail.nossr50.core.config.ConfigurableLoader;
+import com.gmail.nossr50.core.mcmmo.colors.ChatColor;
+import com.gmail.nossr50.core.mcmmo.item.ItemStack;
+import com.gmail.nossr50.core.skills.treasure.*;
+import com.gmail.nossr50.core.util.EnchantmentUtils;
+import com.gmail.nossr50.core.util.StringUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-public class TreasureConfig extends ConfigLoader {
+public class TreasureConfig extends ConfigurableLoader {
 
     private static TreasureConfig instance;
 
@@ -32,7 +25,7 @@ public class TreasureConfig extends ConfigLoader {
     public HashMap<Rarity, List<EnchantmentTreasure>> fishingEnchantments = new HashMap<Rarity, List<EnchantmentTreasure>>();
 
     private TreasureConfig() {
-        super("treasures.yml");
+        super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"treasures.yml");
         loadKeys();
         validate();
     }

+ 1 - 1
core/src/main/java/com/gmail/nossr50/core/util/random/RandomChanceSkill.java

@@ -2,10 +2,10 @@ package com.gmail.nossr50.core.util.random;
 
 import com.gmail.nossr50.core.config.AdvancedConfig;
 import com.gmail.nossr50.core.data.UserManager;
+import com.gmail.nossr50.core.mcmmo.entity.Player;
 import com.gmail.nossr50.core.skills.PrimarySkillType;
 import com.gmail.nossr50.core.skills.SubSkillType;
 import com.gmail.nossr50.core.util.Permissions;
-import org.bukkit.entity.Player;
 
 public class RandomChanceSkill implements RandomChanceExecution {