diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java index b8049b77..0f515a33 100644 --- a/src/main/java/carpet/script/CarpetScriptHost.java +++ b/src/main/java/carpet/script/CarpetScriptHost.java @@ -100,6 +100,7 @@ public class CarpetScriptHost extends ScriptHost else if (parent != null) { persistenceRequired = ((CarpetScriptHost)parent).persistenceRequired; + strict = parent.strict; } appConfig = config; appArgTypes = argTypes; @@ -306,6 +307,7 @@ public class CarpetScriptHost extends ScriptHost Map config = ((MapValue) ret).getMap(); setPerPlayer(config.getOrDefault(new StringValue("scope"), new StringValue("player")).getString().equalsIgnoreCase("player")); persistenceRequired = config.getOrDefault(new StringValue("stay_loaded"), Value.TRUE).getBoolean(); + strict = config.getOrDefault(StringValue.of("strict"), Value.FALSE).getBoolean(); // check requires Value loadRequirements = config.get(new StringValue("requires")); if (loadRequirements instanceof FunctionValue) diff --git a/src/main/java/carpet/script/ScriptHost.java b/src/main/java/carpet/script/ScriptHost.java index 9da1e036..56216c72 100644 --- a/src/main/java/carpet/script/ScriptHost.java +++ b/src/main/java/carpet/script/ScriptHost.java @@ -36,6 +36,7 @@ public abstract class ScriptHost private final Map executorServices = new HashMap<>(); private final Map locks = new ConcurrentHashMap<>(); protected boolean inTermination = false; + public boolean strict; private final Set deprecations = new HashSet<>(); @@ -118,6 +119,7 @@ public abstract class ScriptHost this.main = code; this.perUser = perUser; this.user = null; + this.strict = false; ModuleData moduleData = new ModuleData(code); initializeModuleGlobals(moduleData); this.moduleData.put(code, moduleData);