From 3bf461dc45f1888f4ec9b4847593321c0102bd4d Mon Sep 17 00:00:00 2001 From: "Alex \"mcmonkey\" Goodwin" Date: Sat, 1 Oct 2022 18:44:19 -0700 Subject: [PATCH] (Patch for Spigot/Paper YAML Update) Set YAML CodePoint limit to max --- .../denizenscript/denizencore/tags/TagManager.java | 3 +++ .../denizencore/utilities/YamlConfiguration.java | 14 +++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/denizenscript/denizencore/tags/TagManager.java b/src/main/java/com/denizenscript/denizencore/tags/TagManager.java index c614260e..d9c06d1e 100644 --- a/src/main/java/com/denizenscript/denizencore/tags/TagManager.java +++ b/src/main/java/com/denizenscript/denizencore/tags/TagManager.java @@ -351,6 +351,9 @@ public static ParseableTag parseTextToTag(String arg, TagContext context) { } public static ParseableTag parseTextToTagInternal(String arg, TagContext context) { + if (CoreConfiguration.debugVerbose) { + Debug.echoError("(Verbose) Parse text to tag: " + arg); + } List pieces = new ArrayList<>(1); if (arg.indexOf('>') == -1 || arg.length() < 3) { ParseableTagPiece txt = new ParseableTagPiece(); diff --git a/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java b/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java index bf66c100..8d9449f7 100644 --- a/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java +++ b/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java @@ -5,6 +5,7 @@ import com.denizenscript.denizencore.utilities.debugging.DebugInternals; import com.denizenscript.denizencore.utilities.text.StringHolder; import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.representer.Representer; @@ -29,11 +30,22 @@ protected void addImplicitResolvers() { } } + private static boolean hasModernYaml = true; + public static Yaml createBaseYaml(boolean useCustomResolver) { DumperOptions options = new DumperOptions(); options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); options.setAllowUnicode(true); - return new Yaml(new SafeConstructor(), new Representer(), options, useCustomResolver ? new CustomResolver() : new Resolver()); + LoaderOptions loaderOptions = new LoaderOptions(); + try { + if (hasModernYaml) { + loaderOptions.setCodePointLimit(Integer.MAX_VALUE); + } + } + catch (NoSuchMethodError ignored) { + hasModernYaml = false; // pre-1.32 snakeyaml + } + return new Yaml(new SafeConstructor(), new Representer(), options, loaderOptions, useCustomResolver ? new CustomResolver() : new Resolver()); } public static YamlConfiguration load(String data) {