Forgelin/src/main/kotlin/net/shadowfacts/forgelin/FMLKotlinModTarget.kt

27 lines
1.5 KiB
Kotlin
Raw Normal View History

2019-02-12 19:20:49 +00:00
package net.shadowfacts.forgelin
import net.minecraftforge.fml.Logging.LOADING
import net.minecraftforge.forgespi.language.IModInfo
import net.minecraftforge.forgespi.language.IModLanguageProvider
import net.minecraftforge.forgespi.language.ModFileScanData
import org.apache.logging.log4j.LogManager
2019-02-14 19:11:18 +00:00
import java.lang.Exception
2019-02-12 19:20:49 +00:00
class FMLKotlinModTarget(private val className: String, val modId: String) : IModLanguageProvider.IModLanguageLoader {
2019-02-12 22:06:19 +00:00
private val logger = LogManager.getLogger()
2019-02-12 19:20:49 +00:00
override fun <T> loadMod(info: IModInfo, modClassLoader: ClassLoader, modFileScanResults: ModFileScanData): T {
try {
2019-02-14 19:11:18 +00:00
return FMLKotlinModContainer(info, className, modClassLoader, modFileScanResults) as T
/*logger.debug(LOADING, "Loading FMLKotlinModContainer from classloader {}", Thread.currentThread().contextClassLoader)
2019-02-12 19:20:49 +00:00
val fmlContainer = Class.forName("net.shadowfacts.forgelin.FMLKotlinModContainer", true, Thread.currentThread().contextClassLoader)
2019-02-14 19:11:18 +00:00
logger.debug(LOADING, "Loading FMLKotlinModContainer got {}", fmlContainer.classLoader)
2019-02-12 19:20:49 +00:00
val constructor = fmlContainer.getConstructor(IModInfo::class.java, String::class.java, ClassLoader::class.java, ModFileScanData::class.java)
2019-02-14 19:11:18 +00:00
return constructor.newInstance(info, className, modClassLoader, modFileScanResults) as T*/
} catch (e: Exception) {
2019-02-12 22:06:19 +00:00
logger.fatal(LOADING, "Unable to load FMLKotlinModContainer, wut?", e)
2019-02-12 19:20:49 +00:00
throw e
}
}
}