mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Reduce code duplication. Also verify that our target is alive before trying to damage them.
Fixes #1403
This commit is contained in:
		@@ -348,18 +348,7 @@ public final class CombatUtils {
 | 
				
			|||||||
     * @param damage Amount of damage to attempt to do
 | 
					     * @param damage Amount of damage to attempt to do
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static void dealDamage(LivingEntity target, double damage) {
 | 
					    public static void dealDamage(LivingEntity target, double damage) {
 | 
				
			||||||
        if (Config.getInstance().getEventCallbackEnabled()) {
 | 
					        dealDamage(target, damage, DamageCause.CUSTOM, null);
 | 
				
			||||||
            EntityDamageEvent ede = new FakeEntityDamageEvent(target, DamageCause.CUSTOM, damage);
 | 
					 | 
				
			||||||
            mcMMO.p.getServer().getPluginManager().callEvent(ede);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (ede.isCancelled()) {
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            damage = ede.getDamage();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        target.damage(damage);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@@ -381,15 +370,19 @@ public final class CombatUtils {
 | 
				
			|||||||
     * @param attacker Player to pass to event as damager
 | 
					     * @param attacker Player to pass to event as damager
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static void dealDamage(LivingEntity target, double damage, DamageCause cause, Entity attacker) {
 | 
					    public static void dealDamage(LivingEntity target, double damage, DamageCause cause, Entity attacker) {
 | 
				
			||||||
        if (Config.getInstance().getEventCallbackEnabled()) {
 | 
					        if (target.isDead()) {
 | 
				
			||||||
            EntityDamageEvent ede = new FakeEntityDamageByEntityEvent(attacker, target, cause, damage);
 | 
					            return;
 | 
				
			||||||
            mcMMO.p.getServer().getPluginManager().callEvent(ede);
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (ede.isCancelled()) {
 | 
					        if (Config.getInstance().getEventCallbackEnabled()) {
 | 
				
			||||||
 | 
					            EntityDamageEvent damageEvent = attacker == null ? new FakeEntityDamageEvent(target, cause, damage) : new FakeEntityDamageByEntityEvent(attacker, target, cause, damage);
 | 
				
			||||||
 | 
					            mcMMO.p.getServer().getPluginManager().callEvent(damageEvent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (damageEvent.isCancelled()) {
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            damage = ede.getDamage();
 | 
					            damage = damageEvent.getDamage();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        target.damage(damage);
 | 
					        target.damage(damage);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user