aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/events/FirmamentEvent.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-08-28 19:04:24 +0200
committerLinnea Gräf <nea@nea.moe>2024-08-28 19:04:24 +0200
commitd2f240ff0ca0d27f417f837e706c781a98c31311 (patch)
tree0db7aff6cc14deaf36eed83889d59fd6b3a6f599 /src/main/kotlin/events/FirmamentEvent.kt
parenta6906308163aa3b2d18fa1dc1aa71ac9bbcc83ab (diff)
downloadFirmament-d2f240ff0ca0d27f417f837e706c781a98c31311.tar.gz
Firmament-d2f240ff0ca0d27f417f837e706c781a98c31311.tar.bz2
Firmament-d2f240ff0ca0d27f417f837e706c781a98c31311.zip
Refactor source layout
Introduce compat source sets and move all kotlin sources to the main directory [no changelog]
Diffstat (limited to 'src/main/kotlin/events/FirmamentEvent.kt')
-rw-r--r--src/main/kotlin/events/FirmamentEvent.kt38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/kotlin/events/FirmamentEvent.kt b/src/main/kotlin/events/FirmamentEvent.kt
new file mode 100644
index 0000000..1a93ef5
--- /dev/null
+++ b/src/main/kotlin/events/FirmamentEvent.kt
@@ -0,0 +1,38 @@
+
+
+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 : FirmamentEvent() {
+ * companion object : FirmamentEventBus<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
+ }
+}