blob: 07fc8ed485f2006b07dceae1787bdeddba1a4a32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package at.hannibal2.skyhanni.utils.system
import net.minecraft.launchwrapper.Launch
import net.minecraftforge.fml.common.Loader
import net.minecraftforge.fml.common.ModContainer
/**
* This object contains utilities for all platform specific operations.
* i.e. operations that are specific to the mod loader or the environment the mod is running in.
*/
object PlatformUtils {
private val modPackages: Map<String, ModContainer> by lazy {
Loader.instance().modList.flatMap { mod -> mod.ownedPackages.map { it to mod } }.toMap()
}
val isDevEnvironment: Boolean by lazy {
Launch.blackboard?.get("fml.deobfuscatedEnvironment") as? Boolean ?: true
}
fun getModFromPackage(packageName: String?): ModInstance? = modPackages[packageName]?.let {
ModInstance(it.modId, it.name, it.version)
}
fun Class<*>.getModInstance(): ModInstance? = getModFromPackage(canonicalName?.substringBeforeLast('.'))
}
data class ModInstance(val id: String, val name: String, val version: String)
|