11package org.bundleproject.launchwrapper
22
33import org.bundleproject.launchwrapper.utils.*
4+ import org.bundleproject.libversion.Version
45import java.io.File
56import kotlin.reflect.KClass
67import kotlin.reflect.full.callSuspend
7- import kotlin.reflect.full.createType
88import kotlin.reflect.full.functions
99import kotlin.reflect.full.primaryConstructor
1010
@@ -21,6 +21,7 @@ suspend fun launch(args: Array<String>, gameDir: File, classLoader: ClassLoader)
2121 (args[" bundleMainClass" ]?.let { Class .forName(it).kotlin } ? : findEntrypoint())?.run {
2222 val version = args[" version" ]
2323 ?.takeIf { it != " MultiMC5" }
24+ ?.let (Version ::of)
2425 val modFolderName = " mods"
2526
2627 val bundleClass = runCatching { Class .forName(bundleClassName, true , classLoader).kotlin }
@@ -31,8 +32,8 @@ suspend fun launch(args: Array<String>, gameDir: File, classLoader: ClassLoader)
3132 .getOrThrow()
3233
3334 logger.info(" Invoking constructor..." )
34- bundleClass.constructors.find { it.typeParameters[ 1 ] == String :: class .createType() }
35- ?.call(gameDir, version, modFolderName )
35+ bundleClass.primaryConstructor?.call(gameDir, version, modFolderName)
36+ ? : logger.error( " Couldn't invoke constructor! " )
3637
3738 logger.info(" Starting Bundle... Goodbye, Launchwrapper..." )
3839 bundleClass.functions.find { it.name == " start" }?.callSuspend()
0 commit comments