diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java b/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java index ebe3b0c72..530c7ec02 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java @@ -76,7 +76,12 @@ public class Roll extends AcrobaticsSubSkill { // no-op - fall was fatal or otherwise did not get processed return false; } - entityDamageEvent.setDamage(rollResult.getModifiedDamage()); + + // Clear out the damage from falling so that way our modified damage doesn't get re-reduced by protection/feather falling + entityDamageEvent.setDamage(0); + // Send the damage is MAGIC so that it cuts through all resistances + // This is fine because we considered protection/featherfalling in the rollCheck method + entityDamageEvent.setDamage(EntityDamageEvent.DamageModifier.MAGIC, rollResult.getModifiedDamage()); if (entityDamageEvent.getFinalDamage() == 0) { entityDamageEvent.setCancelled(true); @@ -216,7 +221,7 @@ public class Roll extends AcrobaticsSubSkill { */ @VisibleForTesting public RollResult rollCheck(McMMOPlayer mmoPlayer, EntityDamageEvent entityDamageEvent) { - double baseDamage = entityDamageEvent.getDamage(); + double baseDamage = entityDamageEvent.getFinalDamage(); final boolean isGraceful = mmoPlayer.getPlayer().isSneaking(); final RollResult.Builder rollResultBuilder = new RollResult.Builder(entityDamageEvent, isGraceful);