From ed0290217f6a78b03b2a1a0df169494a7ac2444e Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Fri, 25 Nov 2022 21:33:43 -0600 Subject: [PATCH] Added config to optionally enable/disable the ECMA6 Javascript standard in scripts. --- src/main/java/noppes/npcs/CustomNpcs.java | 5 +++++ src/main/java/noppes/npcs/controllers/ScriptContainer.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/noppes/npcs/CustomNpcs.java b/src/main/java/noppes/npcs/CustomNpcs.java index ba711359c..3a02cb530 100644 --- a/src/main/java/noppes/npcs/CustomNpcs.java +++ b/src/main/java/noppes/npcs/CustomNpcs.java @@ -47,6 +47,11 @@ public class CustomNpcs { @ConfigProp(info = "Enables/Disables ALL scripting. You can still see and write code in the scripter, but these scripts won't run. True by default") public static boolean ScriptingEnabled = true; + @ConfigProp(info = "Enables/Disables the use of the the ECMA6 Javascript standard instead of ECMA5.1." + + "\nEnabling this adds many more features to JS in scripts, but may cause some scripts to break" + + "\non servers that run Java 8 or lower. Disabled by default.") + public static boolean ScriptingECMA6 = false; + @ConfigProp(info = "Enables global player event scripts to be used in the scripter. You can still see and write code in the scripter, but these scripts won't run. True by default.") public static boolean GlobalPlayerScripts = true; diff --git a/src/main/java/noppes/npcs/controllers/ScriptContainer.java b/src/main/java/noppes/npcs/controllers/ScriptContainer.java index 837e36c9e..b8fc89b4d 100644 --- a/src/main/java/noppes/npcs/controllers/ScriptContainer.java +++ b/src/main/java/noppes/npcs/controllers/ScriptContainer.java @@ -209,7 +209,7 @@ public class ScriptContainer { public void setEngine(String scriptLanguage) { if(currentScriptLanguage != null && currentScriptLanguage.equals(scriptLanguage)) return; - if (scriptLanguage.equals("ECMAScript")) { + if (CustomNpcs.ScriptingECMA6 && scriptLanguage.equals("ECMAScript")) { System.setProperty("nashorn.args", "--language=es6"); } engine = ScriptController.Instance.getEngineByName(scriptLanguage.toLowerCase());