From be6e93597ad83a632c63d2900b2d48b627a0ede4 Mon Sep 17 00:00:00 2001 From: sovde <10354869+sovdeeth@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:21:18 +0100 Subject: [PATCH 1/4] Update ExprScripts.java --- src/main/java/ch/njol/skript/expressions/ExprScripts.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprScripts.java b/src/main/java/ch/njol/skript/expressions/ExprScripts.java index 1300216bf9a..45c905021c8 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprScripts.java +++ b/src/main/java/ch/njol/skript/expressions/ExprScripts.java @@ -88,7 +88,12 @@ protected String[] get(Event event) { @SuppressWarnings("null") private String[] formatFiles(List files) { return files.stream() - .map(f -> noPaths ? f.getName() : f.getPath().replaceFirst(Pattern.quote(SCRIPTS_PATH), "")) + .map(f -> { + if (noPaths) + return f.getName(); + String[] split = f.getPath().split(Pattern.quote(SCRIPTS_PATH), 2); + return split[split.length - 1]; + }) .toArray(String[]::new); } From 8e29e4dee43dc3e2e8ccafc574b8714e33c2d9fa Mon Sep 17 00:00:00 2001 From: sovde <10354869+sovdeeth@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:52:55 +0100 Subject: [PATCH 2/4] Use Paths instead of Files --- .../java/ch/njol/skript/ScriptLoader.java | 11 ++++++++ .../njol/skript/expressions/ExprScripts.java | 28 +++++++++---------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/main/java/ch/njol/skript/ScriptLoader.java b/src/main/java/ch/njol/skript/ScriptLoader.java index 3fa8c855c32..0195b295af6 100644 --- a/src/main/java/ch/njol/skript/ScriptLoader.java +++ b/src/main/java/ch/njol/skript/ScriptLoader.java @@ -1007,6 +1007,17 @@ public static Set getDisabledScripts() { return Collections.unmodifiableSet(new HashSet<>(disabledScripts)); } + /** + * @return An unmodifiable set containing a snapshot of the currently disabled scripts as Paths. + */ + public static Set getDisabledScriptPaths() { + return Collections.unmodifiableSet( + disabledScripts.stream() + .map(File::toPath) + .collect(Collectors.toSet()) + ); + } + /** * @return A FileFilter defining the naming conditions of a loaded script. */ diff --git a/src/main/java/ch/njol/skript/expressions/ExprScripts.java b/src/main/java/ch/njol/skript/expressions/ExprScripts.java index 45c905021c8..bcae29f062e 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprScripts.java +++ b/src/main/java/ch/njol/skript/expressions/ExprScripts.java @@ -32,6 +32,7 @@ import ch.njol.util.Kleenean; import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; @@ -54,12 +55,12 @@ public class ExprScripts extends SimpleExpression { static { Skript.registerExpression(ExprScripts.class, String.class, ExpressionType.SIMPLE, - "[all [of the]] scripts [(1:without ([subdirectory] paths|parents))]", - "[all [of the]] (enabled|loaded) scripts [(1:without ([subdirectory] paths|parents))]", - "[all [of the]] (disabled|unloaded) scripts [(1:without ([subdirectory] paths|parents))]"); + "[all [of the]] scripts [1:without ([subdirectory] paths|parents)]", + "[all [of the]] (enabled|loaded) scripts [1:without ([subdirectory] paths|parents)]", + "[all [of the]] (disabled|unloaded) scripts [1:without ([subdirectory] paths|parents)]"); } - private static final String SCRIPTS_PATH = new File(Skript.getInstance().getDataFolder(), Skript.SCRIPTSFOLDER).getPath() + File.separator; + private static final Path SCRIPTS_PATH = Skript.getInstance().getScriptsFolder().getAbsoluteFile().toPath(); private boolean includeEnabled; private boolean includeDisabled; @@ -75,24 +76,23 @@ public boolean init(Expression[] exprs, int matchedPattern, Kleenean isDelaye @Override protected String[] get(Event event) { - List scripts = new ArrayList<>(); + List scripts = new ArrayList<>(); if (includeEnabled) { for (Script script : ScriptLoader.getLoadedScripts()) - scripts.add(script.getConfig().getFile()); + scripts.add(script.getConfig().getPath()); } if (includeDisabled) - scripts.addAll(ScriptLoader.getDisabledScripts()); - return formatFiles(scripts); + scripts.addAll(ScriptLoader.getDisabledScriptPaths()); + return formatPaths(scripts); } @SuppressWarnings("null") - private String[] formatFiles(List files) { - return files.stream() - .map(f -> { + private String[] formatPaths(List paths) { + return paths.stream() + .map(path -> { if (noPaths) - return f.getName(); - String[] split = f.getPath().split(Pattern.quote(SCRIPTS_PATH), 2); - return split[split.length - 1]; + return path.getFileName(); + return SCRIPTS_PATH.relativize(path.toAbsolutePath()).toString(); }) .toArray(String[]::new); } From 5b15c4d1b80b58ae792f51e55e57ec366aa98d3f Mon Sep 17 00:00:00 2001 From: sovde <10354869+sovdeeth@users.noreply.github.com> Date: Thu, 1 Feb 2024 17:01:02 +0100 Subject: [PATCH 3/4] requested change --- src/main/java/ch/njol/skript/ScriptLoader.java | 11 ----------- .../java/ch/njol/skript/expressions/ExprScripts.java | 7 ++++++- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/main/java/ch/njol/skript/ScriptLoader.java b/src/main/java/ch/njol/skript/ScriptLoader.java index 0195b295af6..3fa8c855c32 100644 --- a/src/main/java/ch/njol/skript/ScriptLoader.java +++ b/src/main/java/ch/njol/skript/ScriptLoader.java @@ -1007,17 +1007,6 @@ public static Set getDisabledScripts() { return Collections.unmodifiableSet(new HashSet<>(disabledScripts)); } - /** - * @return An unmodifiable set containing a snapshot of the currently disabled scripts as Paths. - */ - public static Set getDisabledScriptPaths() { - return Collections.unmodifiableSet( - disabledScripts.stream() - .map(File::toPath) - .collect(Collectors.toSet()) - ); - } - /** * @return A FileFilter defining the naming conditions of a loaded script. */ diff --git a/src/main/java/ch/njol/skript/expressions/ExprScripts.java b/src/main/java/ch/njol/skript/expressions/ExprScripts.java index bcae29f062e..6d32f34b2d1 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprScripts.java +++ b/src/main/java/ch/njol/skript/expressions/ExprScripts.java @@ -34,8 +34,10 @@ import java.io.File; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.regex.Pattern; +import java.util.stream.Collectors; import org.bukkit.event.Event; @@ -82,7 +84,10 @@ protected String[] get(Event event) { scripts.add(script.getConfig().getPath()); } if (includeDisabled) - scripts.addAll(ScriptLoader.getDisabledScriptPaths()); + scripts.addAll(ScriptLoader.getDisabledScripts() + .stream() + .map(File::toPath) + .collect(Collectors.toList())); return formatPaths(scripts); } From 18d1022955cc12f611f5a3be3519d9096ca12979 Mon Sep 17 00:00:00 2001 From: Patrick Miller Date: Thu, 1 Feb 2024 16:28:44 -0500 Subject: [PATCH 4/4] Standardize patterns --- src/main/java/ch/njol/skript/expressions/ExprScripts.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprScripts.java b/src/main/java/ch/njol/skript/expressions/ExprScripts.java index 6d32f34b2d1..331ac108014 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprScripts.java +++ b/src/main/java/ch/njol/skript/expressions/ExprScripts.java @@ -57,9 +57,9 @@ public class ExprScripts extends SimpleExpression { static { Skript.registerExpression(ExprScripts.class, String.class, ExpressionType.SIMPLE, - "[all [of the]] scripts [1:without ([subdirectory] paths|parents)]", - "[all [of the]] (enabled|loaded) scripts [1:without ([subdirectory] paths|parents)]", - "[all [of the]] (disabled|unloaded) scripts [1:without ([subdirectory] paths|parents)]"); + "[all [of the]|the] scripts [1:without ([subdirectory] paths|parents)]", + "[all [of the]|the] (enabled|loaded) scripts [1:without ([subdirectory] paths|parents)]", + "[all [of the]|the] (disabled|unloaded) scripts [1:without ([subdirectory] paths|parents)]"); } private static final Path SCRIPTS_PATH = Skript.getInstance().getScriptsFolder().getAbsoluteFile().toPath();