diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index 5b8093283..a5fecf689 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -465,7 +465,7 @@ public abstract class AbstractPackManager implements PackManager { Path configurationFolderPath = pack.configurationFolder(); if (!Files.isDirectory(configurationFolderPath)) continue; try { - Files.walkFileTree(configurationFolderPath, new SimpleFileVisitor<>() { + Files.walkFileTree(configurationFolderPath, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path path, @NotNull BasicFileAttributes attrs) { if (Files.isRegularFile(path) && path.getFileName().toString().endsWith(".yml")) { @@ -632,7 +632,7 @@ public abstract class AbstractPackManager implements PackManager { for (Path namespacePath : FileUtils.collectNamespaces(assetsPath)) { Path fontPath = namespacePath.resolve("font"); if (Files.isDirectory(fontPath)) { - Files.walkFileTree(fontPath, new SimpleFileVisitor<>() { + Files.walkFileTree(fontPath, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path file, @NotNull BasicFileAttributes attrs) throws IOException { if (!isJsonFile(file)) return FileVisitResult.CONTINUE; @@ -658,7 +658,7 @@ public abstract class AbstractPackManager implements PackManager { Path itemsPath = namespacePath.resolve("items"); if (Files.isDirectory(itemsPath)) { - Files.walkFileTree(itemsPath, new SimpleFileVisitor<>() { + Files.walkFileTree(itemsPath, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path file, @NotNull BasicFileAttributes attrs) throws IOException { if (!isJsonFile(file)) return FileVisitResult.CONTINUE; @@ -672,7 +672,7 @@ public abstract class AbstractPackManager implements PackManager { Path blockStatesPath = namespacePath.resolve("blockstates"); if (Files.isDirectory(blockStatesPath)) { - Files.walkFileTree(blockStatesPath, new SimpleFileVisitor<>() { + Files.walkFileTree(blockStatesPath, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path file, @NotNull BasicFileAttributes attrs) throws IOException { if (!isJsonFile(file)) return FileVisitResult.CONTINUE; @@ -1451,7 +1451,7 @@ public abstract class AbstractPackManager implements PackManager { .toList()); for (Path sourceFolder : folders) { if (Files.exists(sourceFolder)) { - Files.walkFileTree(sourceFolder, new SimpleFileVisitor<>() { + Files.walkFileTree(sourceFolder, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path file, @NotNull BasicFileAttributes attrs) throws IOException { processRegularFile(file, attrs, sourceFolder, fs, conflictChecker, previousFiles); @@ -1504,7 +1504,7 @@ public abstract class AbstractPackManager implements PackManager { long zipLastModified = Files.getLastModifiedTime(zipFile).toMillis(); long zipSize = Files.size(zipFile); Path zipRoot = zipFs.getPath("/"); - Files.walkFileTree(zipRoot, new SimpleFileVisitor<>() { + Files.walkFileTree(zipRoot, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path entry, @NotNull BasicFileAttributes entryAttrs) throws IOException { if (entryAttrs.isDirectory()) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java index 6a494b950..041436ec6 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/TranslationManagerImpl.java @@ -23,10 +23,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; -import java.nio.file.FileVisitResult; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.SimpleFileVisitor; +import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -163,7 +160,7 @@ public class TranslationManagerImpl implements TranslationManager { Map previousTranslations = this.cachedTranslations; this.cachedTranslations = new HashMap<>(); try { - Files.walkFileTree(directory, new SimpleFileVisitor<>() { + Files.walkFileTree(directory, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<>() { @Override public @NotNull FileVisitResult visitFile(@NotNull Path path, @NotNull BasicFileAttributes attrs) { String fileName = path.getFileName().toString();