Conversation
…fuscatingRemapper extends
Member
|
You absolutely cannot shade and repackage Mixin in your mod. All of Mixin's compatibility guarantees rely on there being only one active instance at a time, and violating that will lead to all sorts of issues. The only option on old versions is to use one of the established libraries which provide mixin, such as MixinBooter or EssentialLoader. |
Member
|
Yes, I think what I was suggesting was to only repackage ASM and not Mixin. |
Author
|
That was poorly worded by me. I'm working on my own mixin loader mod, which bundles mixin and asm. But only asm is relocated. |
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.
Originally posted by @modmuss50 in #153
I tried bundling mixin and asm in a mod for MC 1.12.2 which only uses ASM 5.
FMLDeobfuscatingRemapperextendsRemapperand is used as such inRemapperAdapterFML. But mixin itself also usesRemapper(e.g. InnerClassInfo).This makes it impossible to bundle and relocate the
Remapperclass because that would make mixin expectFMLDeobfuscatingRemapperto extend the relocatedRemapperclass.I changed
RemapperAdapterFMLto use a wrapperRemapperinstance that uses method handles to invoke the method ofFMLDeobfuscatingRemapper. This completely decouples whateverRemapperclass mixin uses from whatFMLDeobfuscatingRemapperuses.(As a small bonus, using method handles is also a bit faster than reflection which was used previously)