[VirtualInput] Fix crash when playing back while changing dimensions#248
Merged
Conversation
- Adjusted documentation - Move VirtualInput#clear from onDoneLoadingPlayer to onPlayerJoinedClientSide - Renamed VirtualInput#clear to VirtualInput#clearKeys for clarity - Added clearNext methods to Keyboard and Mouse to be able to clear individual input methods. Also to be consistent with the camera angle
- Fixed documentation in MixinEntityRenderer and renamed mixin methods to better describe the area
PancakeTAS
approved these changes
May 28, 2025
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.
In #240 I added a "[VirtualInput] Fix camera being reset to 0 -180 when entering a world", which introduced this crash.
Reason is that the "onDoneLoadingPlayer" event, that I introduced in that PR, is also fired when switching dimensions.
And switching dimensions in this case sets the virtual camera to null, which crashes the playback with a NullPointerException.
And being once again confronted with this "clearing the virtual camera angle at the right moment" problem I realized that this system is pretty idiotic...
To fix this, the virtual camera is now set to null when leaving the game and then initialised when the player is done loading.
This way, the player should retain it's camera angle on world load and the camera angle shouldn't become null unexpectedly.
Changes
playbackfor better consistency