Repository navigation
Fix Litematica and MaLiLib compatibility for 0.6.3 - #9
Merged
Merged
Conversation
Resolve the Easy Place crash reported in issue #5 and reproduced with Litematica 0.28.4 / MaLiLib 0.29.3 on Minecraft 26.2. The compatibility layer now discovers the placement bounding-box getter at runtime and accepts both containsPos(Vec3i) from the legacy API and contains(Vec3i) from the relocated API. Method matching uses assignable parameter types instead of requiring an exact BlockPos signature, and resolved methods are cached per runtime box class. Refactor internal package names from Mixin to mixin and until to util, rename doEasyPlace to EasyPlaceHandler, and update all imports plus mixin metadata consistently. Bump the mod to 0.6.3, broaden supported dependency metadata to Litematica >=0.27.10 <0.29 and MaLiLib >=0.28.9 <0.30, and document the verified Minecraft 26.1.2 and 26.2 dependency combinations in the README and changelog. Validated with clean Gradle builds for Minecraft 26.1.2 and 26.2 on JDK 25.
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.
What changed
IntBoundingBox#containsPos(Vec3i)and currentIntBoundingBox#contains(Vec3i)APIs.Mixintomixinand from the misspelleduntilpackage toutil.doEasyPlacetoEasyPlaceHandlerand updated imports plus mixin metadata consistently.>=0.27.10 <0.29and MaLiLib>=0.28.9 <0.30for matching supported Minecraft builds.Root cause
EasyPlaceFix 0.6.2 looked up
IntBoundingBox#contains(BlockPos)by exact reflection signature. Both supported MaLiLib APIs actually acceptVec3i; the older API calls the methodcontainsPos, while the relocated API calls itcontains. SinceBlockPosonly extendsVec3i, exactClass#getMethodlookup failed withNoSuchMethodExceptionand crashed Easy Place during class initialization.User impact
Easy Place no longer crashes when used with the current Minecraft 26.2 Litematica/MaLiLib stack. The same source and artifact retain compatibility with the verified Minecraft 26.1.2 dependency stack.
Validation
Clean Gradle builds passed on JDK 25 for:
git diff --checkalso passes.