aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt')
-rw-r--r--src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt b/src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt
index c81cb63..0a66f69 100644
--- a/src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt
+++ b/src/main/kotlin/com/dulkirfabric/DulkirModFabric.kt
@@ -17,7 +17,9 @@ import com.dulkirfabric.events.WidgetInitEvent
import meteordevelopment.orbit.EventBus
import meteordevelopment.orbit.EventHandler
import net.fabricmc.api.ModInitializer
+import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents
import net.minecraft.client.MinecraftClient
+import net.minecraft.client.gui.screen.Screen
import org.slf4j.LoggerFactory
import java.lang.invoke.MethodHandles
@@ -28,8 +30,8 @@ object DulkirModFabric : ModInitializer {
val EVENT_BUS = EventBus()
@JvmField
val mc: MinecraftClient = MinecraftClient.getInstance()
-
var widgetLoadTime = 0L
+ var delayedScreen: Screen? = null
override fun onInitialize() {
logger.info("Initializing DulkirMod...")
@@ -38,7 +40,16 @@ object DulkirModFabric : ModInitializer {
lookupInMethod.invoke(null, klass, MethodHandles.lookup()) as MethodHandles.Lookup
}
- EVENT_BUS.subscribe(this)
+ // Register a tick event listener to delay the screen opening
+ ClientTickEvents.END_CLIENT_TICK.register(ClientTickEvents.EndTick { client: MinecraftClient? ->
+ if (delayedScreen != null) {
+ MinecraftClient.getInstance().setScreen(delayedScreen)
+ delayedScreen = null
+ }
+ })
+
+ Registrations.registerEventListeners()
+ Registrations.registerCommands()
}
@EventHandler
@@ -52,4 +63,9 @@ object DulkirModFabric : ModInitializer {
val time = System.nanoTime() - widgetLoadTime
if (event.initialized) println("widgets initialized!!!!!, took: $time ns")
}
+
+ // Call this method when you want to open the new screen
+ fun openScreenDelayed(screen: Screen) {
+ delayedScreen = screen
+ }
} \ No newline at end of file