|
@@ -113,8 +113,6 @@ public final class ConfigManager {
|
|
|
private SerializedConfigLoader<ConfigAdmin> configAdmin;
|
|
|
private SerializedConfigLoader<ConfigMobs> configMobs;
|
|
|
|
|
|
- private HashMap<PrimarySkillType, SerializedConfigLoader> skillConfigLoaders;
|
|
|
-
|
|
|
private SerializedConfigLoader<ConfigAcrobatics> configAcrobatics;
|
|
|
private SerializedConfigLoader<ConfigAlchemy> configAlchemy;
|
|
|
private SerializedConfigLoader<ConfigArchery> configArchery;
|
|
@@ -131,16 +129,20 @@ public final class ConfigManager {
|
|
|
private SerializedConfigLoader<ConfigSmelting> configSmelting;
|
|
|
private SerializedConfigLoader<ConfigSalvage> configSalvage;
|
|
|
|
|
|
+ private HashMap<PrimarySkillType, SerializedConfigLoader> skillConfigLoaders;
|
|
|
+
|
|
|
//Data
|
|
|
private SerializedConfigLoader<ConfigPartyData> partyData;
|
|
|
|
|
|
+ //YAML CONFIGS
|
|
|
+ private PotionConfig potionConfig;
|
|
|
+
|
|
|
private MainConfig mainConfig;
|
|
|
private FishingTreasureConfig fishingTreasureConfig;
|
|
|
private ExcavationTreasureConfig excavationTreasureConfig;
|
|
|
private HerbalismTreasureConfig herbalismTreasureConfig;
|
|
|
private ExperienceConfig experienceConfig;
|
|
|
private AdvancedConfig advancedConfig;
|
|
|
- private PotionConfig potionConfig;
|
|
|
private CoreSkillsConfig coreSkillsConfig;
|
|
|
private SoundConfig soundConfig;
|
|
|
private RankConfig rankConfig;
|
|
@@ -160,52 +162,47 @@ public final class ConfigManager {
|
|
|
|
|
|
public void loadConfigs()
|
|
|
{
|
|
|
- // Load Config Files
|
|
|
- // I'm pretty these are supposed to be done in a specific order, so don't rearrange them willy nilly
|
|
|
-
|
|
|
//Register Custom Serializers
|
|
|
- mcMMO.p.getLogger().info("Registering custom type serializers with Configurate...");
|
|
|
-
|
|
|
- /*
|
|
|
- TypeTokens are obtained in two ways
|
|
|
-
|
|
|
- For Raw basic classes:
|
|
|
+ registerCustomTypeSerializers();
|
|
|
|
|
|
- TypeToken<String> stringTok = TypeToken.of(String.class);
|
|
|
- TypeToken<Integer> intTok = TypeToken.of(Integer.class);
|
|
|
+ //Serialized Configs
|
|
|
+ initSerializedConfigs();
|
|
|
|
|
|
- For Generics:
|
|
|
+ //Serialized Data
|
|
|
+ initSerializedDataFiles();
|
|
|
|
|
|
- TypeToken<List<String>> stringListTok = new TypeToken<List<String>>() {};
|
|
|
+ //Skill Property Registers
|
|
|
+ skillPropertiesManager = new SkillPropertiesManager();
|
|
|
+ skillPropertiesManager.fillRegisters();
|
|
|
|
|
|
- Wildcard example:
|
|
|
+ //Assign Maps
|
|
|
+ partyItemWeights = Maps.newHashMap(configParty.getConfig().getPartyItemShare().getItemShareMap()); //Item Share Weights
|
|
|
+ partyFeatureUnlocks = Maps.newHashMap(configParty.getConfig().getPartyXP().getPartyLevel().getPartyFeatureUnlockMap()); //Party Progression
|
|
|
|
|
|
- TypeToken<Map<?, ?>> wildMapTok = new TypeToken<Map<?, ?>>() {};
|
|
|
+ //Register Bonus Drops
|
|
|
+ registerBonusDrops();
|
|
|
|
|
|
- */
|
|
|
+ //YAML Configs
|
|
|
+ initYAMLConfigs();
|
|
|
|
|
|
/*
|
|
|
- List of default serializers for reference
|
|
|
- DEFAULT_SERIALIZERS.registerType(TypeToken.of(URI.class), new URISerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(TypeToken.of(URL.class), new URLSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(TypeToken.of(UUID.class), new UUIDSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerPredicate(input -> input.getRawType().isAnnotationPresent(ConfigSerializable.class), new AnnotatedObjectSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerPredicate(NumberSerializer.getPredicate(), new NumberSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(TypeToken.of(String.class), new StringSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(TypeToken.of(Boolean.class), new BooleanSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(new TypeToken<Map<?, ?>>() {}, new MapSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(new TypeToken<List<?>>() {}, new ListSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(new TypeToken<Enum<?>>() {}, new EnumValueSerializer());
|
|
|
- DEFAULT_SERIALIZERS.registerType(TypeToken.of(Pattern.class), new PatternSerializer());
|
|
|
+ * Managers
|
|
|
*/
|
|
|
|
|
|
- TypeSerializers.getDefaultSerializers().registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
|
|
|
- TypeSerializers.getDefaultSerializers().registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
|
|
|
- TypeSerializers.getDefaultSerializers().registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
|
|
|
+ // Register Managers
|
|
|
+ initMiscManagers();
|
|
|
+ initCollectionManagers();
|
|
|
+ }
|
|
|
|
|
|
- mcMMO.p.getLogger().info("Deserializing configs...");
|
|
|
- //TODO: Not sure about the order of MainConfig
|
|
|
- //Serialized Configs
|
|
|
+ private void initYAMLConfigs() {
|
|
|
+ potionConfig = new PotionConfig();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initSerializedDataFiles() {
|
|
|
+ partyData = new SerializedConfigLoader<>(ConfigPartyData.class, "partydata.conf", "PartyData", null);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initSerializedConfigs() {
|
|
|
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);
|
|
@@ -226,7 +223,17 @@ public final class ConfigManager {
|
|
|
configAdmin = new SerializedConfigLoader<>(ConfigAdmin.class, "admin.conf", "Admin", null);
|
|
|
configMobs = new SerializedConfigLoader<>(ConfigMobs.class, "creatures.conf", "Creatures", 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);
|
|
@@ -241,46 +248,62 @@ public final class ConfigManager {
|
|
|
registerSkillConfig(PrimarySkillType.WOODCUTTING, ConfigWoodcutting.class);
|
|
|
registerSkillConfig(PrimarySkillType.SMELTING, ConfigSmelting.class);
|
|
|
|
|
|
- //Serialized Data
|
|
|
- partyData = new SerializedConfigLoader<>(ConfigPartyData.class, "partydata.conf", "PartyData", null);
|
|
|
-
|
|
|
- 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
|
|
|
-
|
|
|
- //Register Bonus Drops
|
|
|
- registerBonusDrops();
|
|
|
-
|
|
|
- //YAML Configs
|
|
|
- mainConfig = new MainConfig();
|
|
|
+ //Setup Typed refs
|
|
|
+ configAcrobatics = (SerializedConfigLoader<ConfigAcrobatics>) skillConfigLoaders.get(PrimarySkillType.ACROBATICS).getConfig();
|
|
|
+ configAlchemy = (SerializedConfigLoader<ConfigAlchemy>) skillConfigLoaders.get(PrimarySkillType.ALCHEMY).getConfig();
|
|
|
+ configSalvage = (SerializedConfigLoader<ConfigSalvage>) skillConfigLoaders.get(PrimarySkillType.SALVAGE).getConfig();
|
|
|
+ configArchery = (SerializedConfigLoader<ConfigArchery>) skillConfigLoaders.get(PrimarySkillType.ARCHERY).getConfig();
|
|
|
+ configAxes = (SerializedConfigLoader<ConfigAxes>) skillConfigLoaders.get(PrimarySkillType.AXES).getConfig();
|
|
|
+ configExcavation = (SerializedConfigLoader<ConfigExcavation>) skillConfigLoaders.get(PrimarySkillType.EXCAVATION).getConfig();
|
|
|
+ configFishing = (SerializedConfigLoader<ConfigFishing>) skillConfigLoaders.get(PrimarySkillType.FISHING).getConfig();
|
|
|
+ configHerbalism = (SerializedConfigLoader<ConfigHerbalism>) skillConfigLoaders.get(PrimarySkillType.HERBALISM).getConfig();
|
|
|
+ configMining = (SerializedConfigLoader<ConfigMining>) skillConfigLoaders.get(PrimarySkillType.MINING).getConfig();
|
|
|
+ configRepair = (SerializedConfigLoader<ConfigRepair>) skillConfigLoaders.get(PrimarySkillType.REPAIR).getConfig();
|
|
|
+ configSwords = (SerializedConfigLoader<ConfigSwords>) skillConfigLoaders.get(PrimarySkillType.SWORDS).getConfig();
|
|
|
+ configTaming = (SerializedConfigLoader<ConfigTaming>) skillConfigLoaders.get(PrimarySkillType.TAMING).getConfig();
|
|
|
+ configUnarmed = (SerializedConfigLoader<ConfigUnarmed>) skillConfigLoaders.get(PrimarySkillType.UNARMED).getConfig();
|
|
|
+ configWoodcutting = (SerializedConfigLoader<ConfigWoodcutting>) skillConfigLoaders.get(PrimarySkillType.WOODCUTTING).getConfig();
|
|
|
+ configSmelting = (SerializedConfigLoader<ConfigSmelting>) skillConfigLoaders.get(PrimarySkillType.SMELTING).getConfig();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void registerCustomTypeSerializers() {
|
|
|
+ /*
|
|
|
+ TypeTokens are obtained in two ways
|
|
|
|
|
|
- fishingTreasureConfig = new FishingTreasureConfig();
|
|
|
- excavationTreasureConfig = new ExcavationTreasureConfig();
|
|
|
- herbalismTreasureConfig = new HerbalismTreasureConfig();
|
|
|
+ For Raw basic classes:
|
|
|
|
|
|
- advancedConfig = new AdvancedConfig();
|
|
|
+ TypeToken<String> stringTok = TypeToken.of(String.class);
|
|
|
+ TypeToken<Integer> intTok = TypeToken.of(Integer.class);
|
|
|
|
|
|
- //TODO: Not sure about the order of experience config
|
|
|
- experienceConfig = new ExperienceConfig();
|
|
|
+ For Generics:
|
|
|
|
|
|
- potionConfig = new PotionConfig();
|
|
|
+ TypeToken<List<String>> stringListTok = new TypeToken<List<String>>() {};
|
|
|
|
|
|
- coreSkillsConfig = new CoreSkillsConfig();
|
|
|
+ Wildcard example:
|
|
|
|
|
|
- soundConfig = new SoundConfig();
|
|
|
+ TypeToken<Map<?, ?>> wildMapTok = new TypeToken<Map<?, ?>>() {};
|
|
|
|
|
|
- rankConfig = new RankConfig();
|
|
|
+ */
|
|
|
|
|
|
/*
|
|
|
- * Managers
|
|
|
+ List of default serializers for reference
|
|
|
+ DEFAULT_SERIALIZERS.registerType(TypeToken.of(URI.class), new URISerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(TypeToken.of(URL.class), new URLSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(TypeToken.of(UUID.class), new UUIDSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerPredicate(input -> input.getRawType().isAnnotationPresent(ConfigSerializable.class), new AnnotatedObjectSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerPredicate(NumberSerializer.getPredicate(), new NumberSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(TypeToken.of(String.class), new StringSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(TypeToken.of(Boolean.class), new BooleanSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(new TypeToken<Map<?, ?>>() {}, new MapSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(new TypeToken<List<?>>() {}, new ListSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(new TypeToken<Enum<?>>() {}, new EnumValueSerializer());
|
|
|
+ DEFAULT_SERIALIZERS.registerType(TypeToken.of(Pattern.class), new PatternSerializer());
|
|
|
*/
|
|
|
|
|
|
- // Register Managers
|
|
|
- initMiscManagers();
|
|
|
- initCollectionManagers();
|
|
|
+ mcMMO.p.getLogger().info("Registering custom type serializers for Configurate...");
|
|
|
+ TypeSerializers.getDefaultSerializers().registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
|
|
|
+ TypeSerializers.getDefaultSerializers().registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
|
|
|
+ TypeSerializers.getDefaultSerializers().registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
|
|
|
}
|
|
|
|
|
|
private void registerSkillConfig(PrimarySkillType primarySkillType, Class clazz)
|