aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/api/event/SkyHanniEvent.kt
blob: 4f3685c8bdff3f7bcf56f01ededd1d65bb0cd5f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package at.hannibal2.skyhanni.api.event

abstract class SkyHanniEvent protected constructor() {

    var isCancelled: Boolean = false
        private set

    fun post() = SkyHanniEvents.getEventHandler(javaClass).post(this)

    fun post(onError: (Throwable) -> Unit = {}) = SkyHanniEvents.getEventHandler(javaClass).post(this, onError)

    interface Cancellable {

        fun cancel() {
            val event = this as SkyHanniEvent
            event.isCancelled = true
        }
    }
}