From 52d885782be5d8c452f1357dfb064f2d629d1c2b Mon Sep 17 00:00:00 2001 From: CreepyCre Date: Wed, 29 Apr 2020 21:30:55 +0200 Subject: [PATCH] Add data-persists, which can be set to false to prevent saving Data to file (it will still load) --- .../expansion/javascript/JavascriptExpansionCommands.java | 2 +- .../papi/expansion/javascript/JavascriptPlaceholder.java | 6 ++++-- .../expansion/javascript/JavascriptPlaceholdersConfig.java | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) 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) {