123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851 |
- package com.gmail.nossr50.config;
- import com.gmail.nossr50.datatypes.interactions.NotificationType;
- import com.gmail.nossr50.datatypes.skills.SubSkillType;
- import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
- import com.gmail.nossr50.mcMMO;
- import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
- import org.bukkit.ChatColor;
- import java.util.ArrayList;
- import java.util.List;
- @ConfigSerializable
- public class AdvancedConfig extends ConfigValidated {
- public static final String SKILLS = "Skills";
- public static final String GENERAL = "General";
- public static final String ABILITY = "Ability";
- public static final String LENGTH = "Length";
- public static final String INCREASE_LEVEL = "IncreaseLevel";
- public static final String ENCHANT_BUFF = "EnchantBuff";
- public static final String ACROBATICS = "Acrobatics";
- public static final String DODGE = "Dodge";
- public static final String CHANCE = "Chance";
- public static final String CHANCE_MAX = CHANCE + "Max";
- public static final String BONUS = "Bonus";
- public static final String MAX_BONUS_LEVEL = "Max" + BONUS + "Level";
- public static final String MODIFIER = "Modifier";
- public static final String DAMAGE_MODIFIER = "Damage" + MODIFIER;
- public static final String DAMAGE_THRESHOLD = "DamageThreshold";
- public static final String ALCHEMY = "Alchemy";
- public static final String CATALYSIS = "Catalysis";
- public static final String MIN_SPEED = "MinSpeed";
- public static final String MAX_SPEED = "MaxSpeed";
- public static final String ARCHERY = "Archery";
- public static final String SKILL_SHOT = "SkillShot";
- public static final String MULTIPLIER = "Multiplier";
- public static final String RANK_DAMAGE_MULTIPLIER = "RankDamage" + MULTIPLIER;
- public static final String BONUS_DAMAGE = BONUS + "Damage";
- public static final String FORCE_MULTIPLIER = "Force" + MULTIPLIER;
- public static final String AXES = "Axes";
- public static final String STANDARD = "Standard";
- public static final String RETRO_MODE = "RetroMode";
- public static final String CAP_LEVEL = "CapLevel";
- public static final String KNOCKBACK_MODIFIER = "Knockback" + MODIFIER;
- public static final String PVP_MODIFIER = "PVP_" + MODIFIER;
- public static final String PVE_MODIFIER = "PVE_" + MODIFIER;
- public static final String FISHING = "Fishing";
- public static final String MASTER_ANGLER = "MasterAngler";
- public static final String BOAT_MODIFIER = "Boat" + MODIFIER;
- public static final String BIOME_MODIFIER = "Biome" + MODIFIER;
- public static final String XP = "XP";
- public static final String VANILLA_XPMULTIPLIER = "Vanilla" + XP + MULTIPLIER;
- public static final String RANK = "Rank_";
- public static final String TAMING = "Taming";
- public static final String CALL_OF_THE_WILD = "CallOfTheWild";
- public static final String MIN_HORSE_JUMP_STRENGTH = "MinHorseJumpStrength";
- public static final String MAX_HORSE_JUMP_STRENGTH = "MaxHorseJumpStrength";
- public static final String SHOCK_PROOF = "ShockProof";
- public static final String UNARMED = "Unarmed";
- public static final String STARTING_LEVEL = "StartingLevel";
- public static final String AXE_MASTERY = "AxeMastery";
- public static final String CRITICAL_STRIKES = "CriticalStrikes";
- public static final String GREATER_IMPACT = "GreaterImpact";
- public static final String ARMOR_IMPACT = "ArmorImpact";
- public static final String SKULL_SPLITTER = "SkullSplitter";
- public static final String MAX_PERCENTAGE_DURABILITY_DAMAGE = "MaxPercentageDurabilityDamage";
- public static final String SHAKE = "Shake";
- public static final String MINING = "Mining";
- public static final String BLAST_MINING = "BlastMining";
- public static final String LEVELS = "Levels";
- public static final String BLAST_DAMAGE_DECREASE = "BlastDamageDecrease";
- public static final String ORE_BONUS = "Ore" + BONUS;
- public static final String DEBRIS_REDUCTION = "DebrisReduction";
- public static final String DROP_MULTIPLIER = "Drop" + MULTIPLIER;
- public static final String BLAST_RADIUS = "BlastRadius";
- public static final String REPAIR = "Repair";
- public static final String REPAIR_MASTERY = "RepairMastery";
- public static final String MAX_BONUS_PERCENTAGE = "Max" + BONUS + "Percentage";
- public static final String ARCANE_FORGING = "ArcaneForging";
- public static final String MAY_LOSE_ENCHANTS = "May_Lose_Enchants";
- public static final String KEEP_ENCHANTS = "Keep_Enchants_";
- public static final String DOWNGRADES = "Downgrades_";
- public static final String ENABLED = "Enabled";
- public static final String DOWNGRADES_ENABLED = DOWNGRADES + ENABLED;
- public static final String SALVAGE = "Salvage";
- public static final String ARCANE_SALVAGE = "ArcaneSalvage";
- public static final String ENCHANT_DOWNGRADE_ENABLED = "EnchantDowngrade" + ENABLED;
- public static final String ENCHANT_LOSS_ENABLED = "EnchantLoss" + ENABLED;
- public static final String EXTRACT_FULL_ENCHANT = "ExtractFullEnchant";
- public static final String EXTRACT_PARTIAL_ENCHANT = "ExtractPartialEnchant";
- public static final String SMELTING = "Smelting";
- public static final String FUEL_EFFICIENCY = "FuelEfficiency";
- public static final String SWORDS = "Swords";
- public static final String RUPTURE = "Rupture";
- public static final String DAMAGE_PLAYER = "DamagePlayer";
- public static final String DAMAGE_MOBS = "DamageMobs";
- public static final String MAX_TICKS = "MaxTicks";
- public static final String BASE_TICKS = "BaseTicks";
- public static final String COUNTER_ATTACK = "CounterAttack";
- public static final String SERRATED_STRIKES = "SerratedStrikes";
- public static final String TICKS = "Ticks";
- public static final String GORE = "Gore";
- public static final String FAST_FOOD = "FastFood";
- public static final String FAST_FOOD_SERVICE = FAST_FOOD + "Service";
- public static final String PUMMEL = "Pummel";
- public static final String THICK_FUR = "ThickFur";
- public static final String SHARPENED_CLAWS = "SharpenedClaws";
- public static final String DISARM = "Disarm";
- public static final String ANTI_THEFT = "AntiTheft";
- public static final String DAZE = "Daze";
- public static final String MAX_DAMAGE = "MaxDamage";
- public static final String ROLL = "Roll";
- public static final String GRACEFUL_ROLL = "Graceful" + ROLL;
- public static final String ARROW_DEFLECT = "ArrowDeflect";
- public static final String IRON_GRIP = "IronGrip";
- public static final String WOODCUTTING = "Woodcutting";
- public static final String HARVEST_LUMBER = "HarvestLumber";
- public static final String FEEDBACK = "Feedback";
- public static final String SKILL_COMMAND = "SkillCommand";
- public static final String BLANK_LINES_ABOVE_HEADER = "BlankLinesAboveHeader";
- public static final String ACTION_BAR_NOTIFICATIONS = "ActionBarNotifications";
- public static final String SEND_COPY_OF_MESSAGE_TO_CHAT = "SendCopyOfMessageToChat";
- public static final String EVENTS = "Events";
- public static final String SEND_TITLES = "SendTitles";
- //private static AdvancedConfig instance;
- public AdvancedConfig() {
- //super(mcMMO.getDataFolderPath().getAbsoluteFile(), "advanced.yml", true);
- super("advanced", mcMMO.p.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
- }
- /**
- * This grabs an instance of this config class from the Config Manager
- * This method is deprecated and will be removed in the future
- *
- * @return the instance of this config
- * @see mcMMO#getConfigManager()
- * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
- */
- @Deprecated
- public static AdvancedConfig getInstance() {
- return mcMMO.getConfigManager().getAdvancedConfig();
- }
- /**
- * The version of this config
- *
- * @return
- */
- @Override
- public double getConfigVersion() {
- return 1;
- }
- @Override
- public List<String> validateKeys() {
- // Validate all the settings!
- List<String> reason = new ArrayList<>();
- /* GENERAL */
- if (getAbilityLength() < 1) {
- reason.add(SKILLS + "." + GENERAL + "." + ABILITY + "." + LENGTH + ".<mode>." + INCREASE_LEVEL + " should be at least 1!");
- }
- if (getEnchantBuff() < 1) {
- reason.add(SKILLS + "." + GENERAL + "." + ABILITY + "." + ENCHANT_BUFF + " should be at least 1!");
- }
- /* ACROBATICS */
- if (getMaximumProbability(SubSkillType.ACROBATICS_DODGE) < 1) {
- reason.add(SKILLS + "." + ACROBATICS + "." + DODGE + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.ACROBATICS_DODGE) < 1) {
- reason.add(SKILLS + "." + ACROBATICS + "." + DODGE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getDodgeDamageModifier() <= 1) {
- reason.add(SKILLS + "." + ACROBATICS + "." + DODGE + "." + DAMAGE_MODIFIER + " should be greater than 1!");
- }
- if (getMaximumProbability(SubSkillType.ACROBATICS_ROLL) < 1) {
- reason.add(SKILLS + "." + ACROBATICS + "." + ROLL + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.ACROBATICS_ROLL) < 1) {
- reason.add(SKILLS + "." + ACROBATICS + "." + ROLL + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getRollDamageThreshold() < 0) {
- reason.add(SKILLS + "." + ACROBATICS + "." + ROLL + "." + DAMAGE_THRESHOLD + " should be at least 0!");
- }
- if (getGracefulRollDamageThreshold() < 0) {
- reason.add(SKILLS + "." + ACROBATICS + "." + GRACEFUL_ROLL + "." + DAMAGE_THRESHOLD + " should be at least 0!");
- }
- if (getCatalysisMinSpeed() <= 0) {
- reason.add(SKILLS + "." + ALCHEMY + "." + CATALYSIS + "." + MIN_SPEED + " must be greater than 0!");
- }
- if (getCatalysisMaxSpeed() < getCatalysisMinSpeed()) {
- reason.add(SKILLS + "." + ALCHEMY + "." + CATALYSIS + "." + MAX_SPEED + " should be at least Skills.Alchemy.Catalysis." + MIN_SPEED + "!");
- }
- /* ARCHERY */
- if (getSkillShotRankDamageMultiplier() <= 0) {
- reason.add(SKILLS + "." + ARCHERY + "." + SKILL_SHOT + "." + RANK_DAMAGE_MULTIPLIER + " should be greater than 0!");
- }
- if (getMaximumProbability(SubSkillType.ARCHERY_DAZE) < 1) {
- reason.add(SKILLS + "." + ARCHERY + "." + DAZE + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.ARCHERY_DAZE) < 1) {
- reason.add(SKILLS + "." + ARCHERY + "." + DAZE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getDazeBonusDamage() < 0) {
- reason.add(SKILLS + "." + ARCHERY + "." + DAZE + "." + BONUS_DAMAGE + " should be at least 0!");
- }
- if (getMaximumProbability(SubSkillType.ARCHERY_ARROW_RETRIEVAL) < 1) {
- reason.add(SKILLS + "." + ARCHERY + ".Retrieve." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.ARCHERY_ARROW_RETRIEVAL) < 1) {
- reason.add(SKILLS + "." + ARCHERY + ".Retrieve." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getForceMultiplier() < 0) {
- reason.add(SKILLS + "." + ARCHERY + "." + FORCE_MULTIPLIER + " should be at least 0!");
- }
- /* AXES */
- if (getAxeMasteryRankDamageMultiplier() < 0) {
- reason.add(SKILLS + "." + AXES + "." + AXE_MASTERY + "." + RANK_DAMAGE_MULTIPLIER + " should be at least 0!");
- }
- if (getMaximumProbability(SubSkillType.AXES_CRITICAL_STRIKES) < 1) {
- reason.add(SKILLS + "." + AXES + ".CriticalHit." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.AXES_CRITICAL_STRIKES) < 1) {
- reason.add(SKILLS + "." + AXES + ".CriticalHit." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getCriticalStrikesPVPModifier() < 1) {
- reason.add(SKILLS + "." + AXES + "." + CRITICAL_STRIKES + "." + PVP_MODIFIER + " should be at least 1!");
- }
- if (getCriticalStrikesPVPModifier() < 1) {
- reason.add(SKILLS + "." + AXES + "." + CRITICAL_STRIKES + "." + PVE_MODIFIER + " should be at least 1!");
- }
- if (getGreaterImpactChance() < 1) {
- reason.add(SKILLS + "." + AXES + "." + GREATER_IMPACT + "." + CHANCE + " should be at least 1!");
- }
- if (getGreaterImpactModifier() < 1) {
- reason.add(SKILLS + "." + AXES + "." + GREATER_IMPACT + "." + KNOCKBACK_MODIFIER + " should be at least 1!");
- }
- if (getGreaterImpactBonusDamage() < 1) {
- reason.add(SKILLS + "." + AXES + "." + GREATER_IMPACT + "." + BONUS_DAMAGE + " should be at least 1!");
- }
- if (getArmorImpactIncreaseLevel() < 1) {
- reason.add(SKILLS + "." + AXES + "." + ARMOR_IMPACT + "." + INCREASE_LEVEL + " should be at least 1!");
- }
- if (getImpactChance() < 1) {
- reason.add(SKILLS + "." + AXES + "." + ARMOR_IMPACT + "." + CHANCE + " should be at least 1!");
- }
- if (getArmorImpactMaxDurabilityDamage() < 1) {
- reason.add(SKILLS + "." + AXES + "." + ARMOR_IMPACT + "." + MAX_PERCENTAGE_DURABILITY_DAMAGE + " should be at least 1!");
- }
- if (getSkullSplitterModifier() < 1) {
- reason.add(SKILLS + "." + AXES + "." + SKULL_SPLITTER + DAMAGE_MODIFIER + " should be at least 1!");
- }
- /*if (getFishermanDietRankChange() < 1) {
- reason.add(SKILLS + "." + FISHING + ".FishermansDiet.RankChange should be at least 1!");
- }*/
- if (getMasterAnglerBoatModifier() < 1) {
- reason.add(SKILLS + "." + FISHING + "." + MASTER_ANGLER + "." + BOAT_MODIFIER + " should be at least 1!");
- }
- if (getMasterAnglerBiomeModifier() < 1) {
- reason.add(SKILLS + "." + FISHING + "." + MASTER_ANGLER + "." + BIOME_MODIFIER + " should be at least 1!");
- }
- /* HERBALISM */
- /*if (getFarmerDietRankChange() < 1) {
- reason.add(SKILLS + ".Herbalism.FarmersDiet.RankChange should be at least 1!");
- }
- if (getGreenThumbStageChange() < 1) {
- reason.add(SKILLS + ".Herbalism.GreenThumb.StageChange should be at least 1!");
- }*/
- if (getMaximumProbability(SubSkillType.HERBALISM_GREEN_THUMB) < 1) {
- reason.add(SKILLS + ".Herbalism.GreenThumb." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.HERBALISM_GREEN_THUMB) < 1) {
- reason.add(SKILLS + ".Herbalism.GreenThumb." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.HERBALISM_DOUBLE_DROPS) < 1) {
- reason.add(SKILLS + ".Herbalism.DoubleDrops." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.HERBALISM_DOUBLE_DROPS) < 1) {
- reason.add(SKILLS + ".Herbalism.DoubleDrops." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.HERBALISM_HYLIAN_LUCK) < 1) {
- reason.add(SKILLS + ".Herbalism.HylianLuck." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.HERBALISM_HYLIAN_LUCK) < 1) {
- reason.add(SKILLS + ".Herbalism.HylianLuck." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.HERBALISM_SHROOM_THUMB) < 1) {
- reason.add(SKILLS + ".Herbalism.ShroomThumb." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.HERBALISM_SHROOM_THUMB) < 1) {
- reason.add(SKILLS + ".Herbalism.ShroomThumb." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- /* MINING */
- if (getMaximumProbability(SubSkillType.MINING_DOUBLE_DROPS) < 1) {
- reason.add(SKILLS + "." + MINING + ".DoubleDrops." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.MINING_DOUBLE_DROPS) < 1) {
- reason.add(SKILLS + "." + MINING + ".DoubleDrops." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- /* REPAIR */
- /*
- if (getRepairMasteryMaxLevel() < 1) {
- reason.add(SKILLS + "." + REPAIR + "." + REPAIR_MASTERY + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }*/
- if (getRepairMasteryMaxBonus() < 1) {
- reason.add(SKILLS + "." + REPAIR + "." + REPAIR_MASTERY + "." + MAX_BONUS_PERCENTAGE + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.REPAIR_SUPER_REPAIR) < 1) {
- reason.add(SKILLS + "." + REPAIR + ".SuperRepair." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.REPAIR_SUPER_REPAIR) < 1) {
- reason.add(SKILLS + "." + REPAIR + ".SuperRepair." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- /* SMELTING */
- if (getMaxBonusLevel(SubSkillType.SMELTING_FUEL_EFFICIENCY) < 1) {
- reason.add(SKILLS + "." + SMELTING + "." + FUEL_EFFICIENCY + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.SMELTING_SECOND_SMELT) < 1) {
- reason.add(SKILLS + "." + SMELTING + ".SecondSmelt." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.SMELTING_SECOND_SMELT) < 1) {
- reason.add(SKILLS + "." + SMELTING + ".SecondSmelt." + CHANCE_MAX + " should be at least 1!");
- }
- /* SWORDS */
- if (getMaximumProbability(SubSkillType.SWORDS_RUPTURE) < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.SWORDS_RUPTURE) < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getRuptureMaxTicks() < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + MAX_TICKS + " should be at least 1!");
- }
- if (getRuptureMaxTicks() < getRuptureBaseTicks()) {
- reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + MAX_TICKS + " should be at least Skills.Swords.Rupture." + BASE_TICKS + "!");
- }
- if (getRuptureBaseTicks() < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + RUPTURE + "." + BASE_TICKS + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.SWORDS_COUNTER_ATTACK) < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + COUNTER_ATTACK + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.SWORDS_COUNTER_ATTACK) < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + COUNTER_ATTACK + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getCounterAttackModifier() < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + COUNTER_ATTACK + "." + DAMAGE_MODIFIER + " should be at least 1!");
- }
- if (getSerratedStrikesModifier() < 1) {
- reason.add(SKILLS + "." + SWORDS + "." + SERRATED_STRIKES + "." + DAMAGE_MODIFIER + " should be at least 1!");
- }
- /* TAMING */
- if (getMaximumProbability(SubSkillType.TAMING_GORE) < 1) {
- reason.add(SKILLS + "." + TAMING + "." + GORE + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.TAMING_GORE) < 1) {
- reason.add(SKILLS + "." + TAMING + "." + GORE + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getGoreModifier() < 1) {
- reason.add(SKILLS + "." + TAMING + "." + GORE + "." + MODIFIER + " should be at least 1!");
- }
- if (getFastFoodChance() < 1) {
- reason.add(SKILLS + "." + TAMING + "." + FAST_FOOD + "." + CHANCE + " should be at least 1!");
- }
- if (getThickFurModifier() < 1) {
- reason.add(SKILLS + "." + TAMING + "." + THICK_FUR + "." + MODIFIER + " should be at least 1!");
- }
- if (getShockProofModifier() < 1) {
- reason.add(SKILLS + "." + TAMING + "." + SHOCK_PROOF + "." + MODIFIER + " should be at least 1!");
- }
- if (getSharpenedClawsBonus() < 1) {
- reason.add(SKILLS + "." + TAMING + "." + SHARPENED_CLAWS + "." + BONUS + " should be at least 1!");
- }
- if (getMaxHorseJumpStrength() < 0 || getMaxHorseJumpStrength() > 2) {
- reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD + "." + MAX_HORSE_JUMP_STRENGTH + " should be between 0 and 2!");
- }
- /* UNARMED */
- if (getMaximumProbability(SubSkillType.UNARMED_DISARM) < 1) {
- reason.add(SKILLS + "." + UNARMED + "." + DISARM + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.UNARMED_DISARM) < 1) {
- reason.add(SKILLS + "." + UNARMED + "." + DISARM + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.UNARMED_ARROW_DEFLECT) < 1) {
- reason.add(SKILLS + "." + UNARMED + "." + ARROW_DEFLECT + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.UNARMED_ARROW_DEFLECT) < 1) {
- reason.add(SKILLS + "." + UNARMED + "." + ARROW_DEFLECT + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- if (getMaximumProbability(SubSkillType.UNARMED_IRON_GRIP) < 1) {
- reason.add(SKILLS + "." + UNARMED + "." + IRON_GRIP + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.UNARMED_IRON_GRIP) < 1) {
- reason.add(SKILLS + "." + UNARMED + "." + IRON_GRIP + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- /* WOODCUTTING */
- /*if (getLeafBlowUnlockLevel() < 0) {
- reason.add("Skills.Woodcutting.LeafBlower.UnlockLevel should be at least 0!");
- }*/
- if (getMaximumProbability(SubSkillType.WOODCUTTING_HARVEST_LUMBER) < 1) {
- reason.add(SKILLS + "." + WOODCUTTING + "." + HARVEST_LUMBER + "." + CHANCE_MAX + " should be at least 1!");
- }
- if (getMaxBonusLevel(SubSkillType.WOODCUTTING_HARVEST_LUMBER) < 1) {
- reason.add(SKILLS + "." + WOODCUTTING + "." + HARVEST_LUMBER + "." + MAX_BONUS_LEVEL + " should be at least 1!");
- }
- return reason;
- }
- /* GENERAL */
- /**
- * This returns the maximum level at which superabilities will stop lengthening from scaling alongside skill level.
- * It returns a different value depending on whether or not the server is in retro mode
- *
- * @return the level at which abilities stop increasing in length
- */
- public int getAbilityLengthCap() {
- if (!mcMMO.isRetroModeEnabled())
- return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, STANDARD, CAP_LEVEL);
- else
- return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, RETRO_MODE, CAP_LEVEL);
- }
- /**
- * This returns the frequency at which abilities will increase in length
- * It returns a different value depending on whether or not the server is in retro mode
- *
- * @return the number of levels required per ability length increase
- */
- public int getAbilityLength() {
- if (!mcMMO.isRetroModeEnabled())
- return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, STANDARD, INCREASE_LEVEL);
- else
- return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, RETRO_MODE, INCREASE_LEVEL);
- }
- public int getEnchantBuff() {
- return getIntValue(SKILLS, GENERAL, ABILITY, ENCHANT_BUFF);
- }
- /**
- * Grabs the max bonus level for a skill used in RNG calculations
- * All max level values in the config are multiplied by 10 if the server is in retro mode as the values in the config are based around the new 1-100 skill system scaling
- * A value of 10 in the file will be returned as 100 for retro mode servers to accommodate the change in scaling
- *
- * @param subSkillType target subskill
- * @return the level at which this skills max benefits will be reached on the curve
- */
- public int getMaxBonusLevel(SubSkillType subSkillType) {
- String[] category = subSkillType.getAdvConfigAddress();
- if (!mcMMO.isRetroModeEnabled())
- return getIntValue(category[0], category[1], category[2], MAX_BONUS_LEVEL, STANDARD);
- else
- return getIntValue(category[0], category[1], category[2], MAX_BONUS_LEVEL, RETRO_MODE);
- }
- public int getMaxBonusLevel(AbstractSubSkill abstractSubSkill) {
- return getMaxBonusLevel(abstractSubSkill.getSubSkillType());
- }
- public double getMaximumProbability(SubSkillType subSkillType) {
- String[] category = subSkillType.getAdvConfigAddress();
- double maximumProbability = getDoubleValue(category[0], category[1], category[2], CHANCE_MAX);
- return maximumProbability;
- }
- public double getMaximumProbability(AbstractSubSkill abstractSubSkill) {
- return getMaximumProbability(abstractSubSkill.getSubSkillType());
- }
- /* Notification Settings */
- public boolean doesSkillCommandSendBlankLines() {
- return getBooleanValue(FEEDBACK, SKILL_COMMAND, BLANK_LINES_ABOVE_HEADER);
- }
- public boolean doesNotificationUseActionBar(NotificationType notificationType) {
- return getBooleanValue(FEEDBACK, ACTION_BAR_NOTIFICATIONS, notificationType.toString(), ENABLED);
- }
- public boolean doesNotificationSendCopyToChat(NotificationType notificationType) {
- return getBooleanValue(FEEDBACK, ACTION_BAR_NOTIFICATIONS, notificationType.toString(), SEND_COPY_OF_MESSAGE_TO_CHAT);
- }
- public boolean useTitlesForXPEvent() {
- return getBooleanValue(FEEDBACK, EVENTS, XP, SEND_TITLES);
- }
- private ChatColor getChatColorFromKey(String keyLocation) {
- String colorName = getStringValue(keyLocation);
- return getChatColor(colorName);
- }
- private ChatColor getChatColor(String configColor) {
- for (ChatColor chatColor : ChatColor.values()) {
- if (configColor.equalsIgnoreCase(chatColor.toString()))
- return chatColor;
- }
- //Invalid Color
- System.out.println("[mcMMO] " + configColor + " is an invalid color value");
- return ChatColor.WHITE;
- }
- /* ACROBATICS */
- public double getDodgeDamageModifier() {
- return getDoubleValue(SKILLS, ACROBATICS, DODGE, DAMAGE_MODIFIER);
- }
- public double getRollDamageThreshold() {
- return getDoubleValue(SKILLS, ACROBATICS, ROLL, DAMAGE_THRESHOLD);
- }
- public double getGracefulRollDamageThreshold() {
- return getDoubleValue(SKILLS, ACROBATICS, GRACEFUL_ROLL, DAMAGE_THRESHOLD);
- }
- /* ALCHEMY */
- public int getCatalysisMaxBonusLevel() {
- return getIntValue(SKILLS, ALCHEMY, CATALYSIS, MAX_BONUS_LEVEL);
- }
- public double getCatalysisMinSpeed() {
- return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MIN_SPEED);
- }
- public double getCatalysisMaxSpeed() {
- return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MAX_SPEED);
- }
- /* ARCHERY */
- public double getSkillShotRankDamageMultiplier() {
- return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, RANK_DAMAGE_MULTIPLIER);
- }
- public double getSkillShotDamageMax() {
- return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, MAX_DAMAGE);
- }
- public double getDazeBonusDamage() {
- return getDoubleValue(SKILLS, ARCHERY, DAZE, BONUS_DAMAGE);
- }
- public double getForceMultiplier() {
- return getDoubleValue(SKILLS, ARCHERY, FORCE_MULTIPLIER);
- }
- /* AXES */
- public double getAxeMasteryRankDamageMultiplier() {
- return getDoubleValue(SKILLS, AXES, AXE_MASTERY, RANK_DAMAGE_MULTIPLIER);
- }
- public double getCriticalStrikesPVPModifier() {
- return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVP_MODIFIER);
- }
- public double getCriticalStrikesPVEModifier() {
- return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVE_MODIFIER);
- }
- public double getGreaterImpactChance() {
- return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, CHANCE);
- }
- public double getGreaterImpactModifier() {
- return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, KNOCKBACK_MODIFIER);
- }
- public double getGreaterImpactBonusDamage() {
- return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, BONUS_DAMAGE);
- }
- public int getArmorImpactIncreaseLevel() {
- int increaseLevel = getIntValue(SKILLS, AXES, ARMOR_IMPACT, INCREASE_LEVEL);
- if (mcMMO.isRetroModeEnabled())
- return increaseLevel * 10;
- return increaseLevel;
- }
- public double getImpactChance() {
- return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, CHANCE);
- }
- public double getArmorImpactMaxDurabilityDamage() {
- return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, MAX_PERCENTAGE_DURABILITY_DAMAGE);
- }
- public double getSkullSplitterModifier() {
- return getDoubleValue(SKILLS, AXES, SKULL_SPLITTER, DAMAGE_MODIFIER);
- }
- /* EXCAVATION */
- //Nothing to configure, everything is already configurable in config.yml
- /* FISHING */
- public double getShakeChance(int rank) {
- return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank));
- }
- public double getMasterAnglerBoatModifier() {
- return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER);
- }
- public double getMasterAnglerBiomeModifier() {
- return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER);
- }
- /* HERBALISM */
- //public int getFarmerDietRankChange() { return getIntValue(SKILLS, ".Herbalism.FarmersDiet.RankChange"); }
- //public int getGreenThumbStageChange() { return getIntValue(SKILLS, ".Herbalism.GreenThumb.StageChange"); }
- /* MINING */
- public boolean getDoubleDropSilkTouchEnabled() {
- return getBooleanValue(SKILLS, MINING, "DoubleDrops", "SilkTouch");
- }
- public int getBlastMiningRankLevel(int rank) {
- return getIntValue(SKILLS, MINING, BLAST_MINING, RANK, LEVELS, RANK, String.valueOf(rank));
- }
- public double getBlastDamageDecrease(int rank) {
- return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_DAMAGE_DECREASE, RANK, String.valueOf(rank));
- }
- public double getOreBonus(int rank) {
- return getDoubleValue(SKILLS, MINING, BLAST_MINING, ORE_BONUS, RANK, String.valueOf(rank));
- }
- public double getDebrisReduction(int rank) {
- return getDoubleValue(SKILLS, MINING, BLAST_MINING, DEBRIS_REDUCTION, RANK, String.valueOf(rank));
- }
- public int getDropMultiplier(int rank) {
- return getIntValue(SKILLS, MINING, BLAST_MINING, DROP_MULTIPLIER, RANK, String.valueOf(rank));
- }
- public double getBlastRadiusModifier(int rank) {
- return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_RADIUS, MODIFIER, RANK, String.valueOf(rank));
- }
- /* REPAIR */
- public double getRepairMasteryMaxBonus() {
- return getDoubleValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_PERCENTAGE);
- }
- //public int getRepairMasteryMaxLevel() { return getIntValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_LEVEL); }
- /* Arcane Forging */
- public boolean getArcaneForgingEnchantLossEnabled() {
- return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, MAY_LOSE_ENCHANTS);
- }
- public double getArcaneForgingKeepEnchantsChance(int rank) {
- return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, KEEP_ENCHANTS, CHANCE, RANK, String.valueOf(rank));
- }
- public boolean getArcaneForgingDowngradeEnabled() {
- return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES_ENABLED);
- }
- public double getArcaneForgingDowngradeChance(int rank) {
- return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES, CHANCE, RANK, String.valueOf(rank));
- }
- /* SALVAGE */
- public boolean getArcaneSalvageEnchantDowngradeEnabled() {
- return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_DOWNGRADE_ENABLED);
- }
- public boolean getArcaneSalvageEnchantLossEnabled() {
- return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_LOSS_ENABLED);
- }
- public double getArcaneSalvageExtractFullEnchantsChance(int rank) {
- return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_FULL_ENCHANT, RANK, String.valueOf(rank));
- }
- public double getArcaneSalvageExtractPartialEnchantsChance(int rank) {
- return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_PARTIAL_ENCHANT, RANK, String.valueOf(rank));
- }
- /* SMELTING */
- //public int getBurnModifierMaxLevel() { return getIntValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MAX_BONUS_LEVEL); }
- public double getBurnTimeMultiplier() {
- return getDoubleValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MULTIPLIER);
- }
- public int getSmeltingRankLevel(int rank) {
- return getIntValue(SKILLS, SMELTING, RANK, LEVELS, RANK, String.valueOf(rank));
- }
- public int getSmeltingVanillaXPBoostMultiplier(int rank) {
- return getIntValue(SKILLS, SMELTING, VANILLA_XPMULTIPLIER, RANK, String.valueOf(rank));
- }
- /* SWORDS */
- public double getRuptureDamagePlayer() {
- return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_PLAYER);
- }
- public double getRuptureDamageMobs() {
- return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_MOBS);
- }
- public int getRuptureMaxTicks() {
- return getIntValue(SKILLS, SWORDS, RUPTURE, MAX_TICKS);
- }
- public int getRuptureBaseTicks() {
- return getIntValue(SKILLS, SWORDS, RUPTURE, BASE_TICKS);
- }
- public double getCounterAttackModifier() {
- return getDoubleValue(SKILLS, SWORDS, COUNTER_ATTACK, DAMAGE_MODIFIER);
- }
- public double getSerratedStrikesModifier() {
- return getDoubleValue(SKILLS, SWORDS, SERRATED_STRIKES, DAMAGE_MODIFIER);
- }
- //public int getSerratedStrikesTicks() { return getIntValue(SKILLS, SWORDS, SERRATED_STRIKES, RUPTURE, TICKS); }
- /* TAMING */
- public double getGoreModifier() {
- return getDoubleValue(SKILLS, TAMING, GORE, MODIFIER);
- }
- public double getFastFoodChance() {
- return getDoubleValue(SKILLS, TAMING, FAST_FOOD_SERVICE, CHANCE);
- }
- public double getPummelChance() {
- return getDoubleValue(SKILLS, TAMING, PUMMEL, CHANCE);
- }
- public double getThickFurModifier() {
- return getDoubleValue(SKILLS, TAMING, THICK_FUR, MODIFIER);
- }
- public double getShockProofModifier() {
- return getDoubleValue(SKILLS, TAMING, SHOCK_PROOF, MODIFIER);
- }
- public double getSharpenedClawsBonus() {
- return getDoubleValue(SKILLS, TAMING, SHARPENED_CLAWS, BONUS);
- }
- public double getMinHorseJumpStrength() {
- return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MIN_HORSE_JUMP_STRENGTH);
- }
- public double getMaxHorseJumpStrength() {
- return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MAX_HORSE_JUMP_STRENGTH);
- }
- /* UNARMED */
- public boolean getDisarmProtected() {
- return getBooleanValue(SKILLS, UNARMED, DISARM, ANTI_THEFT);
- }
- /* WOODCUTTING */
- }
|