Kotlin for Forge

Kotlin for Forge

70M Downloads

Update KotlinForForge for 1.19.3 Support

xuankaicat opened this issue ยท 13 comments

commented

Support Minecraft 1.19.3 with forge 44.1.+

commented

I know

commented

Use 3.8.0 for now

commented

It is a mistake.What I want to say is 1.19.3.

commented

When I set the KotlinModdingSkeleton template to
Kotlin 1.7.20
forge:1.19.3-44.1.9
mappings channel: 'official', version: '1.19.3'
then run the client, it crashed.

java.lang.RuntimeException: java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
	at net.minecraftforge.fml.loading.moddiscovery.ModFile.getScanResult(ModFile.java:149) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:246) ~[fmlcore-1.19.3-44.1.9.jar:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?] {}
	at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?] {}
	at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?] {}
	at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?] {}
	at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:169) ~[fmlcore-1.19.3-44.1.9.jar:?] {}
	at net.minecraftforge.client.loading.ClientModLoader.lambda$begin$1(ClientModLoader.java:91) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraftforge.client.loading.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:111) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java:91) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.<init>(Minecraft.java:469) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.run(Main.java:176) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:51) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
	at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:25) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.8.jar:?] {}
	at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {}
Caused by: java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
	at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {}
	at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?] {}
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?] {}
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] {}
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] {}
	at java.lang.Thread.run(Thread.java:833) ~[?:?] {}
Caused by: java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
	at thedarkcolour.kotlinforforge.KotlinLanguageProvider.getFileVisitor$lambda$2(KotlinLanguageProvider.kt) ~[kotlinforforge-3.8.0.jar:3.8.0] {}
	at net.minecraftforge.fml.loading.moddiscovery.Scanner.lambda$scan$1(Scanner.java:37) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {}
	at net.minecraftforge.fml.loading.moddiscovery.Scanner.scan(Scanner.java:35) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at net.minecraftforge.fml.loading.moddiscovery.ModFile.compileContent(ModFile.java:128) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] {}
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] {}
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] {}
	at java.lang.Thread.run(Thread.java:833) ~[?:?] {}
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
	at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?] {}
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
	at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.6.jar:?] {}
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
	at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.6.jar:?] {}
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
	at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:137) ~[securejarhandler-2.1.6.jar:?] {}
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}
	at thedarkcolour.kotlinforforge.KotlinLanguageProvider.getFileVisitor$lambda$2(KotlinLanguageProvider.kt) ~[kotlinforforge-3.8.0.jar:3.8.0] {}
	at net.minecraftforge.fml.loading.moddiscovery.Scanner.lambda$scan$1(Scanner.java:37) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {}
	at net.minecraftforge.fml.loading.moddiscovery.Scanner.scan(Scanner.java:35) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at net.minecraftforge.fml.loading.moddiscovery.ModFile.compileContent(ModFile.java:128) ~[fmlloader-1.19.3-44.1.9.jar:?] {}
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] {}
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] {}
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] {}
	at java.lang.Thread.run(Thread.java:833) ~[?:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at net.minecraftforge.fml.loading.moddiscovery.ModFile.getScanResult(ModFile.java:149) ~[fmlloader-1.19.3-44.1.9.jar%2396!/:?] {}
	at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:246) ~[fmlcore-1.19.3-44.1.9.jar%23190!/:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?] {}
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575) ~[?:?] {}
	at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260) ~[?:?] {}
	at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616) ~[?:?] {}
	at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622) ~[?:?] {}
	at java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627) ~[?:?] {}
	at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:169) ~[fmlcore-1.19.3-44.1.9.jar%23190!/:?] {}
	at net.minecraftforge.client.loading.ClientModLoader.lambda$begin$1(ClientModLoader.java:91) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar%23185%23192!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraftforge.client.loading.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:111) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar%23185%23192!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java:91) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar%23185%23192!/:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.<init>(Minecraft.java:469) ~[forge-1.19.3-44.1.9_mapped_official_1.19.3-recomp.jar%23186!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
commented

Which KFF

commented

3.8.0

commented

I modified KFF, and it seemed the client run normally now:
xuankaicat@fb6858a
or I did some mistake operation on 3.8.0?

commented

Yes, those are the changes I need to make for 1.19.3 support.

commented

Btw amount of Vector util files will multiply by ton when we do that, as there are lots of vector classes.

commented

Yes, those are the changes I need to make for 1.19.3 support.

any ETA on when this will be available officially?

commented

I will do it tonight

commented

that will help a lot, thank you

commented

The vector utilities are now on the maven and CurseForge/Modrinth. For 1.19.3, please use Kotlin for Forge 4.0.0 or above.