mcMMO/src/main/java/com/gmail/nossr50/config/ConfigManager.java

676 lines
26 KiB
Java
Raw Normal View History

2019-02-17 11:32:53 -08:00
package com.gmail.nossr50.config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.config.hocon.*;
2019-03-17 04:12:56 -07:00
import com.gmail.nossr50.config.hocon.admin.ConfigAdmin;
2019-03-14 17:34:13 -07:00
import com.gmail.nossr50.config.hocon.antiexploit.ConfigExploitPrevention;
2019-03-14 20:30:20 -07:00
import com.gmail.nossr50.config.hocon.backup.ConfigAutomatedBackups;
import com.gmail.nossr50.config.hocon.commands.ConfigCommands;
import com.gmail.nossr50.config.hocon.database.ConfigDatabase;
import com.gmail.nossr50.config.hocon.donation.ConfigAuthorAdvertisements;
import com.gmail.nossr50.config.hocon.experience.ConfigExperience;
import com.gmail.nossr50.config.hocon.hardcore.ConfigHardcore;
2019-03-14 20:30:20 -07:00
import com.gmail.nossr50.config.hocon.items.ConfigItems;
import com.gmail.nossr50.config.hocon.language.ConfigLanguage;
import com.gmail.nossr50.config.hocon.metrics.ConfigMetrics;
2019-03-19 08:56:48 -07:00
import com.gmail.nossr50.config.hocon.mobs.ConfigMobs;
2019-03-14 18:14:08 -07:00
import com.gmail.nossr50.config.hocon.motd.ConfigMOTD;
2019-03-14 20:30:20 -07:00
import com.gmail.nossr50.config.hocon.notifications.ConfigNotifications;
import com.gmail.nossr50.config.hocon.particles.ConfigParticles;
import com.gmail.nossr50.config.hocon.party.ConfigParty;
import com.gmail.nossr50.config.hocon.party.data.ConfigPartyData;
2019-03-13 18:09:33 -07:00
import com.gmail.nossr50.config.hocon.playerleveling.ConfigLeveling;
2019-03-13 09:42:57 -07:00
import com.gmail.nossr50.config.hocon.scoreboard.ConfigScoreboard;
2019-03-20 15:53:12 -07:00
import com.gmail.nossr50.config.hocon.skills.acrobatics.ConfigAcrobatics;
import com.gmail.nossr50.config.hocon.skills.alchemy.ConfigAlchemy;
import com.gmail.nossr50.config.hocon.skills.archery.ConfigArchery;
import com.gmail.nossr50.config.hocon.skills.axes.ConfigAxes;
2019-04-24 17:19:04 -07:00
import com.gmail.nossr50.config.hocon.skills.exampleconfigs.ConfigNameRegisterDefaults;
import com.gmail.nossr50.config.hocon.skills.exampleconfigs.MinecraftMaterialWrapper;
2019-03-20 15:53:12 -07:00
import com.gmail.nossr50.config.hocon.skills.excavation.ConfigExcavation;
import com.gmail.nossr50.config.hocon.skills.fishing.ConfigFishing;
import com.gmail.nossr50.config.hocon.skills.herbalism.ConfigHerbalism;
import com.gmail.nossr50.config.hocon.skills.mining.ConfigMining;
import com.gmail.nossr50.config.hocon.skills.repair.ConfigRepair;
import com.gmail.nossr50.config.hocon.skills.salvage.ConfigSalvage;
import com.gmail.nossr50.config.hocon.skills.smelting.ConfigSmelting;
import com.gmail.nossr50.config.hocon.skills.swords.ConfigSwords;
import com.gmail.nossr50.config.hocon.skills.taming.ConfigTaming;
import com.gmail.nossr50.config.hocon.skills.unarmed.ConfigUnarmed;
import com.gmail.nossr50.config.hocon.skills.woodcutting.ConfigWoodcutting;
2019-03-14 20:30:20 -07:00
import com.gmail.nossr50.config.hocon.superabilities.ConfigSuperAbilities;
2019-03-13 18:34:40 -07:00
import com.gmail.nossr50.config.hocon.worldblacklist.ConfigWorldBlacklist;
2019-05-10 17:23:02 -07:00
import com.gmail.nossr50.config.skills.alchemy.PotionManager;
import com.gmail.nossr50.config.treasure.ExcavationTreasureConfig;
import com.gmail.nossr50.config.treasure.FishingTreasureConfig;
import com.gmail.nossr50.config.treasure.HerbalismTreasureConfig;
import com.gmail.nossr50.datatypes.experience.CustomXPPerk;
import com.gmail.nossr50.datatypes.experience.FormulaType;
2019-03-17 04:12:56 -07:00
import com.gmail.nossr50.datatypes.party.PartyFeature;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
2019-03-21 20:16:16 -07:00
import com.gmail.nossr50.datatypes.skills.SubSkillType;
2019-03-17 04:12:56 -07:00
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;
2019-03-17 04:12:56 -07:00
import com.google.common.collect.Maps;
import com.google.common.reflect.TypeToken;
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
2019-03-17 04:12:56 -07:00
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializers;
import org.bukkit.Material;
import java.io.File;
import java.util.ArrayList;
2019-03-17 04:12:56 -07:00
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
2019-04-24 22:52:53 -07:00
* <p>
* Config Manager also holds all of our MultiConfigContainers
*/
public final class ConfigManager {
/* UNLOAD REGISTER */
private SkillPropertiesManager skillPropertiesManager;
private ArrayList<Unload> unloadables;
/* COLLECTION MANAGERS */
2019-04-24 22:52:53 -07:00
private ArrayList<File> userFiles;
private RepairableManager repairableManager;
private SalvageableManager salvageableManager;
/* CUSTOM SERIALIZERS */
2019-04-24 22:52:53 -07:00
private BonusDropManager bonusDropManager;
2019-02-18 12:16:10 -08:00
/* MOD MANAGERS */
//TODO: Add these back when modded servers become a thing again
/* MISC MANAGERS */
2019-04-24 22:52:53 -07:00
private TypeSerializerCollection customSerializers;
private ExperienceMapManager experienceMapManager;
2019-05-10 17:23:02 -07:00
private PotionManager potionManager;
/* CONFIG INSTANCES */
private SerializedConfigLoader<ConfigDatabase> configDatabase;
2019-03-13 09:42:57 -07:00
private SerializedConfigLoader<ConfigScoreboard> configScoreboard;
private SerializedConfigLoader<ConfigLeveling> configLeveling;
2019-03-13 18:34:40 -07:00
private SerializedConfigLoader<ConfigWorldBlacklist> configWorldBlacklist;
2019-03-14 17:34:13 -07:00
private SerializedConfigLoader<ConfigExploitPrevention> configExploitPrevention;
private SerializedConfigLoader<ConfigHardcore> configHardcore;
private SerializedConfigLoader<ConfigMetrics> configMetrics;
2019-03-14 18:14:08 -07:00
private SerializedConfigLoader<ConfigMOTD> configMOTD;
private SerializedConfigLoader<ConfigAuthorAdvertisements> configAuthorAdvertisements;
2019-03-14 20:30:20 -07:00
private SerializedConfigLoader<ConfigAutomatedBackups> configAutomatedBackups;
private SerializedConfigLoader<ConfigCommands> configCommands;
private SerializedConfigLoader<ConfigItems> configItems;
private SerializedConfigLoader<ConfigLanguage> configLanguage;
private SerializedConfigLoader<ConfigParticles> configParticles;
private SerializedConfigLoader<ConfigParty> configParty;
private SerializedConfigLoader<ConfigNotifications> configNotifications;
private SerializedConfigLoader<ConfigSuperAbilities> configSuperAbilities;
2019-03-17 04:12:56 -07:00
private SerializedConfigLoader<ConfigAdmin> configAdmin;
2019-03-19 08:56:48 -07:00
private SerializedConfigLoader<ConfigMobs> configMobs;
private SerializedConfigLoader<ConfigExperience> configExperience;
2019-04-24 17:19:04 -07:00
private SerializedConfigLoader<ConfigNameRegisterDefaults> configDefaultExamples;
2019-03-20 15:53:12 -07:00
2019-05-10 11:20:16 -07:00
private ConfigAcrobatics configAcrobatics;
private ConfigAlchemy configAlchemy;
private ConfigArchery configArchery;
private ConfigAxes configAxes;
private ConfigExcavation configExcavation;
private ConfigFishing configFishing;
private ConfigHerbalism configHerbalism;
private ConfigMining configMining;
private ConfigRepair configRepair;
private ConfigSwords configSwords;
private ConfigTaming configTaming;
private ConfigUnarmed configUnarmed;
private ConfigWoodcutting configWoodcutting;
private ConfigSmelting configSmelting;
private ConfigSalvage configSalvage;
private HashMap<PrimarySkillType, SerializedConfigLoader<?>> skillConfigLoaders;
//Data
private SerializedConfigLoader<ConfigPartyData> partyData;
//YAML CONFIGS
2019-05-10 17:23:02 -07:00
2019-02-17 11:32:53 -08:00
private MainConfig mainConfig;
private FishingTreasureConfig fishingTreasureConfig;
private ExcavationTreasureConfig excavationTreasureConfig;
private HerbalismTreasureConfig herbalismTreasureConfig;
private ExperienceConfig experienceConfig;
private AdvancedConfig advancedConfig;
private CoreSkillsConfig coreSkillsConfig;
private SoundConfig soundConfig;
private RankConfig rankConfig;
2019-03-20 11:03:09 -07:00
private HashMap<Material, Integer> partyItemWeights;
private HashMap<PartyFeature, Integer> partyFeatureUnlocks;
2019-03-17 04:12:56 -07:00
2019-02-18 09:04:20 -08:00
/* CONFIG ERRORS */
private ArrayList<String> configErrors; //Collect errors to whine about to server admins
2019-04-24 22:52:53 -07:00
public ConfigManager() {
unloadables = new ArrayList<>();
userFiles = new ArrayList<>();
2019-02-26 11:26:06 -08:00
}
2019-04-24 22:52:53 -07:00
public void loadConfigs() {
2019-03-17 04:12:56 -07:00
//Register Custom Serializers
registerCustomTypeSerializers();
2019-03-20 11:03:09 -07:00
//Serialized Configs
initSerializedConfigs();
2019-03-20 11:03:09 -07:00
//Serialized Data
initSerializedDataFiles();
2019-03-20 11:03:09 -07:00
//Skill Property Registers
skillPropertiesManager = new SkillPropertiesManager();
skillPropertiesManager.fillRegisters();
2019-03-20 11:03:09 -07:00
//Assign Maps
partyItemWeights = Maps.newHashMap(configParty.getConfig().getPartyItemShare().getItemShareMap()); //Item Share Weights
partyFeatureUnlocks = Maps.newHashMap(configParty.getConfig().getPartyXP().getPartyLevel().getPartyFeatureUnlockMap()); //Party Progression
2019-03-20 11:03:09 -07:00
//YAML Configs
initYAMLConfigs();
2019-03-20 11:03:09 -07:00
2019-03-20 14:26:30 -07:00
/*
* Managers
2019-03-20 14:26:30 -07:00
*/
// Register Managers
initMiscManagers();
initCollectionManagers();
}
2019-03-17 04:12:56 -07:00
private void initYAMLConfigs() {
2019-05-10 17:23:02 -07:00
}
private void initSerializedDataFiles() {
partyData = new SerializedConfigLoader<>(ConfigPartyData.class, "partydata.conf", "PartyData", null);
}
private void initSerializedConfigs() {
2019-05-10 09:49:43 -07:00
//There's some race conditions here because mcMMO is goddamn spaghetti mess, language has to load first
configLanguage = new SerializedConfigLoader<>(ConfigLanguage.class, "language.conf", "Language", null);
/*
* No more race conditions
*/
configDatabase = new SerializedConfigLoader<>(ConfigDatabase.class, "database_settings.conf", "Database", null);
configScoreboard = new SerializedConfigLoader<>(ConfigScoreboard.class, "scoreboard.conf", "Scoreboard", null);
configLeveling = new SerializedConfigLoader<>(ConfigLeveling.class, "player_leveling.conf", "Player-Leveling", null);
configWorldBlacklist = new SerializedConfigLoader<>(ConfigWorldBlacklist.class, "world_blacklist.conf", "World-Blacklist", null);
configExploitPrevention = new SerializedConfigLoader<>(ConfigExploitPrevention.class, "anti_exploit.conf", "Anti-Exploit", null);
configMOTD = new SerializedConfigLoader<>(ConfigMOTD.class, "message_of_the_day.conf", "MOTD", null);
configHardcore = new SerializedConfigLoader<>(ConfigHardcore.class, "hardcore_mode.conf", "Hardcore-Mode", null);
configMetrics = new SerializedConfigLoader<>(ConfigMetrics.class, "analytics_reporting.conf", "Analytic-Reporting", null);
configAuthorAdvertisements = new SerializedConfigLoader<>(ConfigAuthorAdvertisements.class, "author_support_advertisements.conf", "mcMMO", null);
configAutomatedBackups = new SerializedConfigLoader<>(ConfigAutomatedBackups.class, "automated_backups.conf", "Automated-Backups", null);
configCommands = new SerializedConfigLoader<>(ConfigCommands.class, "commands.conf", "Commands", null);
configItems = new SerializedConfigLoader<>(ConfigItems.class, "custom_items.conf", "Items", null);
configParticles = new SerializedConfigLoader<>(ConfigParticles.class, "particle_spawning.conf", "Particles", null);
configParty = new SerializedConfigLoader<>(ConfigParty.class, "party.conf", "Party", null);
configNotifications = new SerializedConfigLoader<>(ConfigNotifications.class, "alerts_and_notifications.conf", "Notifications", null);
configSuperAbilities = new SerializedConfigLoader<>(ConfigSuperAbilities.class, "skill_super_abilities.conf", "Super-Abilities", null);
configAdmin = new SerializedConfigLoader<>(ConfigAdmin.class, "admin.conf", "Admin", null);
configMobs = new SerializedConfigLoader<>(ConfigMobs.class, "creatures.conf", "Creatures", null);
configExperience = new SerializedConfigLoader<>(ConfigExperience.class, "experience.conf", "Experience", null);
2019-04-24 17:19:04 -07:00
configDefaultExamples = new SerializedConfigLoader<>(ConfigNameRegisterDefaults.class, "minecraft_item_block_name_examples.conf", "Minecraft", null);
initSerializedSkillConfigs();
}
@SuppressWarnings(value = "unchecked")
private void initSerializedSkillConfigs() {
//Init HashMap
skillConfigLoaders = new HashMap<>();
//Init and register serialized skill configs
registerSkillConfig(PrimarySkillType.ACROBATICS, ConfigAcrobatics.class);
registerSkillConfig(PrimarySkillType.ALCHEMY, ConfigAlchemy.class);
registerSkillConfig(PrimarySkillType.SALVAGE, ConfigSalvage.class);
registerSkillConfig(PrimarySkillType.ARCHERY, ConfigArchery.class);
registerSkillConfig(PrimarySkillType.AXES, ConfigAxes.class);
registerSkillConfig(PrimarySkillType.EXCAVATION, ConfigExcavation.class);
registerSkillConfig(PrimarySkillType.FISHING, ConfigFishing.class);
registerSkillConfig(PrimarySkillType.HERBALISM, ConfigHerbalism.class);
registerSkillConfig(PrimarySkillType.MINING, ConfigMining.class);
registerSkillConfig(PrimarySkillType.REPAIR, ConfigRepair.class);
registerSkillConfig(PrimarySkillType.SWORDS, ConfigSwords.class);
registerSkillConfig(PrimarySkillType.TAMING, ConfigTaming.class);
registerSkillConfig(PrimarySkillType.UNARMED, ConfigUnarmed.class);
registerSkillConfig(PrimarySkillType.WOODCUTTING, ConfigWoodcutting.class);
registerSkillConfig(PrimarySkillType.SMELTING, ConfigSmelting.class);
2019-03-20 15:53:12 -07:00
//Setup Typed refs
2019-05-10 11:20:16 -07:00
configAcrobatics = (ConfigAcrobatics) skillConfigLoaders.get(PrimarySkillType.ACROBATICS).getConfig();
configAlchemy = (ConfigAlchemy) skillConfigLoaders.get(PrimarySkillType.ALCHEMY).getConfig();
configSalvage = (ConfigSalvage) skillConfigLoaders.get(PrimarySkillType.SALVAGE).getConfig();
configArchery = (ConfigArchery) skillConfigLoaders.get(PrimarySkillType.ARCHERY).getConfig();
configAxes = (ConfigAxes) skillConfigLoaders.get(PrimarySkillType.AXES).getConfig();
configExcavation = (ConfigExcavation) skillConfigLoaders.get(PrimarySkillType.EXCAVATION).getConfig();
configFishing = (ConfigFishing) skillConfigLoaders.get(PrimarySkillType.FISHING).getConfig();
configHerbalism = (ConfigHerbalism) skillConfigLoaders.get(PrimarySkillType.HERBALISM).getConfig();
configMining = (ConfigMining) skillConfigLoaders.get(PrimarySkillType.MINING).getConfig();
configRepair = (ConfigRepair) skillConfigLoaders.get(PrimarySkillType.REPAIR).getConfig();
configSwords = (ConfigSwords) skillConfigLoaders.get(PrimarySkillType.SWORDS).getConfig();
configTaming = (ConfigTaming) skillConfigLoaders.get(PrimarySkillType.TAMING).getConfig();
configUnarmed = (ConfigUnarmed) skillConfigLoaders.get(PrimarySkillType.UNARMED).getConfig();
configWoodcutting = (ConfigWoodcutting) skillConfigLoaders.get(PrimarySkillType.WOODCUTTING).getConfig();
configSmelting = (ConfigSmelting) skillConfigLoaders.get(PrimarySkillType.SMELTING).getConfig();
}
2019-03-13 09:42:57 -07:00
private void registerCustomTypeSerializers() {
/*
TypeTokens are obtained in two ways
For Raw basic classes:
2019-02-17 11:32:53 -08:00
TypeToken<String> stringTok = TypeToken.of(String.class);
TypeToken<Integer> intTok = TypeToken.of(Integer.class);
For Generics:
TypeToken<List<String>> stringListTok = new TypeToken<List<String>>() {};
Wildcard example:
TypeToken<Map<?, ?>> wildMapTok = new TypeToken<Map<?, ?>>() {};
*/
2019-04-24 21:38:32 -07:00
customSerializers = TypeSerializers.getDefaultSerializers().newChild();
mcMMO.p.getLogger().info("Registering custom type serializers for Configurate...");
2019-05-08 06:44:19 -07:00
customSerializers.registerType(new TypeToken<PrimarySkillType>() {
}, new CustomEnumValueSerializer());
customSerializers.registerType(new TypeToken<Material>() {
}, new CustomEnumValueSerializer());
customSerializers.registerType(new TypeToken<PartyFeature>() {
}, new CustomEnumValueSerializer());
customSerializers.registerType(new TypeToken<FormulaType>() {
}, new CustomEnumValueSerializer());
customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
customSerializers.registerType(TypeToken.of(Salvageable.class), new SalvageableSerializer());
customSerializers.registerType(TypeToken.of(MinecraftMaterialWrapper.class), new MinecraftMaterialWrapperSerializer());
customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
}
/**
* Gets the serializers registered and used by mcMMO
* This includes all default serializers
2019-04-24 22:52:53 -07:00
*
* @return our custom serializers
*/
public TypeSerializerCollection getCustomSerializers() {
return customSerializers;
}
2019-04-24 22:52:53 -07:00
private void registerSkillConfig(PrimarySkillType primarySkillType, Class clazz) {
skillConfigLoaders.put(primarySkillType, SkillConfigFactory.initSkillConfig(primarySkillType, clazz));
}
/**
* Misc managers
*/
2019-04-24 22:52:53 -07:00
private void initMiscManagers() {
experienceMapManager = new ExperienceMapManager();
2019-04-29 22:37:46 -07:00
//Set the global XP val
experienceMapManager.setGlobalXpMult(getConfigExperience().getGlobalXPMultiplier());
experienceMapManager.buildBlockXPMaps(); //Block XP value maps
2019-05-10 17:23:02 -07:00
potionManager = new PotionManager();
}
/**
* Initializes any managers related to config collections
*/
2019-04-24 22:52:53 -07:00
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)
2019-04-24 22:52:53 -07:00
*
* @return the currently loaded repairables
*/
2019-04-24 22:52:53 -07:00
public ArrayList<Repairable> getRepairables() {
2019-03-21 23:54:55 -07:00
return getConfigRepair().getConfigRepairablesList();
}
/**
* Get all loaded salvageables (loaded from all salvageable configs)
2019-04-24 22:52:53 -07:00
*
* @return the currently loaded salvageables
*/
2019-04-24 22:52:53 -07:00
public ArrayList<Salvageable> getSalvageables() {
return getConfigSalvage().getConfigSalvageablesList();
}
/**
* Unloads all config options (prepares for reload)
*/
2019-04-24 22:52:53 -07:00
public void unloadAllConfigsAndRegisters() {
//Unload
2019-04-24 22:52:53 -07:00
for (Unload unloadable : unloadables) {
unloadable.unload();
}
//Clear
unloadables.clear();
userFiles.clear();
}
2019-02-17 11:32:53 -08:00
/**
* Registers an unloadable
* Unloadables call unload() on plugin disable to cleanup registries
*/
2019-04-24 22:52:53 -07:00
public void registerUnloadable(Unload unload) {
if (!unloadables.contains(unload))
unloadables.add(unload);
}
/**
* Registers an unloadable
* Unloadables call unload() on plugin disable to cleanup registries
*/
2019-04-24 22:52:53 -07:00
public void registerUserFile(File userFile) {
if (!userFiles.contains(userFile))
userFiles.add(userFile);
}
/**
* Registers bonus drops from several skill configs
*/
2019-04-24 22:52:53 -07:00
public void registerBonusDrops() {
2019-04-02 21:52:07 -07:00
bonusDropManager.addToWhitelistByNameID(getConfigMining().getBonusDrops());
2019-04-02 23:28:12 -07:00
// bonusDropManager.addToWhitelistByNameID(configHerbalism.getBonusDrops());
// bonusDropManager.addToWhitelistByNameID(configWoodcutting.getBonusDrops());
2019-04-02 21:52:07 -07:00
}
2019-04-24 22:52:53 -07:00
public void validateConfigs() {
2019-04-02 21:52:07 -07:00
}
/**
* Reload the configs
* Technically this reloads a lot of stuff, not just configs
*/
2019-04-29 22:37:46 -07:00
public void reloadConfigs() {
mcMMO.p.getLogger().info("Reloading config values...");
unloadAllConfigsAndRegisters(); //Unload Everything
loadConfigs(); //Load everything again
}
2019-02-17 11:32:53 -08:00
/*
* GETTER BOILER PLATE
*/
/**
* Used to back up our zip files real easily
2019-04-24 22:52:53 -07:00
*
* @return
*/
2019-04-24 22:52:53 -07:00
public ArrayList<File> getConfigFiles() {
return userFiles;
}
public RepairableManager getRepairableManager() {
return repairableManager;
2019-02-17 11:32:53 -08:00
}
public SalvageableManager getSalvageableManager() {
return salvageableManager;
2019-02-17 11:32:53 -08:00
}
public MainConfig getMainConfig() {
return mainConfig;
}
public FishingTreasureConfig getFishingTreasureConfig() {
return fishingTreasureConfig;
}
public ExcavationTreasureConfig getExcavationTreasureConfig() {
return excavationTreasureConfig;
}
public HerbalismTreasureConfig getHerbalismTreasureConfig() {
return herbalismTreasureConfig;
2019-02-17 11:32:53 -08:00
}
public AdvancedConfig getAdvancedConfig() {
return advancedConfig;
}
2019-05-10 17:23:02 -07:00
public PotionManager getPotionManager() {
return potionManager;
2019-02-17 11:32:53 -08:00
}
public CoreSkillsConfig getCoreSkillsConfig() {
return coreSkillsConfig;
}
public SoundConfig getSoundConfig() {
return soundConfig;
}
public RankConfig getRankConfig() {
return rankConfig;
}
public ExperienceConfig getExperienceConfig() {
return experienceConfig;
}
2019-02-18 15:35:46 -08:00
public ExperienceMapManager getExperienceMapManager() {
return experienceMapManager;
}
2019-04-24 22:52:53 -07:00
public ConfigDatabase getConfigDatabase() {
return configDatabase.getConfig();
}
2019-03-13 09:42:57 -07:00
2019-04-24 22:52:53 -07:00
public ConfigScoreboard getConfigScoreboard() {
return configScoreboard.getConfig();
}
public ConfigLeveling getConfigLeveling() {
return configLeveling.getConfig();
}
2019-03-13 18:34:40 -07:00
public ConfigWorldBlacklist getConfigWorldBlacklist() {
return configWorldBlacklist.getConfig();
}
2019-03-14 17:34:13 -07:00
public ConfigExploitPrevention getConfigExploitPrevention() {
return configExploitPrevention.getConfig();
}
2019-03-14 18:14:08 -07:00
public ConfigMOTD getConfigMOTD() {
return configMOTD.getConfig();
}
public ConfigHardcore getConfigHardcore() {
return configHardcore.getConfig();
}
public ConfigMetrics getConfigMetrics() {
return configMetrics.getConfig();
}
public ConfigAuthorAdvertisements getConfigAds() {
return configAuthorAdvertisements.getConfig();
}
2019-03-14 20:30:20 -07:00
public ConfigAutomatedBackups getConfigAutomatedBackups() {
return configAutomatedBackups.getConfig();
}
public ConfigCommands getConfigCommands() {
return configCommands.getConfig();
}
public ConfigItems getConfigItems() {
return configItems.getConfig();
}
public ConfigLanguage getConfigLanguage() {
return configLanguage.getConfig();
}
public ConfigParticles getConfigParticles() {
return configParticles.getConfig();
}
public ConfigParty getConfigParty() {
return configParty.getConfig();
}
public ConfigNotifications getConfigNotifications() {
return configNotifications.getConfig();
}
public ConfigSuperAbilities getConfigSuperAbilities() {
return configSuperAbilities.getConfig();
}
2019-03-20 11:03:09 -07:00
public HashMap<Material, Integer> getPartyItemWeights() {
return partyItemWeights;
}
2019-03-20 11:03:09 -07:00
public HashMap<PartyFeature, Integer> getPartyFeatureUnlocks() {
return partyFeatureUnlocks;
}
2019-03-19 08:56:48 -07:00
public ConfigAdmin getConfigAdmin() {
return configAdmin.getConfig();
}
public ConfigMobs getConfigMobs() {
return configMobs.getConfig();
}
2019-03-20 15:53:12 -07:00
public ConfigAcrobatics getConfigAcrobatics() {
2019-05-10 11:20:16 -07:00
return configAcrobatics;
2019-03-20 15:53:12 -07:00
}
public ConfigAlchemy getConfigAlchemy() {
2019-05-10 11:20:16 -07:00
return configAlchemy;
2019-03-20 15:53:12 -07:00
}
public ConfigArchery getConfigArchery() {
2019-05-10 11:20:16 -07:00
return configArchery;
2019-03-20 15:53:12 -07:00
}
public ConfigAxes getConfigAxes() {
2019-05-10 11:20:16 -07:00
return configAxes;
2019-03-20 15:53:12 -07:00
}
public ConfigExcavation getConfigExcavation() {
2019-05-10 11:20:16 -07:00
return configExcavation;
2019-03-20 15:53:12 -07:00
}
public ConfigFishing getConfigFishing() {
2019-05-10 11:20:16 -07:00
return configFishing;
2019-03-20 15:53:12 -07:00
}
public ConfigHerbalism getConfigHerbalism() {
2019-05-10 11:20:16 -07:00
return configHerbalism;
2019-03-20 15:53:12 -07:00
}
public ConfigMining getConfigMining() {
2019-05-10 11:20:16 -07:00
return configMining;
2019-03-20 15:53:12 -07:00
}
public ConfigRepair getConfigRepair() {
2019-05-10 11:20:16 -07:00
return configRepair;
2019-03-20 15:53:12 -07:00
}
public ConfigSwords getConfigSwords() {
2019-05-10 11:20:16 -07:00
return configSwords;
2019-03-20 15:53:12 -07:00
}
public ConfigTaming getConfigTaming() {
2019-05-10 11:20:16 -07:00
return configTaming;
2019-03-20 15:53:12 -07:00
}
public ConfigUnarmed getConfigUnarmed() {
2019-05-10 11:20:16 -07:00
return configUnarmed;
2019-03-20 15:53:12 -07:00
}
public ConfigWoodcutting getConfigWoodcutting() {
2019-05-10 11:20:16 -07:00
return configWoodcutting;
2019-03-20 15:53:12 -07:00
}
public ConfigSmelting getConfigSmelting() {
2019-05-10 11:20:16 -07:00
return configSmelting;
2019-03-20 15:53:12 -07:00
}
public ConfigSalvage getConfigSalvage() {
2019-05-10 11:20:16 -07:00
return configSalvage;
2019-03-20 15:53:12 -07:00
}
2019-03-21 20:16:16 -07:00
public BonusDropManager getBonusDropManager() {
return bonusDropManager;
}
2019-04-02 23:28:12 -07:00
/**
* Checks if this plugin is using retro mode
* Retro mode is a 0-1000 skill system
* Standard mode is scaled for 1-100
2019-04-24 22:52:53 -07:00
*
2019-04-02 23:28:12 -07:00
* @return true if retro mode is enabled
*/
2019-04-24 22:52:53 -07:00
public boolean isRetroMode() {
2019-04-02 23:28:12 -07:00
return getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().isRetroModeEnabled();
}
2019-04-24 22:52:53 -07:00
public boolean isBonusDropsEnabled(Material material) {
return getBonusDropManager().isBonusDropWhitelisted(material);
}
2019-04-24 22:52:53 -07:00
public double getSkillMaxBonusLevel(SubSkillType subSkillType) {
2019-03-21 20:16:16 -07:00
return skillPropertiesManager.getMaxBonusLevel(subSkillType);
}
2019-04-24 22:52:53 -07:00
public double getSkillMaxChance(SubSkillType subSkillType) {
2019-03-21 20:16:16 -07:00
return skillPropertiesManager.getMaxChance(subSkillType);
}
public ConfigExperience getConfigExperience() {
return configExperience.getConfig();
}
2019-04-29 22:37:46 -07:00
public SkillPropertiesManager getSkillPropertiesManager() {
return skillPropertiesManager;
}
}