LexForgeFix
ModMIT

LexForgeFix

Allow some mods for MinecraftForge 47.3.10+ run on NeoForge 47.1.x

31
Downloads
1
Followers
3 months ago
Updated
📦
2
Versions

📖About LexForgeFix

MinecraftForge 1.20.1-47.3.10 introduced a new feature: allowing the mod entry class constructor to obtain an FMLJavaModLoadingContext as a parameter, whereas NeoForge 47.1.x at the same time did not support such a mod constructor.

This mod adds the classic parameterless constructor to these mods through bytecode modifications.

Fix these errors:

-- Head --
Thread: Render thread
Stacktrace:
    at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:109) ~[language-java-47.2.2.jar%23416!/:47.2] {}
-- MOD somemod --
Details:
    Mod File: <.minecraft>/mods/<somemod>-1.20.1-Forge.jar
    Failure message: Some Mod (somemod) has failed to load correctly
        java.lang.RuntimeException: Could not find mod constructor. Allowed optional argument classes: ModContainer, IEventBus, FMLModContainer
    Mod Version: 1.1.4514
    Mod Issue URL: https://example.com/
    Exception message: java.lang.RuntimeException: Could not find mod constructor. Allowed optional argument classes: ModContainer, IEventBus, FMLModContainer
Stacktrace:
    at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:109) ~[language-java-47.2.2.jar%23416!/:47.2] {}
    at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:123) ~[core-47.2.2.jar%23415!/:47.2] {re:mixin}
    at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}
    at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) ~[?:?] {}
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) ~[?:?] {}
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) ~[?:?] {re:mixin,re:computing_frames}
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) ~[?:?] {re:mixin,re:computing_frames}
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?] {re:mixin}
-- Head --
Thread: Render thread
Stacktrace:
    at java.lang.Class.getConstructor0(Class.java:3761) ~[?:?] {}
-- MOD somemod --
Details:
    Mod File: <.minecraft>/mods/<somemod>-1.20.1-Forge.jar
    Failure message: Some Mod (somemod) has failed to load correctly
        java.lang.NoSuchMethodException: com.example.SomeMod.<init>()
    Mod Version: 0.1.0
    Mod Issue URL: NOT PROVIDED
    Exception message: java.lang.NoSuchMethodException: com.example.SomeMod.<init>()
Stacktrace:
    at java.lang.Class.getConstructor0(Class.java:3761) ~[?:?] {}
    at java.lang.Class.getDeclaredConstructor(Class.java:2930) ~[?:?] {}
    at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:68) ~[javafmllanguage-1.20.1-47.1.3.jar%23181!/:?] {}
    at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:123) ~[fmlcore-1.20.1-47.1.3.jar%23180!/:?] {}
    at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?] {}
    at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[?:?] {}
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) ~[?:?] {}
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) ~[?:?] {}
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) ~[?:?] {}
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) ~[?:?] {}
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?] {}