From e033942186a407b2bf2f4727e4c251c43b1f94fd Mon Sep 17 00:00:00 2001 From: Shane Bee Date: Sun, 29 Dec 2024 15:24:05 -0800 Subject: [PATCH] SkriptCommand - fix sending hidden files (#7315) * SkriptCommand - fix sending hidden files * SkriptCommand - fix directory issue * SkriptCommand - only show scripts * SkriptCommand - fix spacing --------- Co-authored-by: Efnilite <35348263+Efnilite@users.noreply.github.com> Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com> --- src/main/java/ch/njol/skript/SkriptCommand.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/SkriptCommand.java b/src/main/java/ch/njol/skript/SkriptCommand.java index 10470f67e06..99d43150869 100644 --- a/src/main/java/ch/njol/skript/SkriptCommand.java +++ b/src/main/java/ch/njol/skript/SkriptCommand.java @@ -35,6 +35,7 @@ import java.io.FileFilter; import java.io.IOException; import java.nio.file.Files; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -457,7 +458,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St ScriptLoader.getDisabledScripts().stream() .flatMap(file -> { if (file.isDirectory()) { - return Arrays.stream(file.listFiles()); + return getSubFiles(file).stream(); } return Arrays.stream(new File[]{file}); }) @@ -479,6 +480,20 @@ public boolean onCommand(CommandSender sender, Command command, String label, St private static final ArgsMessage m_invalid_script = new ArgsMessage(CONFIG_NODE + ".invalid script"); private static final ArgsMessage m_invalid_folder = new ArgsMessage(CONFIG_NODE + ".invalid folder"); + private static List getSubFiles(File file) { + List files = new ArrayList<>(); + if (file.isDirectory()) { + for (File listFile : file.listFiles(f -> !f.isHidden())) { + if (listFile.isDirectory()) { + files.addAll(getSubFiles(listFile)); + } else if (listFile.getName().endsWith(".sk")) { + files.add(listFile); + } + } + } + return files; + } + private static @Nullable File getScriptFromArgs(CommandSender sender, String[] args) { return getScriptFromArgs(sender, args, Skript.getInstance().getScriptsFolder()); }