diff options
| author | Linnea Gräf <nea@nea.moe> | 2023-11-18 06:06:18 +0100 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2023-12-04 20:46:40 +0100 |
| commit | ac14fe8fe04c44e2e08fa90b5cc8fdce293c2ab1 (patch) | |
| tree | 79a72c3593d4e0304419c259559b371f12bd5249 /src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt | |
| parent | d9a1a8dda967f40bd4a7a2707bf3ff5411093e7d (diff) | |
| download | SkyHanni-repopatterns.tar.gz SkyHanni-repopatterns.tar.bz2 SkyHanni-repopatterns.zip | |
Add RepoPatternsrepopatterns
RepoPatterns allow us to easily update regexes without creating a new release.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt index 766da4c14..767643755 100644 --- a/src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt +++ b/src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt @@ -1,6 +1,8 @@ package at.hannibal2.skyhanni.events import at.hannibal2.skyhanni.data.EventCounter +import at.hannibal2.skyhanni.mixins.hooks.getValue +import at.hannibal2.skyhanni.mixins.hooks.setValue import at.hannibal2.skyhanni.mixins.transformers.AccessorEventBus import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.LorenzUtils @@ -16,6 +18,15 @@ abstract class LorenzEvent : Event() { fun postAndCatch() = postAndCatchAndBlock {} + companion object { + var eventHandlerDepth by object : ThreadLocal<Int>() { + override fun initialValue(): Int { + return 0 + } + } + val isInGuardedEventHandler get() = eventHandlerDepth > 0 + } + fun postAndCatchAndBlock( printError: Boolean = true, stopOnFirstError: Boolean = false, @@ -25,6 +36,7 @@ abstract class LorenzEvent : Event() { EventCounter.count(eventName) val visibleErrors = 3 var errors = 0 + eventHandlerDepth++ for (listener in getListeners()) { try { listener.invoke(this) @@ -40,6 +52,7 @@ abstract class LorenzEvent : Event() { if (stopOnFirstError) break } } + eventHandlerDepth-- if (errors > visibleErrors) { val hiddenErrors = errors - visibleErrors LorenzUtils.error("$hiddenErrors more errors in $eventName are hidden!") |
