Fix safelogin for 1.18 and above by using worldProvider minHeight #4715
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.
Information
This PR fixes #4665 .
Details
Proposed fix:
There was already a partial fix for this (#4667) but the same improvement was missing for the else statement of the shouldFly function in LocationUtil.
We can now login below y=0 (tested with y=-63) and it does not enable fly mode if the player is actually in a safe location. It also fixed the safelogin when falling into the void for y <= -64 for versions >= 1.18.
It does not break backward compatibility for older versions of Minecraft.
Environments tested:
OS: Fedora 35
Java version: "17.0.1" 2021-10-19 LTS
Demonstration:
As you can see we are no longer in fly mode just after logged in. (I ensure myself that fly mode was disabled before logging in back)