papermc/paper-server/patches/sources/net/minecraft/nbt/SnbtGrammar.java.patch

22 lines
1.4 KiB
Diff
Raw Normal View History

--- a/net/minecraft/nbt/SnbtGrammar.java
+++ b/net/minecraft/nbt/SnbtGrammar.java
@@ -591,7 +_,7 @@
Atom<List<Entry<String, T>>> atom30 = Atom.of("map_entries");
dictionary.put(atom30, Term.repeatedWithTrailingSeparator(namedRule3, atom30, StringReaderTerms.character(',')), scope -> scope.getOrThrow(atom30));
Atom<T> atom31 = Atom.of("map_literal");
- dictionary.put(atom31, Term.sequence(StringReaderTerms.character('{'), dictionary.named(atom30), StringReaderTerms.character('}')), scope -> {
+ dictionary.put(atom31, Term.sequence(StringReaderTerms.character('{'), Scope.increaseDepth(), dictionary.named(atom30), Scope.decreaseDepth(), StringReaderTerms.character('}')), scope -> { // Paper - track depth
List<Entry<String, T>> list = scope.getOrThrow(atom30);
if (list.isEmpty()) {
return object2;
@@ -626,7 +_,9 @@
atom35,
Term.sequence(
StringReaderTerms.character('['),
+ Scope.increaseDepth(), // Paper - track depth
Term.alternative(Term.sequence(dictionary.named(atom33), StringReaderTerms.character(';'), dictionary.named(atom34)), dictionary.named(atom32)),
+ Scope.decreaseDepth(), // Paper - track depth
StringReaderTerms.character(']')
),
parseState -> {