aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt
diff options
context:
space:
mode:
authornea <romangraef@gmail.com>2022-09-28 12:45:56 +0200
committernea <romangraef@gmail.com>2022-09-28 12:45:56 +0200
commit4d73331a449f0b0647066f7dde0628730fe0e178 (patch)
tree047f463e13d14ea6cf9c8b37602a756f6880f9a0 /src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt
parentec66c82198fe2d61d699d553c1254f08b43fcc65 (diff)
downloadFirmament-4d73331a449f0b0647066f7dde0628730fe0e178.tar.gz
Firmament-4d73331a449f0b0647066f7dde0628730fe0e178.tar.bz2
Firmament-4d73331a449f0b0647066f7dde0628730fe0e178.zip
Fairy souls
Diffstat (limited to 'src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt')
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt b/src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt
index eba71bc..7eb0ecd 100644
--- a/src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt
+++ b/src/main/kotlin/moe/nea/notenoughupdates/events/NEUEventBus.kt
@@ -1,7 +1,14 @@
package moe.nea.notenoughupdates.events
import java.util.concurrent.CopyOnWriteArrayList
+import moe.nea.notenoughupdates.NotEnoughUpdates
+/**
+ * A pubsub event bus.
+ *
+ * [subscribe] to events [publish]ed on this event bus.
+ * Subscriptions may not necessarily be delivered in the order or registering.
+ */
open class NEUEventBus<T : NEUEvent> {
data class Handler<T>(val invocation: (T) -> Unit, val receivesCancelled: Boolean)
@@ -17,7 +24,11 @@ open class NEUEventBus<T : NEUEvent> {
fun publish(event: T): T {
for (function in toHandle) {
if (function.receivesCancelled || event !is NEUEvent.Cancellable || !event.cancelled) {
- function.invocation(event)
+ try {
+ function.invocation(event)
+ } catch (e: Exception) {
+ NotEnoughUpdates.logger.error("Caught exception during processing event $event", e)
+ }
}
}
return event