From 2225740f802c983e0f78150c43ffabf2704cc052 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Sun, 24 Nov 2019 02:15:03 -0800 Subject: [PATCH] fix case handling issues, fix to_json --- .../denizencore/objects/core/ScriptTag.java | 2 +- .../denizencore/scripts/containers/ScriptContainer.java | 9 +++++++-- .../denizencore/utilities/YamlConfiguration.java | 9 +++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java b/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java index e588c815..e5ef9e3d 100644 --- a/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java +++ b/src/main/java/com/denizenscript/denizencore/objects/core/ScriptTag.java @@ -445,7 +445,7 @@ public static void registerTags() { registerTag("to_json", (attribute, object) -> { JSONObject jsobj = new JSONObject(YamlConfiguration.reverse(object.container.getContents().getMap(), true)); - jsobj.remove("TYPE"); + jsobj.remove("type"); return new ElementTag(jsobj.toString()); }); diff --git a/src/main/java/com/denizenscript/denizencore/scripts/containers/ScriptContainer.java b/src/main/java/com/denizenscript/denizencore/scripts/containers/ScriptContainer.java index 8d48e188..e3f46742 100644 --- a/src/main/java/com/denizenscript/denizencore/scripts/containers/ScriptContainer.java +++ b/src/main/java/com/denizenscript/denizencore/scripts/containers/ScriptContainer.java @@ -57,8 +57,13 @@ public class ScriptContainer implements Debuggable { public ScriptContainer(YamlConfiguration configurationSection, String scriptContainerName) { if (configurationSection == null) { Debug.echoError("Null configuration section while generating a ScriptContainer?!"); + throw new RuntimeException("Null configuration section while generating a ScriptContainer"); } contents = configurationSection; + configurationSection.forceLoweredRootKey("type"); + configurationSection.forceLoweredRootKey("debug"); + configurationSection.forceLoweredRootKey("script"); + configurationSection.forceLoweredRootKey("speed"); this.name = scriptContainerName.toUpperCase(); } @@ -177,8 +182,8 @@ public ScriptTag getAsScriptArg() { * @return the type of container */ public String getContainerType() { - return contents.contains("TYPE") - ? contents.getString("TYPE").toUpperCase() + return contents.contains("type") + ? contents.getString("type").toUpperCase() : null; } diff --git a/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java b/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java index 6e98e76a..7c9fc1c0 100644 --- a/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java +++ b/src/main/java/com/denizenscript/denizencore/utilities/YamlConfiguration.java @@ -83,6 +83,15 @@ else if (patchLines && obj.getValue() instanceof List) { return map; } + public void forceLoweredRootKey(String keyName) { + StringHolder key = new StringHolder(CoreUtilities.toLowerCase(keyName)); + Object obj = contents.get(key); + if (obj != null) { + contents.remove(key); + contents.put(key, obj); + } + } + public static List patchListNonsense(List objs) { List list = new ArrayList<>(); for (Object o : objs) {