diff --git a/core/src/main/java/com/gmail/nossr50/core/TODO b/core/src/main/java/com/gmail/nossr50/core/TODO index d3a51edb4..bd54d3d0d 100644 --- a/core/src/main/java/com/gmail/nossr50/core/TODO +++ b/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 \ No newline at end of file diff --git a/core/src/main/java/com/gmail/nossr50/core/config/AdvancedConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/AdvancedConfig.java index b446e3ef8..0b9f4023c 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/AdvancedConfig.java +++ b/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"; diff --git a/core/src/main/java/com/gmail/nossr50/core/config/ConfigurableLoader.java b/core/src/main/java/com/gmail/nossr50/core/config/ConfigurableLoader.java index 31ee0b558..de9d874f4 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/ConfigurableLoader.java +++ b/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 configManager; - //TODO: Needed? - //private ConfigurationLoader 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 diff --git a/core/src/main/java/com/gmail/nossr50/core/config/RankConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/RankConfig.java index 131e32acf..5d2ad8f34 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/RankConfig.java +++ b/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; } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/SoundConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/SoundConfig.java index 9b395a422..aabae1077 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/SoundConfig.java +++ b/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; } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/WorldBlacklist.java b/core/src/main/java/com/gmail/nossr50/core/config/WorldBlacklist.java index 5d01f848b..11e76b382 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/WorldBlacklist.java +++ b/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 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"); } } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/experience/ExperienceConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/experience/ExperienceConfig.java index fd5e85e24..6a5621bb2 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/experience/ExperienceConfig.java +++ b/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(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/mods/ArmorConfigManager.java b/core/src/main/java/com/gmail/nossr50/core/config/mods/ArmorConfigManager.java index 991294864..2bb39b343 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/mods/ArmorConfigManager.java +++ b/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; diff --git a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomArmorConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomArmorConfig.java index 214438936..dc119ef6d 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomArmorConfig.java +++ b/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 customBoots = new ArrayList(); public List customChestplates = new ArrayList(); public List customHelmets = new ArrayList(); @@ -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(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomBlockConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomBlockConfig.java index b60b1e652..6d995a367 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomBlockConfig.java +++ b/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 customExcavationBlocks = new ArrayList<>(); public List customHerbalismBlocks = new ArrayList<>(); public List 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(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomEntityConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomEntityConfig.java index 7852b8cb8..95293cade 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomEntityConfig.java +++ b/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 customEntityClassMap = new HashMap(); public HashMap customEntityTypeMap = new HashMap(); protected CustomEntityConfig(String fileName) { - super("mods", fileName); + super(McmmoCore.getDataFolderPath().getPath() + "mods", fileName); loadKeys(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomToolConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomToolConfig.java index 550256a2b..4a8ba56c2 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/mods/CustomToolConfig.java +++ b/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 customAxes = new ArrayList(); public List customBows = new ArrayList(); public List customHoes = new ArrayList(); @@ -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(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/party/ItemWeightConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/party/ItemWeightConfig.java index 1558c1495..64cde7761 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/party/ItemWeightConfig.java +++ b/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() { diff --git a/core/src/main/java/com/gmail/nossr50/core/config/skills/alchemy/PotionConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/skills/alchemy/PotionConfig.java index accdbedbd..9e434116e 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/skills/alchemy/PotionConfig.java +++ b/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 concoctionsIngredientsTierOne = new ArrayList(); @@ -25,7 +27,7 @@ public class PotionConfig extends ConfigLoader { private Map potionMap = new HashMap(); private PotionConfig() { - super("potions.yml"); + super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"potions.yml"); loadKeys(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/skills/repair/RepairConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/skills/repair/RepairConfig.java index 685ea4515..f0238a5e4 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/skills/repair/RepairConfig.java +++ b/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 repairables; public RepairConfig(String fileName) { diff --git a/core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfig.java index 08d63f924..5a4ad4d79 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfig.java +++ b/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 salvageables; public SalvageConfig(String fileName) { - super(fileName); + super(McmmoCore.getDataFolderPath().getAbsoluteFile(), fileName); loadKeys(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfigManager.java b/core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfigManager.java index 3fdca28d6..3324a0ce2 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/skills/salvage/SalvageConfigManager.java +++ b/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()); } } diff --git a/core/src/main/java/com/gmail/nossr50/core/config/treasure/TreasureConfig.java b/core/src/main/java/com/gmail/nossr50/core/config/treasure/TreasureConfig.java index 23647ac9a..3feff02f4 100644 --- a/core/src/main/java/com/gmail/nossr50/core/config/treasure/TreasureConfig.java +++ b/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> fishingEnchantments = new HashMap>(); private TreasureConfig() { - super("treasures.yml"); + super(McmmoCore.getDataFolderPath().getAbsoluteFile(),"treasures.yml"); loadKeys(); validate(); } diff --git a/core/src/main/java/com/gmail/nossr50/core/util/random/RandomChanceSkill.java b/core/src/main/java/com/gmail/nossr50/core/util/random/RandomChanceSkill.java index 64770955e..eea8a2bda 100644 --- a/core/src/main/java/com/gmail/nossr50/core/util/random/RandomChanceSkill.java +++ b/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 {