diff --git a/src/main/java/com/gmail/nossr50/config/ConfigCollection.java b/src/main/java/com/gmail/nossr50/config/ConfigCollection.java deleted file mode 100644 index 2bfa42147..000000000 --- a/src/main/java/com/gmail/nossr50/config/ConfigCollection.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gmail.nossr50.config; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; - -/** - * Represents a config file that registers keys after its initialized - */ -public abstract class ConfigCollection extends Config implements Registers, GenericCollectionContainer { - - //The collection held by this class - protected Collection genericCollection; - - /** - * @param pathToParentFolder Path to the "parent" folder on disk - * @param relativePath Path to the config relative to the "parent" folder, this should mirror internal structure of resource files - * @param mergeNewKeys if true, the users config will add keys found in the internal file that are missing from the users file during load - * @param copyDefaults if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path - * @param removeOldKeys if true, the users config file will have keys not found in the internal default resource file of the same name and path removed - */ - public ConfigCollection(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) { - super(fileName, pathToParentFolder, relativePath, generateDefaults, mergeNewKeys, copyDefaults, removeOldKeys); - - //init - initCollection(); - - //DO NOT CALL THIS HERE - //register(); - } - - /** - * Initializes the generic collection held by this class - */ - private void initCollection() { - if (genericCollection == null) - genericCollection = new ArrayList<>(); - } - - @Override - public Collection getLoadedCollection() { - return this.genericCollection; - } - - @Override - public void unload() { - genericCollection.clear(); - } -} diff --git a/src/main/java/com/gmail/nossr50/config/ConfigManager.java b/src/main/java/com/gmail/nossr50/config/ConfigManager.java index efc878dbf..96d5e55a7 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigManager.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigManager.java @@ -47,13 +47,9 @@ import com.gmail.nossr50.datatypes.experience.CustomXPPerk; import com.gmail.nossr50.datatypes.experience.FormulaType; import com.gmail.nossr50.datatypes.party.PartyFeature; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.repair.repairables.Repairable; -import com.gmail.nossr50.skills.repair.repairables.RepairableManager; import com.gmail.nossr50.skills.salvage.salvageables.Salvageable; -import com.gmail.nossr50.skills.salvage.salvageables.SalvageableManager; -import com.gmail.nossr50.util.experience.ExperienceMapManager; import com.google.common.collect.Maps; import com.google.common.reflect.TypeToken; import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection; @@ -67,32 +63,15 @@ import java.util.HashMap; /** * The Config Manager handles initializing, loading, and unloading registers for all configs that mcMMO uses * This makes sure that mcMMO properly loads and unloads its values on reload - *

- * Config Manager also holds all of our MultiConfigContainers + * Settings in configs are sometimes not platform-ready, you can find platform ready implementations in the {@link com.gmail.nossr50.core.DynamicSettingsManager DynamicSettingsManager} */ public final class ConfigManager { - /* UNLOAD REGISTER */ - - private SkillPropertiesManager skillPropertiesManager; - private ArrayList unloadables; - - /* COLLECTION MANAGERS */ + /* File array - Used for backups */ private ArrayList userFiles; - private RepairableManager repairableManager; - private SalvageableManager salvageableManager; - /* CUSTOM SERIALIZERS */ - private BonusDropManager bonusDropManager; - - /* MOD MANAGERS */ - - //TODO: Add these back when modded servers become a thing again - - /* MISC MANAGERS */ + /* Custom Serialization */ private TypeSerializerCollection customSerializers; - private ExperienceMapManager experienceMapManager; -// private PotionManager potionManager; /* CONFIG INSTANCES */ @@ -134,7 +113,6 @@ public final class ConfigManager { private ConfigSmelting configSmelting; private ConfigSalvage configSalvage; - private HashMap> skillConfigLoaders; //Data @@ -160,7 +138,6 @@ public final class ConfigManager { private ArrayList configErrors; //Collect errors to whine about to server admins public ConfigManager() { - unloadables = new ArrayList<>(); userFiles = new ArrayList<>(); } @@ -174,24 +151,12 @@ public final class ConfigManager { //Serialized Data initSerializedDataFiles(); - //Skill Property Registers - skillPropertiesManager = new SkillPropertiesManager(); - skillPropertiesManager.fillRegisters(); - //Assign Maps partyItemWeights = Maps.newHashMap(configParty.getConfig().getPartyItemShare().getItemShareMap()); //Item Share Weights partyFeatureUnlocks = Maps.newHashMap(configParty.getConfig().getPartyXP().getPartyLevel().getPartyFeatureUnlockMap()); //Party Progression //YAML Configs initYAMLConfigs(); - - /* - * Managers - */ - - // Register Managers - initMiscManagers(); - initCollectionManagers(); } private void initYAMLConfigs() { @@ -323,79 +288,6 @@ public final class ConfigManager { skillConfigLoaders.put(primarySkillType, SkillConfigFactory.initSkillConfig(primarySkillType, clazz)); } - /** - * Misc managers - */ - private void initMiscManagers() { - experienceMapManager = new ExperienceMapManager(); - //Set the global XP val - experienceMapManager.setGlobalXpMult(getConfigExperience().getGlobalXPMultiplier()); - experienceMapManager.buildBlockXPMaps(); //Block XP value maps - experienceMapManager.fillCombatXPMultiplierMap(getConfigExperience().getCombatExperienceMap()); -// potionManager = new PotionManager(); - } - - /** - * Initializes any managers related to config collections - */ - private void initCollectionManagers() { - // Handles registration of repairables - repairableManager = new RepairableManager(getRepairables()); - unloadables.add(repairableManager); - - // Handles registration of salvageables - salvageableManager = new SalvageableManager(getSalvageables()); - unloadables.add(salvageableManager); - - // Handles registration of bonus drops - bonusDropManager = new BonusDropManager(); - unloadables.add(bonusDropManager); - - //Register Bonus Drops - registerBonusDrops(); - } - - /** - * Get all loaded repairables (loaded from all repairable configs) - * - * @return the currently loaded repairables - */ - public ArrayList getRepairables() { - return getConfigRepair().getConfigRepairablesList(); - } - - /** - * Get all loaded salvageables (loaded from all salvageable configs) - * - * @return the currently loaded salvageables - */ - public ArrayList getSalvageables() { - return getConfigSalvage().getConfigSalvageablesList(); - } - - /** - * Unloads all config options (prepares for reload) - */ - public void unloadAllConfigsAndRegisters() { - //Unload - for (Unload unloadable : unloadables) { - unloadable.unload(); - } - - //Clear - unloadables.clear(); - userFiles.clear(); - } - - /** - * Registers an unloadable - * Unloadables call unload() on plugin disable to cleanup registries - */ - public void registerUnloadable(Unload unload) { - if (!unloadables.contains(unload)) - unloadables.add(unload); - } - /** * Registers an unloadable * Unloadables call unload() on plugin disable to cleanup registries @@ -405,15 +297,6 @@ public final class ConfigManager { userFiles.add(userFile); } - /** - * Registers bonus drops from several skill configs - */ - public void registerBonusDrops() { - bonusDropManager.addToWhitelistByNameID(getConfigMining().getBonusDrops()); -// bonusDropManager.addToWhitelistByNameID(configHerbalism.getBonusDrops()); -// bonusDropManager.addToWhitelistByNameID(configWoodcutting.getBonusDrops()); - } - public void validateConfigs() { } @@ -424,7 +307,6 @@ public final class ConfigManager { */ public void reloadConfigs() { mcMMO.p.getLogger().info("Reloading config values..."); - unloadAllConfigsAndRegisters(); //Unload Everything loadConfigs(); //Load everything again } @@ -441,14 +323,6 @@ public final class ConfigManager { return userFiles; } - public RepairableManager getRepairableManager() { - return repairableManager; - } - - public SalvageableManager getSalvageableManager() { - return salvageableManager; - } - public MainConfig getMainConfig() { return mainConfig; } @@ -489,10 +363,6 @@ public final class ConfigManager { return experienceConfig; } - public ExperienceMapManager getExperienceMapManager() { - return experienceMapManager; - } - public ConfigDatabase getConfigDatabase() { return configDatabase.getConfig(); } @@ -637,10 +507,6 @@ public final class ConfigManager { return configSalvage; } - public BonusDropManager getBonusDropManager() { - return bonusDropManager; - } - /** * Checks if this plugin is using retro mode * Retro mode is a 0-1000 skill system @@ -652,23 +518,7 @@ public final class ConfigManager { return getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().isRetroModeEnabled(); } - public boolean isBonusDropsEnabled(Material material) { - return getBonusDropManager().isBonusDropWhitelisted(material); - } - - public double getSkillMaxBonusLevel(SubSkillType subSkillType) { - return skillPropertiesManager.getMaxBonusLevel(subSkillType); - } - - public double getSkillMaxChance(SubSkillType subSkillType) { - return skillPropertiesManager.getMaxChance(subSkillType); - } - public ConfigExperience getConfigExperience() { return configExperience.getConfig(); } - - public SkillPropertiesManager getSkillPropertiesManager() { - return skillPropertiesManager; - } } diff --git a/src/main/java/com/gmail/nossr50/config/GenericCollectionContainer.java b/src/main/java/com/gmail/nossr50/config/GenericCollectionContainer.java deleted file mode 100644 index 3176b6fd6..000000000 --- a/src/main/java/com/gmail/nossr50/config/GenericCollectionContainer.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gmail.nossr50.config; - -import java.util.Collection; - -/** - * Represents a class that contains a generic collection - * - * @param - */ -public interface GenericCollectionContainer { - /** - * Grab the collection held by this class - * - * @return the collection held by this class - */ - Collection getLoadedCollection(); -} diff --git a/src/main/java/com/gmail/nossr50/config/Registers.java b/src/main/java/com/gmail/nossr50/config/Registers.java deleted file mode 100644 index b8dda6fb5..000000000 --- a/src/main/java/com/gmail/nossr50/config/Registers.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gmail.nossr50.config; - -/** - * A class that is expected to register one thing into another thing - */ -public interface Registers extends Unload { - /** - * Register stuff - */ - void register(); -} diff --git a/src/main/java/com/gmail/nossr50/config/RegistersKeys.java b/src/main/java/com/gmail/nossr50/config/RegistersKeys.java deleted file mode 100644 index 4ef2048e9..000000000 --- a/src/main/java/com/gmail/nossr50/config/RegistersKeys.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.gmail.nossr50.config; - -/** - * A class that registers keys - */ -public interface RegistersKeys { - /** - * Loads up keys - */ - void loadKeys(); -} diff --git a/src/main/java/com/gmail/nossr50/config/treasure/ExcavationTreasureConfig.java b/src/main/java/com/gmail/nossr50/config/treasure/ExcavationTreasureConfig.java index 04f9ea814..613395bd9 100644 --- a/src/main/java/com/gmail/nossr50/config/treasure/ExcavationTreasureConfig.java +++ b/src/main/java/com/gmail/nossr50/config/treasure/ExcavationTreasureConfig.java @@ -2,7 +2,6 @@ package com.gmail.nossr50.config.treasure; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.ConfigConstants; -import com.gmail.nossr50.config.Registers; import com.gmail.nossr50.config.UnsafeValueValidation; import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure; import com.gmail.nossr50.mcMMO; diff --git a/src/main/java/com/gmail/nossr50/config/treasure/FishingTreasureConfig.java b/src/main/java/com/gmail/nossr50/config/treasure/FishingTreasureConfig.java index 307418cdc..dca5f9de6 100644 --- a/src/main/java/com/gmail/nossr50/config/treasure/FishingTreasureConfig.java +++ b/src/main/java/com/gmail/nossr50/config/treasure/FishingTreasureConfig.java @@ -2,7 +2,6 @@ package com.gmail.nossr50.config.treasure; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.ConfigConstants; -import com.gmail.nossr50.config.Registers; import com.gmail.nossr50.config.UnsafeValueValidation; import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure; import com.gmail.nossr50.datatypes.treasure.FishingTreasure; diff --git a/src/main/java/com/gmail/nossr50/config/treasure/HerbalismTreasureConfig.java b/src/main/java/com/gmail/nossr50/config/treasure/HerbalismTreasureConfig.java index 77df3d9a3..13ad983b2 100644 --- a/src/main/java/com/gmail/nossr50/config/treasure/HerbalismTreasureConfig.java +++ b/src/main/java/com/gmail/nossr50/config/treasure/HerbalismTreasureConfig.java @@ -2,7 +2,6 @@ package com.gmail.nossr50.config.treasure; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.ConfigConstants; -import com.gmail.nossr50.config.Registers; import com.gmail.nossr50.config.UnsafeValueValidation; import com.gmail.nossr50.datatypes.treasure.HylianTreasure; import com.gmail.nossr50.mcMMO; diff --git a/src/main/java/com/gmail/nossr50/config/BonusDropManager.java b/src/main/java/com/gmail/nossr50/core/BonusDropManager.java similarity index 96% rename from src/main/java/com/gmail/nossr50/config/BonusDropManager.java rename to src/main/java/com/gmail/nossr50/core/BonusDropManager.java index e25931d32..bf612b666 100644 --- a/src/main/java/com/gmail/nossr50/config/BonusDropManager.java +++ b/src/main/java/com/gmail/nossr50/core/BonusDropManager.java @@ -1,5 +1,6 @@ -package com.gmail.nossr50.config; +package com.gmail.nossr50.core; +import com.gmail.nossr50.config.Unload; import com.gmail.nossr50.mcMMO; import org.bukkit.Material; diff --git a/src/main/java/com/gmail/nossr50/config/ChunkConversionOptions.java b/src/main/java/com/gmail/nossr50/core/ChunkConversionOptions.java similarity index 96% rename from src/main/java/com/gmail/nossr50/config/ChunkConversionOptions.java rename to src/main/java/com/gmail/nossr50/core/ChunkConversionOptions.java index be27907f7..e088771ff 100644 --- a/src/main/java/com/gmail/nossr50/config/ChunkConversionOptions.java +++ b/src/main/java/com/gmail/nossr50/core/ChunkConversionOptions.java @@ -1,4 +1,4 @@ -package com.gmail.nossr50.config; +package com.gmail.nossr50.core; /** * This class is used to define settings for upgrading EXTREMELY OLD versions of mcMMO to newer versions diff --git a/src/main/java/com/gmail/nossr50/core/DynamicSettingsManager.java b/src/main/java/com/gmail/nossr50/core/DynamicSettingsManager.java new file mode 100644 index 000000000..8f14871cc --- /dev/null +++ b/src/main/java/com/gmail/nossr50/core/DynamicSettingsManager.java @@ -0,0 +1,140 @@ +package com.gmail.nossr50.core; + +import com.gmail.nossr50.datatypes.skills.SubSkillType; +import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.skills.repair.repairables.Repairable; +import com.gmail.nossr50.skills.repair.repairables.RepairableManager; +import com.gmail.nossr50.skills.salvage.salvageables.Salvageable; +import com.gmail.nossr50.skills.salvage.salvageables.SalvageableManager; +import com.gmail.nossr50.util.experience.ExperienceMapManager; +import org.bukkit.Material; + +import java.util.ArrayList; + +/** + * The DSM (Dynamic Settings Manager) is responsible for + * 1) Inits managers which convert platform generic settings from the configs (specifically pulling from ConfigManager) into usable data for this platform + * 2) Retrieving or Setting variables for core systems in mcMMO without permanent change (WIP) + * + * This class is a WIP, expect API breakages in the future + * Currently implementation of this class will only be friendly to Bukkit, this will change in the near future + */ +public class DynamicSettingsManager { + + /* UNLOAD REGISTER */ + private SkillPropertiesManager skillPropertiesManager; + + /* COLLECTION MANAGERS */ + private RepairableManager repairableManager; + private SalvageableManager salvageableManager; + + /* Platform Ready Managers */ + private BonusDropManager bonusDropManager; + private ExperienceMapManager experienceMapManager; + + + public DynamicSettingsManager() { + /* + * Managers + */ + + // Register Managers + initSkillPropertiesManager(); + initMiscManagers(); + initCollectionManagers(); + } + + private void initSkillPropertiesManager() { + skillPropertiesManager = new SkillPropertiesManager(); + skillPropertiesManager.fillRegisters(); + } + + /** + * Misc managers + */ + private void initMiscManagers() { + experienceMapManager = new ExperienceMapManager(); + //Set the global XP val + experienceMapManager.setGlobalXpMult(mcMMO.getConfigManager().getConfigExperience().getGlobalXPMultiplier()); + experienceMapManager.buildBlockXPMaps(); //Block XP value maps + experienceMapManager.fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap()); +// potionManager = new PotionManager(); + } + + /** + * Initializes any managers related to config collections + */ + private void initCollectionManagers() { + // Handles registration of repairables + repairableManager = new RepairableManager(getRepairables()); + + // Handles registration of salvageables + salvageableManager = new SalvageableManager(getSalvageables()); + + // Handles registration of bonus drops + bonusDropManager = new BonusDropManager(); + + //Register Bonus Drops + registerBonusDrops(); + } + + /** + * Get all loaded repairables (loaded from all repairable configs) + * + * @return the currently loaded repairables + */ + public ArrayList getRepairables() { + return mcMMO.getConfigManager().getConfigRepair().getConfigRepairablesList(); + } + + /** + * Get all loaded salvageables (loaded from all salvageable configs) + * + * @return the currently loaded salvageables + */ + public ArrayList getSalvageables() { + return mcMMO.getConfigManager().getConfigSalvage().getConfigSalvageablesList(); + } + + /** + * Registers bonus drops from several skill configs + */ + public void registerBonusDrops() { + bonusDropManager.addToWhitelistByNameID(mcMMO.getConfigManager().getConfigMining().getBonusDrops()); +// bonusDropManager.addToWhitelistByNameID(configHerbalism.getBonusDrops()); +// bonusDropManager.addToWhitelistByNameID(configWoodcutting.getBonusDrops()); + } + + public RepairableManager getRepairableManager() { + return repairableManager; + } + + public SalvageableManager getSalvageableManager() { + return salvageableManager; + } + + public ExperienceMapManager getExperienceMapManager() { + return experienceMapManager; + } + + public BonusDropManager getBonusDropManager() { + return bonusDropManager; + } + + public boolean isBonusDropsEnabled(Material material) { + return getBonusDropManager().isBonusDropWhitelisted(material); + } + + public double getSkillMaxBonusLevel(SubSkillType subSkillType) { + return skillPropertiesManager.getMaxBonusLevel(subSkillType); + } + + public double getSkillMaxChance(SubSkillType subSkillType) { + return skillPropertiesManager.getMaxChance(subSkillType); + } + + public SkillPropertiesManager getSkillPropertiesManager() { + return skillPropertiesManager; + } + +} diff --git a/src/main/java/com/gmail/nossr50/config/SkillPropertiesManager.java b/src/main/java/com/gmail/nossr50/core/SkillPropertiesManager.java similarity index 97% rename from src/main/java/com/gmail/nossr50/config/SkillPropertiesManager.java rename to src/main/java/com/gmail/nossr50/core/SkillPropertiesManager.java index 18e0e73f0..3fb485897 100644 --- a/src/main/java/com/gmail/nossr50/config/SkillPropertiesManager.java +++ b/src/main/java/com/gmail/nossr50/core/SkillPropertiesManager.java @@ -1,4 +1,4 @@ -package com.gmail.nossr50.config; +package com.gmail.nossr50.core; import com.gmail.nossr50.config.hocon.skills.ConfigSubSkillScalingRNG; import com.gmail.nossr50.datatypes.skills.SubSkillType; diff --git a/src/main/java/com/gmail/nossr50/dumpster/ModManager.java b/src/main/java/com/gmail/nossr50/dumpster/ModManager.java index 0f9570f4a..8486240bb 100644 --- a/src/main/java/com/gmail/nossr50/dumpster/ModManager.java +++ b/src/main/java/com/gmail/nossr50/dumpster/ModManager.java @@ -1,10 +1,10 @@ //package com.gmail.nossr50.util; // //import com.gmail.nossr50.config.MainConfig; -//import com.gmail.nossr50.config.mods.CustomArmorConfig; -//import com.gmail.nossr50.config.mods.CustomBlockConfig; -//import com.gmail.nossr50.config.mods.CustomEntityConfig; -//import com.gmail.nossr50.config.mods.CustomToolConfig; +//import com.gmail.nossr50.dumpster.mods.CustomArmorConfig; +//import com.gmail.nossr50.dumpster.mods.CustomBlockConfig; +//import com.gmail.nossr50.dumpster.mods.CustomEntityConfig; +//import com.gmail.nossr50.dumpster.mods.CustomToolConfig; //import com.gmail.nossr50.datatypes.mods.CustomBlock; //import com.gmail.nossr50.datatypes.mods.CustomEntity; //import com.gmail.nossr50.datatypes.mods.CustomTool; diff --git a/src/main/java/com/gmail/nossr50/config/mods/ArmorConfigManager.java b/src/main/java/com/gmail/nossr50/dumpster/mods/ArmorConfigManager.java similarity index 96% rename from src/main/java/com/gmail/nossr50/config/mods/ArmorConfigManager.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/ArmorConfigManager.java index d54d98b8c..0faee6f8e 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/ArmorConfigManager.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/ArmorConfigManager.java @@ -1,4 +1,4 @@ -//package com.gmail.nossr50.config.mods; +//package com.gmail.nossr50.dumpster.mods; // //public class ArmorConfigManager { // //TODO: Commented out until modded servers appear again diff --git a/src/main/java/com/gmail/nossr50/config/mods/BlockConfigManager.java b/src/main/java/com/gmail/nossr50/dumpster/mods/BlockConfigManager.java similarity index 96% rename from src/main/java/com/gmail/nossr50/config/mods/BlockConfigManager.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/BlockConfigManager.java index b5467a731..3c199ab59 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/BlockConfigManager.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/BlockConfigManager.java @@ -1,4 +1,4 @@ -//package com.gmail.nossr50.config.mods; +//package com.gmail.nossr50.dumpster.mods; // //public class BlockConfigManager { // //TODO: Commented out until modded servers appear again diff --git a/src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomArmorConfig.java similarity index 99% rename from src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/CustomArmorConfig.java index e9c63c9b3..8f7ff757a 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/CustomArmorConfig.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomArmorConfig.java @@ -1,4 +1,4 @@ -//package com.gmail.nossr50.config.mods; +//package com.gmail.nossr50.dumpster.mods; // //import com.gmail.nossr50.config.ConfigCollection; //import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory; diff --git a/src/main/java/com/gmail/nossr50/config/mods/CustomBlockConfig.java b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomBlockConfig.java similarity index 98% rename from src/main/java/com/gmail/nossr50/config/mods/CustomBlockConfig.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/CustomBlockConfig.java index c30b7f4c2..5c7828211 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/CustomBlockConfig.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomBlockConfig.java @@ -1,4 +1,4 @@ -//package com.gmail.nossr50.config.mods; +//package com.gmail.nossr50.dumpster.mods; // //import com.gmail.nossr50.config.ConfigCollection; //import com.gmail.nossr50.datatypes.mods.CustomBlock; diff --git a/src/main/java/com/gmail/nossr50/config/mods/CustomEntityConfig.java b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomEntityConfig.java similarity index 98% rename from src/main/java/com/gmail/nossr50/config/mods/CustomEntityConfig.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/CustomEntityConfig.java index 56a92929c..542db5cc2 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/CustomEntityConfig.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomEntityConfig.java @@ -1,5 +1,5 @@ // -//package com.gmail.nossr50.config.mods; +//package com.gmail.nossr50.dumpster.mods; // //import com.gmail.nossr50.config.Config; //import com.gmail.nossr50.datatypes.mods.CustomEntity; diff --git a/src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomToolConfig.java similarity index 99% rename from src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/CustomToolConfig.java index aa33836e5..f39000679 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/CustomToolConfig.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/CustomToolConfig.java @@ -1,4 +1,4 @@ -package com.gmail.nossr50.config.mods; +package com.gmail.nossr50.dumpster.mods; /* public class CustomToolConfig extends Config { diff --git a/src/main/java/com/gmail/nossr50/config/mods/EntityConfigManager.java b/src/main/java/com/gmail/nossr50/dumpster/mods/EntityConfigManager.java similarity index 96% rename from src/main/java/com/gmail/nossr50/config/mods/EntityConfigManager.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/EntityConfigManager.java index a30d21449..c9c817efd 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/EntityConfigManager.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/EntityConfigManager.java @@ -1,5 +1,5 @@ /* -package com.gmail.nossr50.config.mods; +package com.gmail.nossr50.dumpster.mods; public class EntityConfigManager { diff --git a/src/main/java/com/gmail/nossr50/config/mods/ToolConfigManager.java b/src/main/java/com/gmail/nossr50/dumpster/mods/ToolConfigManager.java similarity index 96% rename from src/main/java/com/gmail/nossr50/config/mods/ToolConfigManager.java rename to src/main/java/com/gmail/nossr50/dumpster/mods/ToolConfigManager.java index eb8f96fc6..cc1fb9313 100644 --- a/src/main/java/com/gmail/nossr50/config/mods/ToolConfigManager.java +++ b/src/main/java/com/gmail/nossr50/dumpster/mods/ToolConfigManager.java @@ -1,5 +1,5 @@ /* -package com.gmail.nossr50.config.mods; +package com.gmail.nossr50.dumpster.mods; public class ToolConfigManager { diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index fb871ab7c..57191680f 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -10,6 +10,7 @@ import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyExperienceSharing; import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyLevel; import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling; import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard; +import com.gmail.nossr50.core.DynamicSettingsManager; import com.gmail.nossr50.database.DatabaseManager; import com.gmail.nossr50.database.DatabaseManagerFactory; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; @@ -81,6 +82,7 @@ public class mcMMO extends JavaPlugin { /* Managers */ private static ChunkManager placeStore; private static ConfigManager configManager; + private static DynamicSettingsManager dynamicSettingsManager; private static DatabaseManager databaseManager; private static FormulaManager formulaManager; private static MaterialMapStore materialMapStore; @@ -128,11 +130,11 @@ public class mcMMO extends JavaPlugin { } public static RepairableManager getRepairableManager() { - return configManager.getRepairableManager(); + return dynamicSettingsManager.getRepairableManager(); } public static SalvageableManager getSalvageableManager() { - return configManager.getSalvageableManager(); + return dynamicSettingsManager.getSalvageableManager(); } public static DatabaseManager getDatabaseManager() { @@ -246,6 +248,7 @@ public class mcMMO extends JavaPlugin { //modManager = new ModManager(); loadConfigFiles(); + registerDynamicSettings(); //Do this after configs are loaded if (healthBarPluginEnabled) { getLogger().info("HealthBar plugin found, mcMMO's healthbars are automatically disabled."); @@ -429,8 +432,6 @@ public class mcMMO extends JavaPlugin { } databaseManager.onDisable(); - //Unload configs last - configManager.unloadAllConfigsAndRegisters(); debug("Was disabled."); // How informative! } @@ -551,6 +552,10 @@ public class mcMMO extends JavaPlugin { localesDirectoryPath.mkdirs(); } + private void registerDynamicSettings() { + dynamicSettingsManager = new DynamicSettingsManager(); + } + private void loadConfigFiles() { configManager = new ConfigManager(); configManager.loadConfigs(); @@ -595,28 +600,6 @@ public class mcMMO extends JavaPlugin { }, 40); } - /*private void checkModConfigs() { - if (!MainConfig.getInstance().getToolModsEnabled()) { - getLogger().warning("Cauldron implementation found, but the custom tool config for mcMMO is disabled!"); - getLogger().info("To enable, set Mods.Tool_Mods_Enabled to TRUE in config.yml."); - } - - if (!MainConfig.getInstance().getArmorModsEnabled()) { - getLogger().warning("Cauldron implementation found, but the custom armor config for mcMMO is disabled!"); - getLogger().info("To enable, set Mods.Armor_Mods_Enabled to TRUE in config.yml."); - } - - if (!MainConfig.getInstance().getBlockModsEnabled()) { - getLogger().warning("Cauldron implementation found, but the custom block config for mcMMO is disabled!"); - getLogger().info("To enable, set Mods.Block_Mods_Enabled to TRUE in config.yml."); - } - - if (!MainConfig.getInstance().getEntityModsEnabled()) { - getLogger().warning("Cauldron implementation found, but the custom entity config for mcMMO is disabled!"); - getLogger().info("To enable, set Mods.Entity_Mods_Enabled to TRUE in config.yml."); - } - }*/ - private void scheduleTasks() { // Periodic save timer (Saves every 10 minutes by default) long saveIntervalTicks = Math.max(1200, (getConfigManager().getConfigDatabase().getConfigSectionDatabaseGeneral().getSaveIntervalMinutes() * (20 * 60))); @@ -663,6 +646,10 @@ public class mcMMO extends JavaPlugin { } } + public static DynamicSettingsManager getDynamicSettingsManager() { + return dynamicSettingsManager; + } + private enum ServerSoftwareType { PAPER, SPIGOT, diff --git a/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableManager.java b/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableManager.java index 0d4a41528..2dd21610f 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableManager.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/repairables/RepairableManager.java @@ -1,13 +1,12 @@ package com.gmail.nossr50.skills.repair.repairables; -import com.gmail.nossr50.config.Unload; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import java.util.HashMap; import java.util.List; -public class RepairableManager implements Unload { +public class RepairableManager { private HashMap repairables; public RepairableManager(List repairablesCollection) { @@ -15,11 +14,6 @@ public class RepairableManager implements Unload { registerRepairables(repairablesCollection); } - @Override - public void unload() { - repairables.clear(); - } - public void registerRepairable(Repairable repairable) { Material item = repairable.getItemMaterial(); repairables.put(item, repairable); diff --git a/src/main/java/com/gmail/nossr50/skills/salvage/salvageables/SalvageableManager.java b/src/main/java/com/gmail/nossr50/skills/salvage/salvageables/SalvageableManager.java index b4a026e65..f2aaab72a 100644 --- a/src/main/java/com/gmail/nossr50/skills/salvage/salvageables/SalvageableManager.java +++ b/src/main/java/com/gmail/nossr50/skills/salvage/salvageables/SalvageableManager.java @@ -1,6 +1,5 @@ package com.gmail.nossr50.skills.salvage.salvageables; -import com.gmail.nossr50.config.Unload; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; @@ -8,7 +7,7 @@ import java.util.HashMap; import java.util.List; -public class SalvageableManager implements Unload { +public class SalvageableManager { private HashMap salvageables; /*public SalvageableManager() { @@ -20,11 +19,6 @@ public class SalvageableManager implements Unload { registerSalvageables(salvageablesCollection); } - @Override - public void unload() { - salvageables.clear(); - } - public void registerSalvageable(Salvageable salvageable) { Material item = salvageable.getItemMaterial(); salvageables.put(item, salvageable); diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java index 448109258..ad2cd1c4e 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionMain.java @@ -1,6 +1,6 @@ package com.gmail.nossr50.util.blockmeta.conversion; -import com.gmail.nossr50.config.ChunkConversionOptions; +import com.gmail.nossr50.core.ChunkConversionOptions; import com.gmail.nossr50.mcMMO; import org.bukkit.scheduler.BukkitScheduler; diff --git a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java index 567c13a15..3e0077f9d 100755 --- a/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java +++ b/src/main/java/com/gmail/nossr50/util/blockmeta/conversion/BlockStoreConversionXDirectory.java @@ -1,6 +1,6 @@ package com.gmail.nossr50.util.blockmeta.conversion; -import com.gmail.nossr50.config.ChunkConversionOptions; +import com.gmail.nossr50.core.ChunkConversionOptions; import com.gmail.nossr50.mcMMO; import org.bukkit.scheduler.BukkitScheduler; diff --git a/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java b/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java index 08331c164..1c424f48f 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java +++ b/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java @@ -1,7 +1,6 @@ package com.gmail.nossr50.util.experience; import com.gmail.nossr50.api.exceptions.InvalidSkillException; -import com.gmail.nossr50.config.Unload; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.mcMMO; import org.bukkit.Material; @@ -12,7 +11,7 @@ import java.util.HashMap; /** * This class handles the XP for block break related XP */ -public class ExperienceMapManager implements Unload { +public class ExperienceMapManager { private HashMap> skillMaterialXPMap; private HashMap miningFullyQualifiedBlockXpMap; private HashMap herbalismFullyQualifiedBlockXpMap; @@ -28,7 +27,6 @@ public class ExperienceMapManager implements Unload { initExperienceMaps(); //Register with unloader - mcMMO.getConfigManager().registerUnloadable(this); } private void initExperienceMaps() { @@ -314,12 +312,4 @@ public class ExperienceMapManager implements Unload { public int getExcavationXp(Material material) { return excavationFullyQualifiedBlockXpMap.get(material.getKey()); } - - @Override - public void unload() { - miningFullyQualifiedBlockXpMap.clear(); - woodcuttingFullyQualifiedBlockXpMap.clear(); - herbalismFullyQualifiedBlockXpMap.clear(); - excavationFullyQualifiedBlockXpMap.clear(); - } }