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

/**
 * Use @[HandleEvent]
 */
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
        }
    }
}