aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt
diff options
context:
space:
mode:
authornea <nea@nea.moe>2023-05-16 03:42:06 +0200
committernea <nea@nea.moe>2023-05-16 03:42:06 +0200
commit01f39819599fd89200a44a28da5597a2308e27d0 (patch)
tree851e9ac0d5e53b4ab1c1a21e6708e81664b0d5fe /src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt
parentfbe8bc680b742177ae54c8be1df5c33fb1635575 (diff)
downloadfirmament-01f39819599fd89200a44a28da5597a2308e27d0.tar.gz
firmament-01f39819599fd89200a44a28da5597a2308e27d0.tar.bz2
firmament-01f39819599fd89200a44a28da5597a2308e27d0.zip
Rename event bus
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt b/src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt
new file mode 100644
index 0000000..6ac2a4b
--- /dev/null
+++ b/src/main/kotlin/moe/nea/firmament/events/FirmamentEvent.kt
@@ -0,0 +1,36 @@
+package moe.nea.firmament.events
+
+/**
+ * An event that can be fired by a [FirmamentEventBus].
+ *
+ * Typically, that event bus is implemented as a companion object
+ *
+ * ```
+ * class SomeEvent : NEUEvent() {
+ * companion object : NEUEventBus<SomeEvent>()
+ * }
+ * ```
+ */
+abstract class FirmamentEvent {
+ /**
+ * A [FirmamentEvent] that can be [cancelled]
+ */
+ abstract class Cancellable : FirmamentEvent() {
+ /**
+ * Cancels this is event.
+ *
+ * @see cancelled
+ */
+ fun cancel() {
+ cancelled = true
+ }
+
+ /**
+ * Whether this event is cancelled.
+ *
+ * Cancelled events will bypass handlers unless otherwise specified and will prevent the action that this
+ * event was originally fired for.
+ */
+ var cancelled: Boolean = false
+ }
+}