mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	combatChecks optimization
This commit is contained in:
		@@ -55,10 +55,11 @@ public class Combat {
 | 
				
			|||||||
        Entity damager = event.getDamager();
 | 
					        Entity damager = event.getDamager();
 | 
				
			||||||
        LivingEntity target = (LivingEntity) event.getEntity();
 | 
					        LivingEntity target = (LivingEntity) event.getEntity();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        boolean targetIsPlayer = target instanceof Player;
 | 
					        boolean targetIsPlayer = (target.getType() == EntityType.PLAYER);
 | 
				
			||||||
        boolean targetIsTamedPet = (target instanceof Tameable) ? ((Tameable) target).isTamed() : false;
 | 
					        boolean targetIsTamedPet = (target instanceof Tameable) ? ((Tameable) target).isTamed() : false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (damager instanceof Player) {
 | 
					        switch (damager.getType()) {
 | 
				
			||||||
 | 
					        case PLAYER:
 | 
				
			||||||
            Player attacker = (Player) event.getDamager();
 | 
					            Player attacker = (Player) event.getDamager();
 | 
				
			||||||
            ItemStack itemInHand = attacker.getItemInHand();
 | 
					            ItemStack itemInHand = attacker.getItemInHand();
 | 
				
			||||||
            PlayerProfile PPa = Users.getProfile(attacker);
 | 
					            PlayerProfile PPa = Users.getProfile(attacker);
 | 
				
			||||||
@@ -66,17 +67,14 @@ public class Combat {
 | 
				
			|||||||
            combatAbilityChecks(attacker);
 | 
					            combatAbilityChecks(attacker);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (ItemChecks.isSword(itemInHand)) {
 | 
					            if (ItemChecks.isSword(itemInHand)) {
 | 
				
			||||||
                if (!configInstance.getSwordsPVP()) {
 | 
					 | 
				
			||||||
                if (targetIsPlayer || targetIsTamedPet) {
 | 
					                if (targetIsPlayer || targetIsTamedPet) {
 | 
				
			||||||
 | 
					                    if (!configInstance.getSwordsPVP()) {
 | 
				
			||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                else if (!configInstance.getSwordsPVE()) {
 | 
				
			||||||
                if (!configInstance.getSwordsPVE()) {
 | 
					 | 
				
			||||||
                    if (!targetIsPlayer || !targetIsTamedPet) {
 | 
					 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                SwordsManager swordsManager = new SwordsManager(attacker);
 | 
					                SwordsManager swordsManager = new SwordsManager(attacker);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -89,17 +87,14 @@ public class Combat {
 | 
				
			|||||||
                startGainXp(attacker, PPa, target, SkillType.SWORDS);
 | 
					                startGainXp(attacker, PPa, target, SkillType.SWORDS);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (ItemChecks.isAxe(itemInHand) && permInstance.axes(attacker)) {
 | 
					            else if (ItemChecks.isAxe(itemInHand) && permInstance.axes(attacker)) {
 | 
				
			||||||
                if (!configInstance.getAxesPVP()) {
 | 
					 | 
				
			||||||
                if (targetIsPlayer || targetIsTamedPet) {
 | 
					                if (targetIsPlayer || targetIsTamedPet) {
 | 
				
			||||||
 | 
					                    if (!configInstance.getAxesPVP()) {
 | 
				
			||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                else if (!configInstance.getAxesPVE()) {
 | 
				
			||||||
                if (!configInstance.getAxesPVE()) {
 | 
					 | 
				
			||||||
                    if (!targetIsPlayer || !targetIsTamedPet) {
 | 
					 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (permInstance.axeBonus(attacker)) {
 | 
					                if (permInstance.axeBonus(attacker)) {
 | 
				
			||||||
                    Axes.axesBonus(attacker, event);
 | 
					                    Axes.axesBonus(attacker, event);
 | 
				
			||||||
@@ -119,18 +114,15 @@ public class Combat {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                startGainXp(attacker, PPa, target, SkillType.AXES);
 | 
					                startGainXp(attacker, PPa, target, SkillType.AXES);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (itemInHand.getType().equals(Material.AIR) && permInstance.unarmed(attacker)) {
 | 
					            else if (itemInHand.getType() == Material.AIR && permInstance.unarmed(attacker)) {
 | 
				
			||||||
                if (!configInstance.getUnarmedPVP()) {
 | 
					 | 
				
			||||||
                if (targetIsPlayer || targetIsTamedPet) {
 | 
					                if (targetIsPlayer || targetIsTamedPet) {
 | 
				
			||||||
 | 
					                    if (!configInstance.getUnarmedPVP()) {
 | 
				
			||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                else if (!configInstance.getUnarmedPVE()) {
 | 
				
			||||||
                if (!configInstance.getUnarmedPVE()) {
 | 
					 | 
				
			||||||
                    if (!targetIsPlayer || !targetIsTamedPet) {
 | 
					 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                UnarmedManager unarmedManager = new UnarmedManager(attacker);
 | 
					                UnarmedManager unarmedManager = new UnarmedManager(attacker);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -151,24 +143,22 @@ public class Combat {
 | 
				
			|||||||
                tamingManager.beastLore(target);
 | 
					                tamingManager.beastLore(target);
 | 
				
			||||||
                event.setCancelled(true);
 | 
					                event.setCancelled(true);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        else if (damager instanceof Wolf) {
 | 
					            break;
 | 
				
			||||||
 | 
					        case WOLF:
 | 
				
			||||||
            Wolf wolf = (Wolf) damager;
 | 
					            Wolf wolf = (Wolf) damager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (wolf.isTamed() && wolf.getOwner() instanceof Player) {
 | 
					            if (wolf.isTamed() && wolf.getOwner() instanceof Player) {
 | 
				
			||||||
                Player master = (Player) wolf.getOwner();
 | 
					                Player master = (Player) wolf.getOwner();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (!configInstance.getTamingPVP()) {
 | 
					 | 
				
			||||||
                if (targetIsPlayer || targetIsTamedPet) {
 | 
					                if (targetIsPlayer || targetIsTamedPet) {
 | 
				
			||||||
 | 
					                    if (!configInstance.getTamingPVP()) {
 | 
				
			||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					                else if (!configInstance.getTamingPVE()) {
 | 
				
			||||||
                if (!configInstance.getTamingPVE()) {
 | 
					 | 
				
			||||||
                    if (!targetIsPlayer || !targetIsTamedPet) {
 | 
					 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                TamingManager tamingManager = new TamingManager(master);
 | 
					                TamingManager tamingManager = new TamingManager(master);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -178,8 +168,9 @@ public class Combat {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                startGainXp(master, Users.getProfile(master), target, SkillType.TAMING);
 | 
					                startGainXp(master, Users.getProfile(master), target, SkillType.TAMING);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        else if (damager instanceof Arrow) {
 | 
					            break;
 | 
				
			||||||
 | 
					        case ARROW:
 | 
				
			||||||
            LivingEntity shooter = ((Arrow) damager).getShooter();
 | 
					            LivingEntity shooter = ((Arrow) damager).getShooter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (shooter.getType() != EntityType.PLAYER) {
 | 
					            if (shooter.getType() != EntityType.PLAYER) {
 | 
				
			||||||
@@ -196,33 +187,36 @@ public class Combat {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            archeryCheck((Player) shooter, target, event);
 | 
					            archeryCheck((Player) shooter, target, event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (target instanceof Player) {
 | 
					        if (targetIsPlayer && damager instanceof LivingEntity) {
 | 
				
			||||||
            Player player = (Player) target;
 | 
					            Player player = (Player) target;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            AcrobaticsManager acroManager = new AcrobaticsManager(player);
 | 
					            AcrobaticsManager acroManager = new AcrobaticsManager(player);
 | 
				
			||||||
            SwordsManager swordsManager = new SwordsManager(player);
 | 
					            SwordsManager swordsManager = new SwordsManager(player);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (configInstance.getSwordsPVP() && damager instanceof Player) {
 | 
					            if (damager.getType() == EntityType.PLAYER) {
 | 
				
			||||||
                swordsManager.counterAttackChecks((Player) damager, event.getDamage());
 | 
					                if (configInstance.getSwordsPVP()) {
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (configInstance.getSwordsPVE() && !(damager instanceof Player)) {
 | 
					 | 
				
			||||||
                if (damager instanceof LivingEntity) {
 | 
					 | 
				
			||||||
                    swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
 | 
					                    swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (configInstance.getAcrobaticsPVP() && damager instanceof Player) {
 | 
					                if (configInstance.getAcrobaticsPVP()) {
 | 
				
			||||||
                    acroManager.dodgeCheck(event);
 | 
					                    acroManager.dodgeCheck(event);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                if (configInstance.getSwordsPVE()) {
 | 
				
			||||||
 | 
					                    swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (configInstance.getAcrobaticsPVE() && !(damager instanceof Player)) {
 | 
					                if (configInstance.getAcrobaticsPVE()) {
 | 
				
			||||||
                    acroManager.dodgeCheck(event);
 | 
					                    acroManager.dodgeCheck(event);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Process combat abilities based on weapon preparation modes.
 | 
					     * Process combat abilities based on weapon preparation modes.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user