diff --git a/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java b/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java index 10baf34..8fd0ab1 100644 --- a/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java +++ b/src/main/java/chylex/bettercontrols/mixin/AccessPlayerFields.java @@ -5,6 +5,6 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(PlayerEntity.class) public interface AccessPlayerFields{ - @Accessor("abilityResyncCountdown") + @Accessor("flyToggleTimer") void setTicksLeftToDoubleTapFlight(int value); } diff --git a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java index 9ac3477..e82ea1e 100644 --- a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java +++ b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java @@ -180,16 +180,6 @@ public final class PlayerTicker{ player.setMotion(player.getMotion().add(0D, flightSpeed * verticalVelocity * direction, 0D)); } } - - if (cfg().disableFlightInertia){ - if (input.moveForward == 0F && input.moveStrafe == 0F){ - player.setMotion(player.getMotion().mul(0.0, 1.0, 0.0)); - } - - if (!input.jump && !input.sneaking){ - player.setMotion(player.getMotion().mul(1.0, 0.0, 1.0)); - } - } } if (cfg().resumeSprintingAfterHittingObstacle){ @@ -255,6 +245,18 @@ public final class PlayerTicker{ holdingSneakWhileTouchingGround = false; } + if (FlightHelper.isFlyingCreativeOrSpectator(player) && cfg().disableFlightInertia){ + final MovementInput input = player.movementInput; + + if (input.moveForward == 0F && input.moveStrafe == 0F){ + player.setMotion(player.getMotion().mul(0.0, 1.0, 0.0)); + } + + if (!input.jump && !input.sneaking){ + player.setMotion(player.getMotion().mul(1.0, 0.0, 1.0)); + } + } + if (player.isCreative()){ if (Key.wasPressed(cfg().keyToggleFlight)){ final boolean isFlying = !player.abilities.isFlying;