From 80f910fc6782483c075454616116f7e0fa35ef8a Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 8 Oct 2020 19:21:39 -0700 Subject: [PATCH] Add setting for enable/disable triple drops on super breaker --- Changelog.txt | 1 + .../gmail/nossr50/config/AdvancedConfig.java | 163 +----------------- .../nossr50/skills/mining/MiningManager.java | 3 +- src/main/resources/advanced.yml | 2 + 4 files changed, 7 insertions(+), 162 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index b2103cc8a..6f857480a 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -5,6 +5,7 @@ Version 2.1.148 New experience multiplier labeled 'Eggs' in experience.yml with a default value of 0 (previously mobs from eggs were using the Mobspawner experience multiplier) New experience multiplier labeled 'Nether_Portal' in experience.yml with a default value of 0 New experience multiplier labeled 'Player_Tamed' in experience.yml with a default value of 0 + New advanced.yml config setting 'Skills.Mining.SuperBreaker.AllowTripleDrops' defaults to true Fixed a bug where mobs from eggs were only tracked if it was dispensed (egg tracking now tracks from egg items as well) Fixed a bug where egg spawned mobs were sometimes not marked as being from an egg (used in experience multipliers) diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index e51edeaad..59803f29c 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -275,62 +275,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Mining.DoubleDrops.MaxBonusLevel should be at least 1!"); } - /*List blastMiningTierList = Arrays.asList(BlastMining.Tier.values()); - - for (int rank : blastMiningTierList) { - if (getBlastMiningRankLevel(tier) < 0) { - reason.add("Skills.Mining.BlastMining.Rank_Levels.Rank_" + rank + " should be at least 0!"); - } - - if (getBlastDamageDecrease(tier) < 0) { - reason.add("Skills.Mining.BlastMining.BlastDamageDecrease.Rank_" + rank + " should be at least 0!"); - } - - if (getOreBonus(tier) < 0) { - reason.add("Skills.Mining.BlastMining.OreBonus.Rank_" + rank + " should be at least 0!"); - } - - if (getDebrisReduction(tier) < 0) { - reason.add("Skills.Mining.BlastMining.DebrisReduction.Rank_" + rank + " should be at least 0!"); - } - - if (getDropMultiplier(tier) < 0) { - reason.add("Skills.Mining.BlastMining.DropMultiplier.Rank_" + rank + " should be at least 0!"); - } - - if (getBlastRadiusModifier(tier) < 0) { - reason.add("Skills.Mining.BlastMining.BlastRadiusModifier.Rank_" + rank + " should be at least 0!"); - } - - if (tier != BlastMining.Tier.EIGHT) { - BlastMining.Tier nextTier = blastMiningTierList.get(blastMiningTierList.indexOf(tier) - 1); - - if (getBlastMiningRankLevel(tier) > getBlastMiningRankLevel(nextTier)) { - reason.add("Skills.Mining.BlastMining.Rank_Levels.Rank_" + rank + " should be less than or equal to Skills.Mining.BlastMining.Rank_Levels.Rank_" + nextrank + "!"); - } - - if (getBlastDamageDecrease(tier) > getBlastDamageDecrease(nextTier)) { - reason.add("Skills.Mining.BlastMining.BlastDamageDecrease.Rank_" + rank + " should be less than or equal to Skills.Mining.BlastMining.BlastDamageDecrease.Rank_" + nextrank + "!"); - } - - if (getOreBonus(tier) > getOreBonus(nextTier)) { - reason.add("Skills.Mining.BlastMining.OreBonus.Rank_" + rank + " should be less than or equal to Skills.Mining.BlastMining.OreBonus.Rank_" + nextrank + "!"); - } - - if (getDebrisReduction(tier) > getDebrisReduction(nextTier)) { - reason.add("Skills.Mining.BlastMining.DebrisReduction.Rank_" + rank + " should be less than or equal to Skills.Mining.BlastMining.DebrisReduction.Rank_" + nextrank + "!"); - } - - if (getDropMultiplier(tier) > getDropMultiplier(nextTier)) { - reason.add("Skills.Mining.BlastMining.DropMultiplier.Rank_" + rank + " should be less than or equal to Skills.Mining.BlastMining.DropMultiplier.Rank_" + nextrank + "!"); - } - - if (getBlastRadiusModifier(tier) > getBlastRadiusModifier(nextTier)) { - reason.add("Skills.Mining.BlastMining.BlastRadiusModifier.Rank_" + rank + " should be less than or equal to Skills.Mining.BlastMining.BlastRadiusModifier.Rank_" + nextrank + "!"); - } - } - }*/ - /* REPAIR */ if (getRepairMasteryMaxBonus() < 1) { reason.add("Skills.Repair.RepairMastery.MaxBonusPercentage should be at least 1!"); @@ -348,83 +292,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Repair.SuperRepair.MaxBonusLevel should be at least 1!"); } - /*List arcaneForgingTierList = Arrays.asList(ArcaneForging.Tier.values()); - - for (ArcaneForging.Tier tier : arcaneForgingTierList) { - if (getArcaneForgingRankLevel(tier) < 0) { - reason.add("Skills.Repair.ArcaneForging.Rank_Levels.Rank_" + rank + " should be at least 0!"); - } - - if (getArcaneForgingDowngradeChance(tier) < 0 || getArcaneForgingDowngradeChance(tier) > 100) { - reason.add("Skills.Repair.ArcaneForging.Downgrades.Chance.Rank_" + rank + " only accepts values from 0 to 100!"); - } - - if (getArcaneForgingKeepEnchantsChance(tier) < 0 || getArcaneForgingKeepEnchantsChance(tier) > 100) { - reason.add("Skills.Repair.ArcaneForging.Keep_Enchants.Chance.Rank_" + rank + " only accepts values from 0 to 100!"); - } - - if (tier != ArcaneForging.Tier.EIGHT) { - ArcaneForging.Tier nextTier = arcaneForgingTierList.get(arcaneForgingTierList.indexOf(tier) - 1); - - if (getArcaneForgingRankLevel(tier) > getArcaneForgingRankLevel(nextTier)) { - reason.add("Skills.Repair.ArcaneForging.Rank_Levels.Rank_" + rank + " should be less than or equal to Skills.Repair.ArcaneForging.Rank_Levels.Rank_" + nextrank + "!"); - } - - if (getArcaneForgingDowngradeChance(nextTier) > getArcaneForgingDowngradeChance(tier)) { - reason.add("Skills.Repair.ArcaneForging.Downgrades.Chance.Rank_" + nextrank + " should be less than or equal to Skills.Repair.ArcaneForging.Downgrades.Chance.Rank_" + rank + "!"); - } - - if (getArcaneForgingKeepEnchantsChance(tier) > getArcaneForgingKeepEnchantsChance(nextTier)) { - reason.add("Skills.Repair.ArcaneForging.Keep_Enchants.Chance.Rank_" + rank + " should be less than or equal to Skills.Repair.ArcaneForging.Keep_Enchants.Chance.Rank_" + nextrank + "!"); - } - } - }*/ - - /* SALVAGE */ - /*if (getSalvageMaxPercentage() < 1) { - reason.add("Skills.Salvage.MaxPercentage should be at least 1!"); - } - - if (getSalvageMaxPercentageLevel() < 1) { - reason.add("Skills.Salvage.MaxPercentageLevel should be at least 1!"); - }*/ - - /*if (getAdvancedSalvageUnlockLevel() < 0) { - reason.add("Skills.Salvage.AdvancedSalvage.UnlockLevel should be at least 0!"); - }*/ - - /*List salvageTierList = Arrays.asList(Salvage.Tier.values()); - - for (Salvage.Tier tier : salvageTierList) { - if (getArcaneSalvageRankLevel(tier) < 0) { - reason.add("Skills.Salvage.ArcaneSalvage.Rank_Levels.Rank_" + rank + " should be at least 0!"); - } - - if (getArcaneSalvageExtractFullEnchantsChance(tier) < 0 || getArcaneSalvageExtractFullEnchantsChance(tier) > 100) { - reason.add("Skills.Salvage.ArcaneSalvage.ExtractFullEnchant.Rank_" + rank + " only accepts values from 0 to 100!"); - } - - if (getArcaneSalvageExtractPartialEnchantsChance(tier) < 0 || getArcaneSalvageExtractPartialEnchantsChance(tier) > 100) { - reason.add("Skills.Salvage.ArcaneSalvage.ExtractPartialEnchant.Rank_" + rank + " only accepts values from 0 to 100!"); - } - - if (tier != Salvage.Tier.EIGHT) { - Salvage.Tier nextTier = salvageTierList.get(salvageTierList.indexOf(tier) - 1); - - if (getArcaneSalvageRankLevel(tier) > getArcaneSalvageRankLevel(nextTier)) { - reason.add("Skills.Salvage.ArcaneSalvage.Rank_Levels.Rank_" + rank + " should be less than or equal to Skills.Salvage.ArcaneSalvage.Rank_Levels.Rank_" + nextrank + "!"); - } - - if (getArcaneSalvageExtractFullEnchantsChance(tier) > getArcaneSalvageExtractFullEnchantsChance(nextTier)) { - reason.add("Skills.Salvage.ArcaneSalvage.ExtractFullEnchant.Rank_" + rank + " should be less than or equal to Skills.Salvage.ArcaneSalvage.ExtractFullEnchant.Rank_" + nextrank + "!"); - } - - if (getArcaneSalvageExtractPartialEnchantsChance(tier) > getArcaneSalvageExtractPartialEnchantsChance(nextTier)) { - reason.add("Skills.Salvage.ArcaneSalvage.ExtractPartialEnchant.Rank_" + rank + " should be less than or equal to Skills.Salvage.ArcaneSalvage.ExtractPartialEnchant.Rank_" + nextrank + "!"); - } - } - }*/ - /* SMELTING */ if (getBurnModifierMaxLevel() < 1) { reason.add("Skills.Smelting.FuelEfficiency.MaxBonusLevel should be at least 1!"); @@ -438,38 +305,10 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Smelting.SecondSmelt.ChanceMax should be at least 1!"); } - /*if (getFluxMiningUnlockLevel() < 0) { - reason.add("Skills.Smelting.FluxMining.UnlockLevel should be at least 0!"); - }*/ - if (getFluxMiningChance() < 1) { reason.add("Skills.Smelting.FluxMining.Chance should be at least 1!"); } - /*List smeltingTierList = Arrays.asList(Smelting.Tier.values()); - - for (int rank : smeltingTierList) { - if (getSmeltingRankLevel(tier) < 0) { - reason.add("Skills.Smelting.Rank_Levels.Rank_" + rank + " should be at least 0!"); - } - - if (getSmeltingVanillaXPBoostMultiplier(tier) < 1) { - reason.add("Skills.Smelting.VanillaXPMultiplier.Rank_" + rank + " should be at least 1!"); - } - - if (tier != Smelting.Tier.EIGHT) { - Smelting.Tier nextTier = smeltingTierList.get(smeltingTierList.indexOf(tier) - 1); - - if (getSmeltingRankLevel(tier) > getSmeltingRankLevel(nextTier)) { - reason.add("Skills.Smelting.Rank_Levels.Rank_" + rank + " should be less than or equal to Skills.Smelting.Rank_Levels.Rank_" + nextrank + "!"); - } - - if (getSmeltingVanillaXPBoostMultiplier(tier) > getSmeltingVanillaXPBoostMultiplier(nextTier)) { - reason.add("Skills.Smelting.VanillaXPMultiplier.Rank_" + rank + " should be less than or equal to Skills.Smelting.VanillaXPMultiplier.Rank_" + nextrank + "!"); - } - } - }*/ - /* SWORDS */ if (getMaximumProbability(SubSkillType.SWORDS_RUPTURE) < 1) { reason.add("Skills.Swords.Rupture.ChanceMax should be at least 1!"); @@ -897,6 +736,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { /* MINING */ public boolean getDoubleDropSilkTouchEnabled() { return config.getBoolean("Skills.Mining.DoubleDrops.SilkTouch", true); } + public boolean getAllowMiningTripleDrops() { return config.getBoolean("Skills.Mining.SuperBreaker.AllowTripleDrops", true); } public int getBlastMiningRankLevel(int rank) { return config.getInt("Skills.Mining.BlastMining.Rank_Levels.Rank_" + rank); } public double getBlastDamageDecrease(int rank) { return config.getDouble("Skills.Mining.BlastMining.BlastDamageDecrease.Rank_" + rank); } public double getOreBonus(int rank) { return config.getDouble("Skills.Mining.BlastMining.OreBonus.Rank_" + rank); } @@ -904,6 +744,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { public int getDropMultiplier(int rank) { return config.getInt("Skills.Mining.BlastMining.DropMultiplier.Rank_" + rank); } public double getBlastRadiusModifier(int rank) { return config.getDouble("Skills.Mining.BlastMining.BlastRadiusModifier.Rank_" + rank); } + /* REPAIR */ public double getRepairMasteryMaxBonus() { return config.getDouble("Skills.Repair.RepairMastery.MaxBonusPercentage", 200.0D); } public int getRepairMasteryMaxLevel() { return config.getInt("Skills.Repair.RepairMastery.MaxBonusLevel", 100); } diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java index 329335af5..116093980 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -95,7 +95,8 @@ public class MiningManager extends SkillManager { //TODO: Make this readable if (RandomChanceUtil.checkRandomChanceExecutionSuccess(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS, true)) { - BlockUtils.markDropsAsBonus(blockState, mcMMOPlayer.getAbilityMode(skill.getAbility())); + boolean useTriple = mcMMOPlayer.getAbilityMode(skill.getAbility()) && AdvancedConfig.getInstance().getAllowMiningTripleDrops(); + BlockUtils.markDropsAsBonus(blockState, useTriple); } } diff --git a/src/main/resources/advanced.yml b/src/main/resources/advanced.yml index c733d324b..8951d37ac 100644 --- a/src/main/resources/advanced.yml +++ b/src/main/resources/advanced.yml @@ -275,6 +275,8 @@ Skills: # Settings for Mining ### Mining: + SuperBreaker: + AllowTripleDrops: true DoubleDrops: SilkTouch: true # ChanceMax: Maximum chance of receiving double drops when on or higher