Skip to content

Commit 59115c2

Browse files
committed
fix: passthrough command exceptions in argument logic
1 parent 293db7e commit 59115c2

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/main/kotlin/dev/fruxz/brigadikt/structure/ArgumentProvider.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package dev.fruxz.brigadikt.structure
22

3-
import dev.fruxz.ascend.extension.tryOrNull
43
import dev.fruxz.brigadikt.CommandContext
54
import dev.fruxz.brigadikt.DefaultProvider
65
import kotlin.reflect.KMutableProperty
@@ -14,13 +13,14 @@ open class ArgumentProvider<I : Any, O>(
1413
val processor: Processor<I, O>,
1514
) {
1615

17-
open fun resolve(context: CommandContext): O =
18-
tryOrNull {
19-
processor.perform(
20-
context = context,
21-
input = lazyArgument(name ?: throw IllegalStateException("name not yet present in ArgumentProvider")).resolve(context)
22-
)
23-
} ?: default?.provide(context) ?: throw IllegalStateException("Failed to resolve ArgumentProvider")
16+
open fun resolve(context: CommandContext): O = try {
17+
processor.perform(
18+
context = context,
19+
input = lazyArgument(name ?: throw IllegalStateException("name (of the argument) not yet present in ArgumentProvider")).resolve(context)
20+
)
21+
} catch (e: Exception) {
22+
default?.provide(context) ?: throw e
23+
}
2424

2525
/**
2626
* Drops the default again, since its now not matching anymore

0 commit comments

Comments
 (0)