diff --git a/paper-api/src/main/java/org/bukkit/entity/Player.java b/paper-api/src/main/java/org/bukkit/entity/Player.java index e5947f299937..b057bf5a82d3 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -2066,6 +2066,14 @@ public default void giveExp(int amount) { public net.kyori.adventure.util.TriState hasFlyingFallDamage(); // Paper end + /** + + * Resets the player's flying tick counter used for flight checks. + *
+ * Only valid once the player's connection is initialized. + */ + public void resetFlyingTicks(); + /** * Hides a player from this player * diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 41b77c94bad6..f06debb43668 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2462,6 +2462,16 @@ public void setFlyingFallDamage(@NonNull TriState flyingFallDamage) { } // Paper end - flying fall damage + + @Override + public void resetFlyingTicks() { + if (getHandle().connection == null) { + return; + } + + getHandle().connection.resetFlyingTicks(); + } + @Override public void setFlySpeed(float value) { this.validateSpeed(value);