aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/notenoughupdates/events/NEUScreenEvents.kt
blob: 64edda0852c16d6bfeab8b807b2b571fa94ded9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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.screen.Screen
import net.minecraft.client.MinecraftClient

object NEUScreenEvents {
    fun interface OnScreenOpen {
        /**
         * Called when a new Screen is opened via [MinecraftClient.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) }
        }
    }

}