fix overlooked spears interaction with other melee skills

This commit is contained in:
nossr50
2025-12-14 14:36:41 -08:00
parent cc1a581192
commit 694de2ff5f
2 changed files with 27 additions and 3 deletions

View File

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

View File

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