aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt')
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt b/src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt
new file mode 100644
index 0000000..f118be5
--- /dev/null
+++ b/src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt
@@ -0,0 +1,23 @@
+package moe.nea.notenoughupdates.events
+
+import moe.nea.notenoughupdates.events.NEUScreenEvents.OnScreenOpen
+import net.fabricmc.fabric.api.event.EventFactory
+import net.minecraft.client.gui.screens.Screen
+import net.minecraft.client.Minecraft
+
+object NEUScreenEvents {
+ fun interface OnScreenOpen {
+ /**
+ * Called when a new Screen is opened via [Minecraft.setScreen]. If [new] is null, this corresponds to closing a [Screen].
+ * @return true to prevent this event from happening.
+ */
+ fun onScreenOpen(old: Screen?, new: Screen?): Boolean
+ }
+
+ val SCREEN_OPEN = EventFactory.createArrayBacked(OnScreenOpen::class.java) { arr ->
+ OnScreenOpen { old, new ->
+ return@OnScreenOpen arr.asSequence().any { it.onScreenOpen(old, new) }
+ }
+ }
+
+} \ No newline at end of file