diff --git a/Changelog.txt b/Changelog.txt index ff7387feb..d64af2a26 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,9 @@ Version 2.2.035 Support for new additions from Minecraft 1.21.5 + Fixed bug where Blast Mining would not drop deep slate + Swords subskill Stab is now configurable in advanced.yml + Added 'Skills.Swords.Stab.Base_Damage' to advanced.yml + Added 'Skills.Swords.Stab.Per_Rank_Multiplier' to advanced.yml Added 'Bush' to experience.yml for Herbalism Added 'Bush' to config.yml Bonus Drops for Herbalism Added 'Cactus_Flower' to experience.yml for Herbalism @@ -14,9 +18,7 @@ Version 2.2.035 Added 'Tall_Dry_Grass' to config.yml Bonus Drops for Herbalism Added 'Wildflowers' to experience.yml for Herbalism Added 'Wildflowers' to config.yml Bonus Drops for Herbalism - Swords subskill Stab is now configurable in advanced.yml - Added 'Skills.Swords.Stab.Base_Damage' to advanced.yml - Added 'Skills.Swords.Stab.Per_Rank_Multiplier' to advanced.yml + NOTES: The mob variants will use the "base" mob definition for values for now, such a a warm chicken using chicken values from experience.yml diff --git a/pom.xml b/pom.xml index 1bb6ebbf1..b13b7ebcc 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.2.035-SNAPSHOT + 2.2.035 mcMMO https://github.com/mcMMO-Dev/mcMMO @@ -14,7 +14,7 @@ - 1.21.4-R0.1-SNAPSHOT + 1.21.5-R0.1-SNAPSHOT 4.3.5-SNAPSHOT UTF-8 17 @@ -385,6 +385,11 @@ 3.0.2 compile + + + + + org.spigotmc spigot-api 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 0278bb27b..1f1fb0aac 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -58,11 +58,16 @@ public class MiningManager extends SkillManager { public boolean canDetonate() { Player player = getPlayer(); - return canUseBlastMining() && player.isSneaking() - && (isPickaxe(getPlayer().getInventory().getItemInMainHand()) || player.getInventory().getItemInMainHand().getType() == mcMMO.p.getGeneralConfig().getDetonatorItem()) + return canUseBlastMining() + && player.isSneaking() + && (isPickaxe(getPlayer().getInventory().getItemInMainHand()) || isDetonatorInHand(player)) && Permissions.remoteDetonation(player); } + private static boolean isDetonatorInHand(Player player) { + return player.getInventory().getItemInMainHand().getType() == mcMMO.p.getGeneralConfig().getDetonatorItem(); + } + public boolean canUseBlastMining() { //Not checking permissions? return RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.MINING_BLAST_MINING); @@ -76,7 +81,8 @@ public class MiningManager extends SkillManager { } public boolean canDoubleDrop() { - return RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS) && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS); + return RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS) + && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS); } public boolean canMotherLode() { @@ -171,7 +177,9 @@ public class MiningManager extends SkillManager { mmoPlayer.setAbilityDATS(SuperAbilityType.BLAST_MINING, System.currentTimeMillis()); mmoPlayer.setAbilityInformed(SuperAbilityType.BLAST_MINING, false); - mcMMO.p.getFoliaLib().getScheduler().runAtEntityLater(mmoPlayer.getPlayer(), new AbilityCooldownTask(mmoPlayer, SuperAbilityType.BLAST_MINING), (long) SuperAbilityType.BLAST_MINING.getCooldown() * Misc.TICK_CONVERSION_FACTOR); + mcMMO.p.getFoliaLib().getScheduler().runAtEntityLater(mmoPlayer.getPlayer(), + new AbilityCooldownTask(mmoPlayer, SuperAbilityType.BLAST_MINING), + (long) SuperAbilityType.BLAST_MINING.getCooldown() * Misc.TICK_CONVERSION_FACTOR); } private boolean isInfestedBlock(String material) { @@ -190,8 +198,8 @@ public class MiningManager extends SkillManager { var increasedYieldFromBonuses = yield + (yield * getOreBonus()); // Strip out only stuff that gives mining XP - List ores = new ArrayList<>(); - List notOres = new ArrayList<>(); + final List ores = new ArrayList<>(); + final List notOres = new ArrayList<>(); for (Block targetBlock : event.blockList()) { if(mcMMO.getUserBlockTracker().isIneligible(targetBlock)) @@ -200,6 +208,8 @@ public class MiningManager extends SkillManager { if (ExperienceConfig.getInstance().getXp(PrimarySkillType.MINING, targetBlock) != 0) { if (BlockUtils.isOre(targetBlock) && !(targetBlock instanceof Container)) { ores.add(targetBlock); + } else { + notOres.add(targetBlock); } } else { notOres.add(targetBlock); @@ -220,6 +230,7 @@ public class MiningManager extends SkillManager { ItemSpawnReason.BLAST_MINING_DEBRIS_NON_ORES); // Initial block that would have been dropped } } + for (Block block : ores) { // currentOreYield only used for drop calculations for ores float currentOreYield = Math.min(increasedYieldFromBonuses, 3F);