From dba99beb248d0de45bd795a1d5e2fecc1d0fab58 Mon Sep 17 00:00:00 2001 From: Weever1337 Date: Sun, 5 Apr 2026 23:24:23 +0300 Subject: [PATCH] reset movement state when changing movement type --- .../actions/game/GameActionMovement.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/visor-core/src/main/java/org/vmstudio/visor/core/client/input/actions/game/GameActionMovement.java b/visor-core/src/main/java/org/vmstudio/visor/core/client/input/actions/game/GameActionMovement.java index d84752e5..03b863e2 100644 --- a/visor-core/src/main/java/org/vmstudio/visor/core/client/input/actions/game/GameActionMovement.java +++ b/visor-core/src/main/java/org/vmstudio/visor/core/client/input/actions/game/GameActionMovement.java @@ -53,8 +53,8 @@ public void preTick() { Vector2f movement = ClientContext.localPlayer.getMovement(); if(VRClientSettings.getMoveMode(MC.player) == MovementMode.TELEPORT){ + resetMovementState(); movement.set(rawMove); - ClientContext.localPlayer.setMoving(false); TaskTeleport.getInstance().updateInputState( handType, rawMove @@ -163,7 +163,7 @@ protected void onClear() { input.x = 0; input.y = 0; - ClientContext.localPlayer.setMoving(false); + resetMovementState(); } @@ -193,6 +193,21 @@ private float applyDeadzone(float axis, float deadzone) { } } + private void resetMovementState() { + ClientUtils.updateKeyMappingState(MC.options.keyUp, false); + ClientUtils.updateKeyMappingState(MC.options.keyDown, false); + ClientUtils.updateKeyMappingState(MC.options.keyLeft, false); + ClientUtils.updateKeyMappingState(MC.options.keyRight, false); + + this.wasMovement = false; + + if (this.wasAutoSprinting && MC.player != null) { + MC.player.setSprinting(false); + } + this.wasAutoSprinting = false; + ClientContext.localPlayer.setMoving(false); + } + private Vector2f toDigital(Vector2f value, float deadzone) { Vector2f digital = new Vector2f(); if (value.length() > deadzone) {