Comments (9)
Initialisers in mixins have always been ignored. You must inject into the initialiser in the target class in order to call construct-time logic.
from mixin.
Except that when I try that, I get told that injecting is not allowed with multi-target mixins
from mixin.
It should be allowed if you set remap=false
on the @Inject
annotation. The reason it's not allowed on remapped injectors is that a single name in multiple classes which are obfuscated will obviously remap to multiple names in each target class so I can't squeeze it through the obfuscator. But <init>
always has the same name and so you can set remap=false
on it and it should be fine.
If that doesn't work let me know and I'll check the AP logic.
from mixin.
That sorta works -- now I'm getting an issue with the fact that the different targets take different constructor arguments:
Caused by: org.spongepowered.asm.mixin.injection.InvalidInjectionException: Invalid descriptor on callback: expected (Ljava/io/File;Ljava/net/Proxy;Ljava/io/File;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V but found (Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V
at org.spongep
(the output was cut off there in the terminal, not mispaste)
from mixin.
Hmm. Well if you don't actually need the actual arguments then I could make it so that injectors can be created which don't take the method args in their signature. That should let you inject with impugnity.
from mixin.
yeah, I don't care about the arguments so that sounds like what I'd need.
from mixin.
Ok I'll get right on that.
from mixin.
Ok, as of the commit above you can now make injector callbacks with only the CallbackInfo
argument. You will need to update the mixin library version to 0.4.3 in spongecommon to get this change though.
from mixin.
Great, that seems to work. Thanks!
from mixin.
Related Issues (20)
- `Accessor` and `Invoker` Mixins delete methods with the same name in the target class
- java.lang.NoClassDefFoundError: org/spongepowered/asm/synthetic/args/Args$1 HOT 1
- [Feature Request] Inject goto instructuion
- [Forge][Build error] Using class from custom lib in Mixin class throw Exception
- `MappingWriterTSrg` is named incorrectly
- Thread: Render thread Suspected Mod: Patchouli (patchouli), Version: 1.20.1-83-FORGE HOT 1
- Allow `@ModifyVariable` to capture locals HOT 1
- Mixins Not Being Read, Force Disabling Them. Game Crashes. HOT 1
- Trying to add another 'case' value to a 'switch' statement
- injection failed HOT 1
- INVOKE_ASSIGN gets stopped by CHECKCASTs HOT 2
- Wiki Subsection Titles
- [Forge] Stack Overflow when a invoked method is called HOT 1
- Support ModLauncher loaded as JPMS Module / Classes-Folder
- Initializer merging behavior seems to have changed in 0.8.6 snapshots HOT 1
- Constructor redirect incorrectly handles nested constructor invocations
- Redirect can not find its target. HOT 4
- Inability to get all classes targetted by mixin HOT 6
- Modpack Server Crash HOT 1
- When you log in it shows this HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mixin.