Satin API

Satin API

3M Downloads

Mixin plugin loads Fabric API and Minecraft classes

sfPlayer1 opened this issue ยท 0 comments

commented

Describe the bug
The mod doesn't comply with the requirement in the IMixinConfigPlugin class documentation to not load classes that aren't designed for such an early time. Whenever any of the Satin.LOGGER accesses are reached the Satin class loads and then some classes referenced by onInitializeClient get loaded too. It is somewhat unusual for the JVM to load a type referenced from a method that hasn't been executed yet, but there's nothing disallowing it and it happens in this case. This prevents other Mixins from working as intended due to their target classes having been loaded too early.

SatinMixinPlugin needs to use its own logger and avoid referencing game classes directly or indirectly.

To Reproduce
Run with the environment described below and -Dfabric.debug.logClassLoad, observe how SatinMixinPlugin loads Satin then a fabric api and a MC class.

Environment:
It looks like every branch on the repo is affected, version 1.7.2 was tested. It is necessary to have one of the 3rd party mods that trigger logging. Client only of course.