Repository navigation
fix(movement): release prediction wait after server teleport - #480
Open
AlexProgrammerDE wants to merge 1 commit into
Conversation
A chunk boundary correction waits for its fake Java teleport acknowledgement. If a real server teleport supersedes that correction, the old acknowledgement no longer matches the pending ID. Previously the real acknowledgement admitted only one position packet and left the correction wait set forever, freezing subsequent server movement. Clear the prediction wait when the current authoritative teleport is acknowledged. Preserve stale-ID protection and the HandledTeleport signal. The regression test covers a pending local correction replaced by a server teleport, stale acknowledgements, and the final matching acknowledgement. Track the exact signed Java teleport ID. Ignore stale, duplicate, zero, and opposite-sign acknowledgements before changing prediction wait or reporting HandledTeleport. Only the current authoritative acknowledgement can grant the post-teleport movement exception. The tests cover replacement by a server teleport and wrong-sign acknowledgements for local corrections. Keep the latest server teleport identity separate from the pending local position sync. A later local correction must not retire the server acknowledgement, and that acknowledgement must not unlock the newer local correction or grant its position exception.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a server teleport replaces a pending local chunk-boundary correction, its acknowledgement can leave the prediction wait set indefinitely and freeze subsequent movement. Clear that wait when the current position sync is acknowledged, and compare the exact signed Java teleport ID so stale, duplicate, zero, and wrong-sign acknowledgements cannot complete it.
Keep the latest authoritative teleport separate from a newer local correction. Its acknowledgement still reports HandledTeleport once, but cannot release the newer correction or grant its movement exception. Each new position sync also retires any unused exception from the previous teleport.
Validation against pinned upstream main da6391a: