From 39c66ed0bf3c12bd8d35e1ce009cc08e41cecfaa Mon Sep 17 00:00:00 2001 From: TarLaboratories Date: Sat, 10 Jan 2026 09:45:02 +0300 Subject: [PATCH] exit when encountering exception instead of continuing to execute placeholders --- .../api/placeholder/PlaceholderHandler.java | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/placeholder/PlaceholderHandler.java b/src/main/java/com/gregtechceu/gtceu/api/placeholder/PlaceholderHandler.java index c496615442a..86edbd0bd77 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/placeholder/PlaceholderHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/api/placeholder/PlaceholderHandler.java @@ -84,31 +84,31 @@ public static MultiLineComponent processPlaceholders(String s, PlaceholderContex int symbol = 1; Stack> stack = new Stack<>(); stack.push(GTUtil.list(MultiLineComponent.empty())); - for (char c : s.toCharArray()) { - if (escape || (literalEscape && c != LITERAL_ESCAPE)) { - if (c == ESCAPED_NEWLINE && !literalEscape) { - GTUtil.getLast(stack.peek()).appendNewline(); - line++; - symbol = 0; - } else if (c == NEWLINE) continue; - else GTUtil.getLast(stack.peek()).append(c); - } else { - switch (c) { - case ESCAPE -> escapeNext = true; - case LITERAL_ESCAPE -> literalEscape = !literalEscape; - case NEWLINE -> { + try { + for (char c : s.toCharArray()) { + if (escape || (literalEscape && c != LITERAL_ESCAPE)) { + if (c == ESCAPED_NEWLINE && !literalEscape) { GTUtil.getLast(stack.peek()).appendNewline(); line++; symbol = 0; - } - case ARG_SEPARATOR -> { - if (stack.size() == 1) GTUtil.getLast(stack.peek()).append(c); - else stack.peek().add(MultiLineComponent.empty()); - } - case PLACEHOLDER_BEGIN -> stack.push(GTUtil.list(MultiLineComponent.empty())); - case PLACEHOLDER_END -> { - List placeholder = stack.pop(); - try { + } else if (c == NEWLINE) continue; + else GTUtil.getLast(stack.peek()).append(c); + } else { + switch (c) { + case ESCAPE -> escapeNext = true; + case LITERAL_ESCAPE -> literalEscape = !literalEscape; + case NEWLINE -> { + GTUtil.getLast(stack.peek()).appendNewline(); + line++; + symbol = 0; + } + case ARG_SEPARATOR -> { + if (stack.size() == 1) GTUtil.getLast(stack.peek()).append(c); + else stack.peek().add(MultiLineComponent.empty()); + } + case PLACEHOLDER_BEGIN -> stack.push(GTUtil.list(MultiLineComponent.empty())); + case PLACEHOLDER_END -> { + List placeholder = stack.pop(); if (stack.isEmpty()) throw new UnexpectedBracketException(); MultiLineComponent result = processPlaceholder(placeholder, ctx); if (result.isIgnoreSpaces() || stack.size() == 1) { @@ -134,19 +134,19 @@ public static MultiLineComponent processPlaceholders(String s, PlaceholderContex if (i != result.size() - 1) GTUtil.getLast(stack.peek()).appendNewline(); } } - } catch (PlaceholderException e) { - e.setLineInfo(line, symbol); - exceptions.add(e); - } catch (RuntimeException e) { - exceptions.add(e); } + default -> GTUtil.getLast(stack.peek()).append(c); } - default -> GTUtil.getLast(stack.peek()).append(c); } + escape = escapeNext; + escapeNext = false; + symbol++; } - escape = escapeNext; - escapeNext = false; - symbol++; + } catch (PlaceholderException e) { + e.setLineInfo(line, symbol); + exceptions.add(e); + } catch (RuntimeException e) { + exceptions.add(e); } if (stack.size() > 1) { PlaceholderException exception = new UnclosedBracketException();