From 7adc3d120cc6d4360c9aefbb8a3d5b6bc5327a3a Mon Sep 17 00:00:00 2001 From: Justin <33465177+BitByLogics@users.noreply.github.com> Date: Wed, 1 Jul 2026 03:00:24 -0400 Subject: [PATCH 1/5] feat: Add resetFlyingTicks method --- paper-api/src/main/java/org/bukkit/entity/Player.java | 3 +++ .../java/org/bukkit/craftbukkit/entity/CraftPlayer.java | 8 ++++++++ 2 files changed, 11 insertions(+) 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..fe710e2edee1 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,9 @@ public default void giveExp(int amount) { public net.kyori.adventure.util.TriState hasFlyingFallDamage(); // Paper end + // Paper start - reset flying ticks + 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..2b2f79b464b1 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,14 @@ public void setFlyingFallDamage(@NonNull TriState flyingFallDamage) { } // Paper end - flying fall damage + + // Paper start - reset flying ticks + @Override + public void resetFlyingTicks() { + getHandle().connection.resetFlyingTicks(); + } + // Paper end - reset flying ticks + @Override public void setFlySpeed(float value) { this.validateSpeed(value); From 3a98be7dbba259248df26cdee04e802b525c6503 Mon Sep 17 00:00:00 2001 From: Justin <33465177+BitByLogics@users.noreply.github.com> Date: Fri, 3 Jul 2026 01:58:14 -0400 Subject: [PATCH 2/5] chore: Remove paper comments and add javadocs --- paper-api/src/main/java/org/bukkit/entity/Player.java | 4 +++- .../main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) 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 fe710e2edee1..c5818a99248f 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -2066,7 +2066,9 @@ public default void giveExp(int amount) { public net.kyori.adventure.util.TriState hasFlyingFallDamage(); // Paper end - // Paper start - reset flying ticks + /** + * Resets the player's flying tick counter used for flight/floating checks. + */ public void resetFlyingTicks(); /** 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 2b2f79b464b1..f4c41270a82e 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 @@ -2463,12 +2463,10 @@ public void setFlyingFallDamage(@NonNull TriState flyingFallDamage) { // Paper end - flying fall damage - // Paper start - reset flying ticks @Override public void resetFlyingTicks() { getHandle().connection.resetFlyingTicks(); } - // Paper end - reset flying ticks @Override public void setFlySpeed(float value) { From 1c810d3bb7a6950a94201e5243d1ca1e54d1cfa1 Mon Sep 17 00:00:00 2001 From: Justin <33465177+BitByLogics@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:47:54 -0400 Subject: [PATCH 3/5] fix: prevent method call when connection isn't initialized --- paper-api/src/main/java/org/bukkit/entity/Player.java | 7 ++++++- .../java/org/bukkit/craftbukkit/entity/CraftPlayer.java | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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 c5818a99248f..7e7660b3b959 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -2067,7 +2067,12 @@ public default void giveExp(int amount) { // Paper end /** - * Resets the player's flying tick counter used for flight/floating checks. + + * Resets the player's flying tick counter used for flight checks. + *

+ * Only valid once the player's connection is initialized. + * + * @throws IllegalStateException if the connection is not yet initialized */ public void resetFlyingTicks(); 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 f4c41270a82e..c8577d73a141 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 @@ -2465,6 +2465,10 @@ public void setFlyingFallDamage(@NonNull TriState flyingFallDamage) { @Override public void resetFlyingTicks() { + if (getHandle().connection == null) { + throw new IllegalStateException("Cannot reset flying ticks before player connection is initialized."); + } + getHandle().connection.resetFlyingTicks(); } From 39ec83b1e55f8e4f4b17e7c6bff3ec493ecfddff Mon Sep 17 00:00:00 2001 From: Justin <33465177+BitByLogics@users.noreply.github.com> Date: Sun, 12 Jul 2026 20:40:40 -0400 Subject: [PATCH 4/5] fix: silently return instead of throwing IllegalStateException --- .../main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c8577d73a141..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 @@ -2466,7 +2466,7 @@ public void setFlyingFallDamage(@NonNull TriState flyingFallDamage) { @Override public void resetFlyingTicks() { if (getHandle().connection == null) { - throw new IllegalStateException("Cannot reset flying ticks before player connection is initialized."); + return; } getHandle().connection.resetFlyingTicks(); From a1c93b2ee927849aaaf4f7697043706ae705018e Mon Sep 17 00:00:00 2001 From: Justin <33465177+BitByLogics@users.noreply.github.com> Date: Sun, 12 Jul 2026 20:41:52 -0400 Subject: [PATCH 5/5] chore: Update resetFlyingTicks javadocs --- paper-api/src/main/java/org/bukkit/entity/Player.java | 2 -- 1 file changed, 2 deletions(-) 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 7e7660b3b959..b057bf5a82d3 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Player.java +++ b/paper-api/src/main/java/org/bukkit/entity/Player.java @@ -2071,8 +2071,6 @@ public default void giveExp(int amount) { * Resets the player's flying tick counter used for flight checks. *

* Only valid once the player's connection is initialized. - * - * @throws IllegalStateException if the connection is not yet initialized */ public void resetFlyingTicks();