Fix possible NPE and clean up more edge interaction checks (Fixes #409) #414
+24
−18
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.
This fixes a possible NPE in the CollisionUtil (issue #409, occurred for me on latest Paper 1.21.10 too) which was introduced in 61d329e as the
lastBlockAABB != nullcheck was moved after accessing it for the first time. (Previously it was checked before)I also moved more of the edge detection code away from accessing the array indexes directly to the new variables. As those check if the
lastBlockBBwasnull(and technically these checks themselves only check for 0 or 1 so -1 would behave the same as thelastBlockBBnull check) I decided to initialize those values to -1 as it's not possible to leave them unassigned but still use them later. Alternatively one could use a ternary checking for null for each individual variable but I felt that is even uglier code.