From 694de2ff5f1274745a73c88193d2590ab5f536a8 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Sun, 14 Dec 2025 14:36:41 -0800 Subject: [PATCH] fix overlooked spears interaction with other melee skills --- Changelog.txt | 3 +++ .../nossr50/util/skills/CombatUtils.java | 27 ++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 905cccf38..a36b2fe8c 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,6 @@ +Version 2.2.047 + Fix bug where off-hand spears damage could be attributed to various combat skills and trigger their abilities + Version 2.2.046 Added Spears combat skill Added Spears to repair.vanilla.yml and salvage.vanilla.yml (see notes) diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index 056a0de9c..cd05099f3 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -2,6 +2,7 @@ package com.gmail.nossr50.util.skills; import static com.gmail.nossr50.datatypes.experience.XPGainReason.PVP; import static com.gmail.nossr50.util.AttributeMapper.MAPPED_MOVEMENT_SPEED; +import static com.gmail.nossr50.util.ItemUtils.isSpear; import static com.gmail.nossr50.util.MobMetadataUtils.hasMobFlag; import static com.gmail.nossr50.util.Permissions.canUseSubSkill; import static com.gmail.nossr50.util.skills.ProjectileUtils.isCrossbowProjectile; @@ -124,6 +125,11 @@ public final class CombatUtils { return; } + // TODO: Temporary hack to avoid unintended spear interactions + if (isSpear(player.getInventory().getItemInOffHand())) { + return; + } + final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); //Make sure the profiles been loaded @@ -188,6 +194,11 @@ public final class CombatUtils { return; } + // TODO: Temporary hack to avoid unintended spear interactions + if (isSpear(player.getInventory().getItemInOffHand())) { + return; + } + double boostedDamage = event.getDamage(); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); @@ -301,6 +312,11 @@ public final class CombatUtils { return; } + // TODO: Temporary hack to avoid unintended spear interactions + if (isSpear(player.getInventory().getItemInOffHand())) { + return; + } + double boostedDamage = event.getDamage(); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); @@ -379,6 +395,11 @@ public final class CombatUtils { return; } + // TODO: Temporary hack to avoid unintended spear interactions + if (isSpear(player.getInventory().getItemInOffHand())) { + return; + } + double boostedDamage = event.getDamage(); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); @@ -433,8 +454,8 @@ public final class CombatUtils { double boostedDamage = event.getDamage(); - // TODO: Temporary hack to avoid unintended spear / unarmed interactions - if (ItemUtils.isSpear(player.getInventory().getItemInOffHand())) { + // TODO: Temporary hack to avoid unintended spear interactions + if (isSpear(player.getInventory().getItemInOffHand())) { return; } @@ -689,7 +710,7 @@ public final class CombatUtils { .doesPlayerHaveSkillPermission(player, PrimarySkillType.MACES)) { processMacesCombat(target, player, event); } - } else if (ItemUtils.isSpear(heldItem)) { + } else if (isSpear(heldItem)) { if (!mcMMO.p.getSkillTools() .canCombatSkillsTrigger(PrimarySkillType.SPEARS, target)) { return;