From 739342160737dfafc61a5c23fd2e08fd2592f484 Mon Sep 17 00:00:00 2001 From: Warrior <50800980+Warriorrrr@users.noreply.github.com> Date: Fri, 16 Apr 2021 19:03:57 +0200 Subject: [PATCH] Some patches (#4494) Fixed blocks being dropped from blast mining even if yield was set to 0. Tree feller not working entirely if one fake block break event is cancelled. (Fixes #4189) Fixes no woodcutting xp being rewarded if a tree is too big while using tree feller. --- .../com/gmail/nossr50/datatypes/player/McMMOPlayer.java | 4 ++++ .../com/gmail/nossr50/skills/mining/MiningManager.java | 4 +++- .../nossr50/skills/woodcutting/WoodcuttingManager.java | 7 ++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java index e6c3a22d9..c68521e10 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java +++ b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java @@ -941,6 +941,10 @@ public class McMMOPlayer implements Identified { //Sounds SoundManager.worldSendSound(player.getWorld(), player.getLocation(), SoundType.ABILITY_ACTIVATED_GENERIC); + //If the current item is still buffed somehow, remove it to prevent enchantments from stacking. + if (superAbilityType == SuperAbilityType.SUPER_BREAKER || superAbilityType == SuperAbilityType.GIGA_DRILL_BREAKER) + SkillUtils.removeAbilityBuff(player.getInventory().getItemInMainHand()); + // Enable the ability profile.setAbilityDATS(superAbilityType, System.currentTimeMillis() + (ticks * Misc.TIME_CONVERSION_FACTOR)); setAbilityMode(superAbilityType, true); 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 9cad29d7b..4ab9f6a17 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -157,8 +157,10 @@ public class MiningManager extends SkillManager { //TODO: Rewrite this garbage //TODO: Rewrite this garbage public void blastMiningDropProcessing(float yield, EntityExplodeEvent event) { - //Strip out only stuff that gives mining XP + if (yield == 0) + return; + //Strip out only stuff that gives mining XP List ores = new ArrayList<>(); List notOres = new ArrayList<>(); diff --git a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java index 49fa5bd20..3fd8f2ab9 100644 --- a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java @@ -107,6 +107,11 @@ public class WoodcuttingManager extends SkillManager { treeFellerReachedThreshold = false; NotificationManager.sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Woodcutting.Skills.TreeFeller.Threshold"); + + //Tree feller won't be activated for this block, award normal xp. + processWoodcuttingBlockXP(blockState); + processHarvestLumber(blockState); + return; } @@ -282,7 +287,7 @@ public class WoodcuttingManager extends SkillManager { Block block = blockState.getBlock(); if (!EventUtils.simulateBlockBreak(block, player, true)) { - break; // TODO: Shouldn't we use continue instead? + continue; } /*