Fix Bedrock block placement rollback when quick place and scaffolding-style bridging#6310
Open
MikuSnow wants to merge 3 commits intoGeyserMC:masterfrom
Open
Fix Bedrock block placement rollback when quick place and scaffolding-style bridging#6310MikuSnow wants to merge 3 commits intoGeyserMC:masterfrom
MikuSnow wants to merge 3 commits intoGeyserMC:masterfrom
Conversation
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.
First Bug:
Bug video:
https://youtu.be/Dgb3HQrYqLg
Because in Bedrock Edition, right-click will sends a lot of packets to the server short time, and Geyser limits the rate, this can sometimes cause block placement to fail, as shown in the video.
The reason this happens is: when the player is moving while placing blocks, the packets they send include block faces like UP... UP... SIDE....
At that moment, if Geyser processes the last UP interaction, the following SIDE interaction may get canceled by Geyser. When that happens, the block placement fails.
Second Bug:
Bug video:
https://youtu.be/kqK-TYmIJbA
In Bedrock Edition behavior(scaffolding-style bridging), the cursor position (packet.getClickPosition())
is based on the player's foot position.
When performing speed bridging (running/jumping while placing blocks), if there is a wall ahead,
and the last 1–3 blocks are about to touch or are already touching the wall, the click position
in that direction may become values like -1, -1.5, -2, 2, or 3.
However, the normal max range should be between -0.5 and 1.5 (in java server that will not cancel place), so a temporary restriction is applied.