diff --git a/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt b/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt index ac5f0a244..a1e55ec56 100644 --- a/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt +++ b/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt @@ -35,13 +35,19 @@ abstract class CommandNode( val pointer = reader.pointer val stackSize = stack.size var lastError: Throwable? = null + var highestStack = 0 for (child in children) { try { return executeChild(child, reader, stack) } catch (error: Throwable) { - lastError = error + val size = stack.size + if (size >= highestStack) { + highestStack = size + lastError = error + } } reader.pointer = pointer + stack.reset(stackSize) } throw lastError ?: return