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);