Explorar o código

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

nossr50 %!s(int64=4) %!d(string=hai) anos
pai
achega
a6586e07cc

+ 1 - 0
Changelog.txt

@@ -1,4 +1,5 @@
 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)
 
     NOTES:

+ 1 - 2
src/main/java/com/gmail/nossr50/listeners/EntityListener.java

@@ -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;
         }
 

+ 12 - 0
src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java

@@ -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;