Compatibility
Minecraft: Java Edition
1.20–1.20.1
1.19.x
1.18.x
1.17.x
Platforms
Supported environments
Links
Creators
Details
Licensed Apache-2.0
Created 3 years ago
Updated 3 years ago
A library / modlauncher service that exposes the jvm INVOKEDYNAMIC opcode to modders. For more information on how to use it as a modder, see the GitHub.
Some more explanation on this:
The Java Virtual Machine (JVM) has an opcode called INVOKEDYNAMIC. Each individual occurrence of that opcode in bytecode is permanently bound to a CallSite object when executed the first time. This CallSite is obtained by calling a bootstrap method, which is implemented in plain java. This is for example used to implement lambdas in bytecode.
Dye provides a transform service to replace regular method calls to methods annotated with a special annotation with INVOKEDYNAMIC opcodes to a custom bootstrap method given by the annotation value.