From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: TreyRuffy Date: Fri, 27 May 2022 02:26:08 -0600 Subject: [PATCH] Flying Fall Damage diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java index 61553ebc54b5666c2f53d2aa2bbb2a74f0a266dd..77624e34143dc37ca3b523a81b9a041ffb3199bd 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -194,6 +194,7 @@ public abstract class Player extends LivingEntity { public Entity currentExplosionCause; public boolean ignoreFallDamageFromCurrentImpulse; public boolean affectsSpawning = true; // Paper - Affects Spawning API + public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage // CraftBukkit start public boolean fauxSleeping; @@ -1693,7 +1694,7 @@ public abstract class Player extends LivingEntity { @Override public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) { - if (this.abilities.mayfly) { + if (this.abilities.mayfly && !this.flyingFallDamage.toBooleanOrElse(false)) { // Paper - flying fall damage return false; } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 26534a2ed76cb6038e02671190848f0c9997b2fc..1ca6552705213ce193ab9ce50b2ffeaad1f08dfd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2563,6 +2563,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().onUpdateAbilities(); } + // Paper start - flying fall damage + @Override + public void setFlyingFallDamage(@NotNull net.kyori.adventure.util.TriState flyingFallDamage) { + getHandle().flyingFallDamage = flyingFallDamage; + } + + @NotNull + @Override + public net.kyori.adventure.util.TriState hasFlyingFallDamage() { + return getHandle().flyingFallDamage; + } + // Paper end - flying fall damage + @Override public int getNoDamageTicks() { if (this.getHandle().spawnInvulnerableTime > 0) {