From fe2b5657c596c6a23db4ab8404c226c3ed370ddf Mon Sep 17 00:00:00 2001 From: autaut03 Date: Wed, 13 Feb 2019 00:09:24 +0200 Subject: [PATCH] Fix ModLoadingContext being a singleton --- .../forgelin/FMLKotlinModLoadingContext.kt | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/main/kotlin/net/shadowfacts/forgelin/FMLKotlinModLoadingContext.kt b/src/main/kotlin/net/shadowfacts/forgelin/FMLKotlinModLoadingContext.kt index 7acb5c5..c7dc08b 100644 --- a/src/main/kotlin/net/shadowfacts/forgelin/FMLKotlinModLoadingContext.kt +++ b/src/main/kotlin/net/shadowfacts/forgelin/FMLKotlinModLoadingContext.kt @@ -7,25 +7,28 @@ import net.minecraftforge.fml.config.ModConfig import java.util.function.Supplier object FMLKotlinModLoadingContext { - private val context = ThreadLocal.withInitial { FMLKotlinModLoadingContext } - var activeContainer: FMLKotlinModContainer? = null + private val context = ThreadLocal.withInitial { Context() } - val modEventBus: IEventBus - get() = activeContainer!!.eventBus - - fun get(): FMLKotlinModLoadingContext { + fun get(): Context { return context.get() } - fun registerExtensionPoint(point: ExtensionPoint, extension: Supplier) { - activeContainer!!.registerExtensionPoint(point, extension) - } + class Context { + var activeContainer: FMLKotlinModContainer? = null - fun registerConfig(type: ModConfig.Type, spec: ForgeConfigSpec) { - activeContainer!!.addConfig(ModConfig(type, spec, activeContainer!!)) - } + val modEventBus: IEventBus + get() = activeContainer!!.eventBus - fun registerConfig(type: ModConfig.Type, spec: ForgeConfigSpec, fileName: String) { - activeContainer!!.addConfig(ModConfig(type, spec, activeContainer, fileName)) + fun registerExtensionPoint(point: ExtensionPoint, extension: Supplier) { + activeContainer!!.registerExtensionPoint(point, extension) + } + + fun registerConfig(type: ModConfig.Type, spec: ForgeConfigSpec) { + activeContainer!!.addConfig(ModConfig(type, spec, activeContainer!!)) + } + + fun registerConfig(type: ModConfig.Type, spec: ForgeConfigSpec, fileName: String) { + activeContainer!!.addConfig(ModConfig(type, spec, activeContainer, fileName)) + } } } \ No newline at end of file