diff --git a/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptExpansionCommands.java b/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptExpansionCommands.java index 4756d47f..9ac6b858 100644 --- a/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptExpansionCommands.java +++ b/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptExpansionCommands.java @@ -244,7 +244,7 @@ public boolean execute(CommandSender sender, String label, String[] args) { } final String script = String.join(" ", Arrays.copyOfRange(args, 2, args.length)); - final JavascriptPlaceholder placeholder = new JavascriptPlaceholder(expansion.getGlobalEngine(), "parse-command", String.join(" ", script)); + final JavascriptPlaceholder placeholder = new JavascriptPlaceholder(expansion.getGlobalEngine(), "parse-command", String.join(" ", script), true); if ("me".equalsIgnoreCase(args[1])) { if (!(sender instanceof Player)) { diff --git a/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholder.java b/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholder.java index 0c6cb6b9..e5742afa 100644 --- a/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholder.java +++ b/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholder.java @@ -41,11 +41,12 @@ public class JavascriptPlaceholder { private final ScriptEngine engine; private final String identifier; private final String script; + private final boolean dataPersists; private ScriptData scriptData; private final File dataFile; private YamlConfiguration yaml; - public JavascriptPlaceholder(ScriptEngine engine, String identifier, String script) { + public JavascriptPlaceholder(ScriptEngine engine, String identifier, String script, boolean dataPersists) { Validate.notNull(engine, "ScriptEngine can not be null"); Validate.notNull(identifier, "Identifier can not be null"); Validate.notNull(script, "Script can not be null"); @@ -53,6 +54,7 @@ public JavascriptPlaceholder(ScriptEngine engine, String identifier, String scri this.engine = engine; this.identifier = identifier; this.script = script; + this.dataPersists = dataPersists; final File directory = new File(DIRECTORY); if (!directory.exists()) { @@ -170,7 +172,7 @@ public boolean loadData() { } public boolean saveData() { - if (scriptData == null || scriptData.isEmpty() || yaml == null) { + if (!dataPersists || scriptData == null || scriptData.isEmpty() || yaml == null) { return false; } diff --git a/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholdersConfig.java b/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholdersConfig.java index 54e97dcb..850127ee 100644 --- a/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholdersConfig.java +++ b/src/main/java/com/extendedclip/papi/expansion/javascript/JavascriptPlaceholdersConfig.java @@ -170,7 +170,7 @@ public int loadPlaceholders() { continue; } - final JavascriptPlaceholder placeholder = new JavascriptPlaceholder(engine, identifier, script); + final JavascriptPlaceholder placeholder = new JavascriptPlaceholder(engine, identifier, script, (!config.contains(identifier + ".data_persists")) || config.getBoolean(identifier + ".data_persists")); final boolean added = ex.addJSPlaceholder(placeholder); if (added) {