mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-27 03:04:44 +02:00
Cleaning up more combat checks.
This commit is contained in:
@ -51,8 +51,6 @@ public final class CombatUtils {
|
||||
* @param event The event to run the combat checks on.
|
||||
*/
|
||||
public static void combatChecks(EntityDamageByEntityEvent event, Entity attacker, LivingEntity target) {
|
||||
boolean targetIsPlayer = (target.getType() == EntityType.PLAYER);
|
||||
boolean targetIsTamedPet = (target instanceof Tameable) ? ((Tameable) target).isTamed() : false;
|
||||
Entity damager = event.getDamager();
|
||||
|
||||
if (attacker instanceof Player && damager.getType() == EntityType.PLAYER) {
|
||||
@ -77,7 +75,7 @@ public final class CombatUtils {
|
||||
}
|
||||
|
||||
if (ItemUtils.isSword(heldItem)) {
|
||||
if (((targetIsPlayer || targetIsTamedPet) && !SkillType.SWORDS.getPVPEnabled()) || (!targetIsPlayer && !targetIsTamedPet && !SkillType.SWORDS.getPVEEnabled())) {
|
||||
if (!shouldProcessSkill(target, SkillType.SWORDS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -100,7 +98,7 @@ public final class CombatUtils {
|
||||
}
|
||||
}
|
||||
else if (ItemUtils.isAxe(heldItem)) {
|
||||
if (((targetIsPlayer || targetIsTamedPet) && !SkillType.AXES.getPVPEnabled()) || (!targetIsPlayer && !targetIsTamedPet && !SkillType.AXES.getPVEEnabled())) {
|
||||
if (!shouldProcessSkill(target, SkillType.AXES)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -134,7 +132,7 @@ public final class CombatUtils {
|
||||
}
|
||||
}
|
||||
else if (heldItem.getType() == Material.AIR) {
|
||||
if (((targetIsPlayer || targetIsTamedPet) && !SkillType.UNARMED.getPVPEnabled()) || (!targetIsPlayer && !targetIsTamedPet && !SkillType.UNARMED.getPVEEnabled())) {
|
||||
if (!shouldProcessSkill(target, SkillType.UNARMED)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -180,12 +178,7 @@ public final class CombatUtils {
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetIsPlayer || targetIsTamedPet) {
|
||||
if (!SkillType.TAMING.getPVPEnabled()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (!SkillType.TAMING.getPVEEnabled()) {
|
||||
if (!shouldProcessSkill(target, SkillType.TAMING)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -220,12 +213,7 @@ public final class CombatUtils {
|
||||
break;
|
||||
}
|
||||
|
||||
if (targetIsPlayer || targetIsTamedPet) {
|
||||
if (!SkillType.ARCHERY.getPVPEnabled()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (!SkillType.ARCHERY.getPVEEnabled()) {
|
||||
if (!shouldProcessSkill(target, SkillType.ARCHERY)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -236,7 +224,7 @@ public final class CombatUtils {
|
||||
break;
|
||||
}
|
||||
|
||||
if (targetIsPlayer) {
|
||||
if (target instanceof Player) {
|
||||
Player player = (Player) target;
|
||||
|
||||
if (Misc.isNPCEntity(player)) {
|
||||
@ -593,4 +581,17 @@ public final class CombatUtils {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean shouldProcessSkill(LivingEntity target, SkillType skill) {
|
||||
boolean process;
|
||||
|
||||
if (target instanceof Player || (target instanceof Tameable && ((Tameable) target).isTamed())) {
|
||||
process = skill.getPVPEnabled();
|
||||
}
|
||||
else {
|
||||
process = skill.getPVEEnabled();
|
||||
}
|
||||
|
||||
return process;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user