9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-25 09:59:20 +00:00

修复 Linux 系统下不会步进符号链接读取文件的问题.

This commit is contained in:
Catnies
2025-06-13 08:55:29 +08:00
parent ade7a75631
commit 65f2ab7ab8
2 changed files with 8 additions and 11 deletions

View File

@@ -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()) {

View File

@@ -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<String, CachedTranslation> 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();