mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Add SkillRankProperty serializer
This commit is contained in:
		@@ -33,6 +33,7 @@ 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.herbalism.ConfigHerbalism;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.skills.mining.ConfigMining;
 | 
					import com.gmail.nossr50.config.hocon.skills.mining.ConfigMining;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.skills.ranks.ConfigRanks;
 | 
					import com.gmail.nossr50.config.hocon.skills.ranks.ConfigRanks;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.config.hocon.skills.ranks.SkillRankProperty;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.skills.repair.ConfigRepair;
 | 
					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.salvage.ConfigSalvage;
 | 
				
			||||||
import com.gmail.nossr50.config.hocon.skills.smelting.ConfigSmelting;
 | 
					import com.gmail.nossr50.config.hocon.skills.smelting.ConfigSmelting;
 | 
				
			||||||
@@ -267,6 +268,7 @@ public final class ConfigManager {
 | 
				
			|||||||
        customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
 | 
					        customSerializers.registerType(TypeToken.of(CustomXPPerk.class), new CustomXPPerkSerializer());
 | 
				
			||||||
        customSerializers.registerType(TypeToken.of(DamageProperty.class), new DamagePropertySerializer());
 | 
					        customSerializers.registerType(TypeToken.of(DamageProperty.class), new DamagePropertySerializer());
 | 
				
			||||||
        customSerializers.registerType(TypeToken.of(SkillCeiling.class), new SkillCeilingSerializer());
 | 
					        customSerializers.registerType(TypeToken.of(SkillCeiling.class), new SkillCeilingSerializer());
 | 
				
			||||||
 | 
					        customSerializers.registerType(TypeToken.of(SkillRankProperty.class), new SkillRankPropertySerializer());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -232,183 +232,6 @@ public class MainConfig extends ConfigValidated {
 | 
				
			|||||||
    public List<String> validateKeys() {
 | 
					    public List<String> validateKeys() {
 | 
				
			||||||
        // Validate all the settings!
 | 
					        // Validate all the settings!
 | 
				
			||||||
        List<String> reason = new ArrayList<>();
 | 
					        List<String> reason = new ArrayList<>();
 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* General Settings */
 | 
					 | 
				
			||||||
        /*if (getSaveInterval() <= 0) {
 | 
					 | 
				
			||||||
            reason.add(GENERAL + SAVE_INTERVAL + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* MySQL Settings */
 | 
					 | 
				
			||||||
        /*for (SQLDatabaseManager.PoolIdentifier identifier : SQLDatabaseManager.PoolIdentifier.values()) {
 | 
					 | 
				
			||||||
            if (getMySQLMaxConnections(identifier) <= 0) {
 | 
					 | 
				
			||||||
                reason.add(MY_SQL + "." + DATABASE + "." + MAX_CONNECTIONS + "." + StringUtils.getCapitalized(identifier.toString()) + " should be greater than 0!");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if (getMySQLMaxPoolSize(identifier) <= 0) {
 | 
					 | 
				
			||||||
                reason.add(MY_SQL + "." + DATABASE + "." + MAX_POOL_SIZE + "." + StringUtils.getCapitalized(identifier.toString()) + " should be greater than 0!");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Mob Healthbar */
 | 
					 | 
				
			||||||
        if (mcMMO.getConfigManager().getConfigMobs().getCombat().getHealthBars().getDisplayTimeSeconds() == 0) {
 | 
					 | 
				
			||||||
            reason.add(MOB_HEALTHBAR + "." + DISPLAY_TIME + " cannot be 0! Set to -1 to disable or set a valid value.");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Scoreboards */
 | 
					 | 
				
			||||||
        /*if (getRankScoreboardTime() != -1 && getRankScoreboardTime() <= 0) {
 | 
					 | 
				
			||||||
            reason.add("ConfigScoreboard.Types.Rank.Display_Time should be greater than 0, or -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getStatsScoreboardTime() != -1 && getStatsScoreboardTime() <= 0) {
 | 
					 | 
				
			||||||
            reason.add("ConfigScoreboard.Types.Stats.Display_Time should be greater than 0, or -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTopScoreboardTime() != -1 && getTopScoreboardTime() <= 0) {
 | 
					 | 
				
			||||||
            reason.add("ConfigScoreboard.Types.Top.Display_Time should be greater than 0, or -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getInspectScoreboardTime() != -1 && getInspectScoreboardTime() <= 0) {
 | 
					 | 
				
			||||||
            reason.add("ConfigScoreboard.Types.Inspect.Display_Time should be greater than 0, or -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getSkillScoreboardTime() != -1 && getSkillScoreboardTime() <= 0) {
 | 
					 | 
				
			||||||
            reason.add("ConfigScoreboard.Types.Skill.Display_Time should be greater than 0, or -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getSkillLevelUpTime() != -1 && getSkillScoreboardTime() <= 0) {
 | 
					 | 
				
			||||||
            reason.add("ConfigScoreboard.Types.Skill.Display_Time should be greater than 0, or -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!(getRankUseChat() || getRankUseBoard())) {
 | 
					 | 
				
			||||||
            reason.add("Either Board or Print in ConfigScoreboard.Types.Rank must be true!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!(getTopUseChat() || getTopUseBoard())) {
 | 
					 | 
				
			||||||
            reason.add("Either Board or Print in ConfigScoreboard.Types.Top must be true!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!(getStatsUseChat() || getStatsUseBoard())) {
 | 
					 | 
				
			||||||
            reason.add("Either Board or Print in ConfigScoreboard.Types.Stats must be true!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!(getInspectUseChat() || getInspectUseBoard())) {
 | 
					 | 
				
			||||||
            reason.add("Either Board or Print in ConfigScoreboard.Types.Inspect must be true!");
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Hardcore Mode */
 | 
					 | 
				
			||||||
        if (getHardcoreDeathStatPenaltyPercentage() < 0.01 || getHardcoreDeathStatPenaltyPercentage() > 100) {
 | 
					 | 
				
			||||||
            reason.add(HARDCORE + "." + DEATH_STAT_LOSS + "." + PENALTY_PERCENTAGE + " only accepts values from 0.01 to 100!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getHardcoreVampirismStatLeechPercentage() < 0.01 || getHardcoreVampirismStatLeechPercentage() > 100) {
 | 
					 | 
				
			||||||
            reason.add(HARDCORE + "." + VAMPIRISM + "." + LEECH_PERCENTAGE + " only accepts values from 0.01 to 100!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Items */
 | 
					 | 
				
			||||||
        if (getChimaeraUseCost() < 1 || getChimaeraUseCost() > 64) {
 | 
					 | 
				
			||||||
            reason.add(ITEMS + "." + CHIMAERA_WING + "." + USE_COST + " only accepts values from 1 to 64!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getChimaeraRecipeCost() < 1 || getChimaeraRecipeCost() > 9) {
 | 
					 | 
				
			||||||
            reason.add(ITEMS + "." + CHIMAERA_WING + "." + RECIPE_COST + " only accepts values from 1 to 9!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getChimaeraItem() == null) {
 | 
					 | 
				
			||||||
            reason.add(ITEMS + "." + CHIMAERA_WING + "." + ITEM + NAME + " is invalid!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Particles */
 | 
					 | 
				
			||||||
        if (getLevelUpEffectsTier() < 1) {
 | 
					 | 
				
			||||||
            reason.add(PARTICLES + "." + LEVEL_UP + "Tier should be at least 1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* PARTY SETTINGS */
 | 
					 | 
				
			||||||
        /*if (getAutoPartyKickInterval() < -1) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + AUTO_KICK_INTERVAL + " should be at least -1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getAutoPartyKickTime() < 0) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + OLD_PARTY_MEMBER_CUTOFF + " should be at least 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getPartyShareBonusBase() <= 0) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + SHARING_EXP_SHARE_BONUS_BASE + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getPartyShareBonusIncrease() < 0) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + SHARING + "." + EXP_SHARE_BONUS_INCREASE + " should be at least 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getPartyShareBonusCap() <= 0) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + SHARING + "." + EXP_SHARE_BONUS_CAP + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getPartyShareRange() <= 0) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + SHARING + "." + RANGE + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /*if (getPartyXpCurveMultiplier() < 1) {
 | 
					 | 
				
			||||||
            reason.add(PARTY + "." + LEVELING + "." + XP_CURVE_MODIFIER + " should be at least 1!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (PartyFeature partyFeature : PartyFeature.values()) {
 | 
					 | 
				
			||||||
            if (PartyManager. < 0) {
 | 
					 | 
				
			||||||
                reason.add(PARTY + "." + LEVELING + "." + StringUtils.getPrettyPartyFeatureString(partyFeature).replace(" ", "") + "_UnlockLevel should be at least 0!");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /*if (getTreeFellerThreshold() <= 0) {
 | 
					 | 
				
			||||||
            reason.add(ABILITIES + "." + LIMITS + "." + TREE_FELLER_THRESHOLD + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /*if (getRepairAnvilMaterial() == null) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + REPAIR + "." + ANVIL + "Type is invalid!!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getSalvageAnvilMaterial() == null) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + REPAIR + "." + SALVAGE + "_" + ANVIL + "Type is invalid!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getRepairAnvilMaterial() == getSalvageAnvilMaterial()) {
 | 
					 | 
				
			||||||
            reason.add("Cannot use the same item for " + REPAIR + " and " + SALVAGE + " anvils!");
 | 
					 | 
				
			||||||
        }*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWMaterial(EntityType.WOLF) == null) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Wolf." + ITEM + "Material is invalid!!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWMaterial(EntityType.OCELOT) == null) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Ocelot." + ITEM + "Material is invalid!!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWMaterial(EntityType.HORSE) == null) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Horse." + ITEM + "Material is invalid!!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWCost(EntityType.WOLF) <= 0) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Wolf." + ITEM + "Amount should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWCost(EntityType.OCELOT) <= 0) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Ocelot." + ITEM + "Amount should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWCost(EntityType.HORSE) <= 0) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Horse." + ITEM + "Amount should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWAmount(EntityType.WOLF) <= 0) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Wolf." + SUMMON_AMOUNT + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWAmount(EntityType.OCELOT) <= 0) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Ocelot." + SUMMON_AMOUNT + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (getTamingCOTWAmount(EntityType.HORSE) <= 0) {
 | 
					 | 
				
			||||||
            reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Horse." + SUMMON_AMOUNT + " should be greater than 0!");
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return reason;
 | 
					        return reason;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,8 +11,8 @@ import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class SkillCeilingSerializer implements TypeSerializer<SkillCeiling> {
 | 
					public class SkillCeilingSerializer implements TypeSerializer<SkillCeiling> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static final String STANDARD_MAX_LEVEL = "Standard-Max-Level";
 | 
					    private static final String STANDARD_MAX_LEVEL = "Standard-Max-Level";
 | 
				
			||||||
    public static final String RETRO_MAX_LEVEL = "Retro-Max-Level";
 | 
					    private static final String RETRO_MAX_LEVEL = "Retro-Max-Level";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Nullable
 | 
					    @Nullable
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					package com.gmail.nossr50.config.hocon;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.gmail.nossr50.config.hocon.skills.ranks.SkillRankProperty;
 | 
				
			||||||
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
 | 
					import com.google.common.reflect.TypeToken;
 | 
				
			||||||
 | 
					import ninja.leaping.configurate.ConfigurationNode;
 | 
				
			||||||
 | 
					import ninja.leaping.configurate.objectmapping.ObjectMappingException;
 | 
				
			||||||
 | 
					import ninja.leaping.configurate.objectmapping.serialize.TypeSerializer;
 | 
				
			||||||
 | 
					import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			||||||
 | 
					import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class SkillRankPropertySerializer implements TypeSerializer<SkillRankProperty> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final String STANDARD_RANK_UNLOCK_LEVEL_REQUIREMENTS = "Standard-Rank-Unlock-Level-Requirements";
 | 
				
			||||||
 | 
					    private static final String RETRO_RANK_UNLOCK_LEVEL_REQUIREMENTS = "Retro-Rank-Unlock-Level-Requirements";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Nullable
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public SkillRankProperty deserialize(@NonNull TypeToken<?> type, @NonNull ConfigurationNode value) throws ObjectMappingException {
 | 
				
			||||||
 | 
					        HashMap<Integer, Integer> standardMap;
 | 
				
			||||||
 | 
					        HashMap<Integer, Integer> retroMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            standardMap = (HashMap<Integer, Integer>) value.getNode(STANDARD_RANK_UNLOCK_LEVEL_REQUIREMENTS).getValue(new TypeToken<Map<?, ?>>() {});
 | 
				
			||||||
 | 
					            retroMap = (HashMap<Integer, Integer>) value.getNode(RETRO_RANK_UNLOCK_LEVEL_REQUIREMENTS).getValue(new TypeToken<Map<?, ?>>() {});
 | 
				
			||||||
 | 
					        } catch (ObjectMappingException e) {
 | 
				
			||||||
 | 
					            mcMMO.p.getLogger().severe("Unable to deserialize rank property information from the config, make sure the ranks are correctly set in the config. You can delete the rank config to generate a new one if problems persist.");
 | 
				
			||||||
 | 
					            throw e;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        SkillRankProperty skillRankProperty = new SkillRankProperty();
 | 
				
			||||||
 | 
					        skillRankProperty.setStandardRanks(standardMap);
 | 
				
			||||||
 | 
					        skillRankProperty.setRetroRanks(retroMap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return skillRankProperty;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void serialize(@NonNull TypeToken<?> type, @Nullable SkillRankProperty obj, @NonNull ConfigurationNode value) throws ObjectMappingException {
 | 
				
			||||||
 | 
					        value.getNode(STANDARD_RANK_UNLOCK_LEVEL_REQUIREMENTS).setValue(obj.getStandardRanks());
 | 
				
			||||||
 | 
					        value.getNode(RETRO_RANK_UNLOCK_LEVEL_REQUIREMENTS).setValue(obj.getStandardRanks());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -72,4 +72,12 @@ public class SkillRankProperty implements SkillProperty {
 | 
				
			|||||||
    public void setRetroRanks(HashMap<Integer, Integer> retroRanks) {
 | 
					    public void setRetroRanks(HashMap<Integer, Integer> retroRanks) {
 | 
				
			||||||
        this.retroRanks = retroRanks;
 | 
					        this.retroRanks = retroRanks;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HashMap<Integer, Integer> getStandardRanks() {
 | 
				
			||||||
 | 
					        return standardRanks;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HashMap<Integer, Integer> getRetroRanks() {
 | 
				
			||||||
 | 
					        return retroRanks;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,8 +5,7 @@ import org.bukkit.Location;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class LimitedSizeList {
 | 
					public class LimitedSizeList {
 | 
				
			||||||
    private final int size;
 | 
					    private final int size;
 | 
				
			||||||
    public Location[] limitedSizeOrderedList;
 | 
					    private Location[] limitedSizeOrderedList;
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public LimitedSizeList(int size) {
 | 
					    public LimitedSizeList(int size) {
 | 
				
			||||||
        this.size = size;
 | 
					        this.size = size;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -427,14 +427,14 @@ public class TextComponentFactory {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private static void addLocked(SubSkillType subSkillType, ChatColor ccLocked, ChatColor ccLevelRequirement, ChatColor ccLevelRequired, ComponentBuilder componentBuilder) {
 | 
					    private static void addLocked(SubSkillType subSkillType, ChatColor ccLocked, ChatColor ccLevelRequirement, ChatColor ccLevelRequired, ComponentBuilder componentBuilder) {
 | 
				
			||||||
        addLocked(ccLocked, ccLevelRequirement, componentBuilder);
 | 
					        addLocked(ccLocked, ccLevelRequirement, componentBuilder);
 | 
				
			||||||
        componentBuilder.append(String.valueOf(RankConfig.getInstance().getSubSkillUnlockLevel(subSkillType, 1))).color(ccLevelRequired);
 | 
					        componentBuilder.append(String.valueOf(RankUtils.getSubSkillUnlockLevel(subSkillType, 1))).color(ccLevelRequired);
 | 
				
			||||||
        //componentBuilder.append("\n");
 | 
					        //componentBuilder.append("\n");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static void addLocked(AbstractSubSkill abstractSubSkill, ChatColor ccLocked, ChatColor ccLevelRequirement, ChatColor ccLevelRequired, ComponentBuilder componentBuilder) {
 | 
					    private static void addLocked(AbstractSubSkill abstractSubSkill, ChatColor ccLocked, ChatColor ccLevelRequirement, ChatColor ccLevelRequired, ComponentBuilder componentBuilder) {
 | 
				
			||||||
        addLocked(ccLocked, ccLevelRequirement, componentBuilder);
 | 
					        addLocked(ccLocked, ccLevelRequirement, componentBuilder);
 | 
				
			||||||
        componentBuilder.append(String.valueOf(RankConfig.getInstance().getSubSkillUnlockLevel(abstractSubSkill, 1))).color(ccLevelRequired);
 | 
					        componentBuilder.append(String.valueOf(RankUtils.getSubSkillUnlockLevel(abstractSubSkill, 1))).color(ccLevelRequired);
 | 
				
			||||||
        //componentBuilder.append("\n");
 | 
					        //componentBuilder.append("\n");m
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static void addLocked(ChatColor ccLocked, ChatColor ccLevelRequirement, ComponentBuilder componentBuilder) {
 | 
					    private static void addLocked(ChatColor ccLocked, ChatColor ccLevelRequirement, ComponentBuilder componentBuilder) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,7 @@ public class RankUtils {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @param plugin           plugin instance ref
 | 
					     * @param plugin           plugin instance ref
 | 
				
			||||||
     * @param mcMMOPlayer      target player
 | 
					     * @param mcMMOPlayer      target player
 | 
				
			||||||
     * @param primarySkillType
 | 
					     * @param primarySkillType target primary skill
 | 
				
			||||||
     * @param newLevel         the new level of this skill
 | 
					     * @param newLevel         the new level of this skill
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static void executeSkillUnlockNotifications(Plugin plugin, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, int newLevel) {
 | 
					    public static void executeSkillUnlockNotifications(Plugin plugin, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, int newLevel) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user