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 Version 2.2.046
Added Spears combat skill Added Spears combat skill
Added Spears to repair.vanilla.yml and salvage.vanilla.yml (see notes) 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.datatypes.experience.XPGainReason.PVP;
import static com.gmail.nossr50.util.AttributeMapper.MAPPED_MOVEMENT_SPEED; 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.MobMetadataUtils.hasMobFlag;
import static com.gmail.nossr50.util.Permissions.canUseSubSkill; import static com.gmail.nossr50.util.Permissions.canUseSubSkill;
import static com.gmail.nossr50.util.skills.ProjectileUtils.isCrossbowProjectile; import static com.gmail.nossr50.util.skills.ProjectileUtils.isCrossbowProjectile;
@@ -124,6 +125,11 @@ public final class CombatUtils {
return; return;
} }
// TODO: Temporary hack to avoid unintended spear interactions
if (isSpear(player.getInventory().getItemInOffHand())) {
return;
}
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
//Make sure the profiles been loaded //Make sure the profiles been loaded
@@ -188,6 +194,11 @@ public final class CombatUtils {
return; return;
} }
// TODO: Temporary hack to avoid unintended spear interactions
if (isSpear(player.getInventory().getItemInOffHand())) {
return;
}
double boostedDamage = event.getDamage(); double boostedDamage = event.getDamage();
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
@@ -301,6 +312,11 @@ public final class CombatUtils {
return; return;
} }
// TODO: Temporary hack to avoid unintended spear interactions
if (isSpear(player.getInventory().getItemInOffHand())) {
return;
}
double boostedDamage = event.getDamage(); double boostedDamage = event.getDamage();
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
@@ -379,6 +395,11 @@ public final class CombatUtils {
return; return;
} }
// TODO: Temporary hack to avoid unintended spear interactions
if (isSpear(player.getInventory().getItemInOffHand())) {
return;
}
double boostedDamage = event.getDamage(); double boostedDamage = event.getDamage();
final McMMOPlayer mmoPlayer = UserManager.getPlayer(player); final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
@@ -433,8 +454,8 @@ public final class CombatUtils {
double boostedDamage = event.getDamage(); double boostedDamage = event.getDamage();
// TODO: Temporary hack to avoid unintended spear / unarmed interactions // TODO: Temporary hack to avoid unintended spear interactions
if (ItemUtils.isSpear(player.getInventory().getItemInOffHand())) { if (isSpear(player.getInventory().getItemInOffHand())) {
return; return;
} }
@@ -689,7 +710,7 @@ public final class CombatUtils {
.doesPlayerHaveSkillPermission(player, PrimarySkillType.MACES)) { .doesPlayerHaveSkillPermission(player, PrimarySkillType.MACES)) {
processMacesCombat(target, player, event); processMacesCombat(target, player, event);
} }
} else if (ItemUtils.isSpear(heldItem)) { } else if (isSpear(heldItem)) {
if (!mcMMO.p.getSkillTools() if (!mcMMO.p.getSkillTools()
.canCombatSkillsTrigger(PrimarySkillType.SPEARS, target)) { .canCombatSkillsTrigger(PrimarySkillType.SPEARS, target)) {
return; return;