final damage values of 0 are only ignored in certain circumstances, fixes a few bugs

This commit is contained in:
nossr50
2020-10-05 14:13:32 -07:00
parent 5d022b6f7c
commit a6586e07cc
3 changed files with 14 additions and 2 deletions

View File

@ -411,7 +411,6 @@ public class EntityListener implements Listener {
}
}
/*
* This was put here to solve a plugin conflict with a mod called Project Korra
* Project Korra sends out a damage event with exactly 0 damage
@ -421,7 +420,7 @@ public class EntityListener implements Listener {
* Surprising this kind of thing
*
*/
if(damage <= 0) {
if(event.getDamage() <= 0 && !CombatUtils.isDamageLikelyFromNormalCombat(event.getCause())) {
return;
}

View File

@ -42,6 +42,18 @@ import java.util.Map;
public final class CombatUtils {
private CombatUtils() {}
//Likely.. because who knows what plugins are throwing around
public static boolean isDamageLikelyFromNormalCombat(DamageCause damageCause) {
switch (damageCause) {
case ENTITY_ATTACK:
case ENTITY_SWEEP_ATTACK:
case PROJECTILE:
return true;
default:
return false;
}
}
private static void processSwordCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) {
if (event.getCause() == DamageCause.THORNS) {
return;