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

@ -1,4 +1,5 @@
Version 2.1.148 Version 2.1.148
Fixed a bug where weakness potions could prevent unarmed skills from activating and thus making unarmed useless
Alchemy progression is now more reasonable (delete skillranks.yml or edit it yourself to receive the change) Alchemy progression is now more reasonable (delete skillranks.yml or edit it yourself to receive the change)
NOTES: NOTES:

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 * 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 * 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 * Surprising this kind of thing
* *
*/ */
if(damage <= 0) { if(event.getDamage() <= 0 && !CombatUtils.isDamageLikelyFromNormalCombat(event.getCause())) {
return; return;
} }

View File

@ -42,6 +42,18 @@ import java.util.Map;
public final class CombatUtils { public final class CombatUtils {
private 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) { private static void processSwordCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) {
if (event.getCause() == DamageCause.THORNS) { if (event.getCause() == DamageCause.THORNS) {
return; return;