mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-25 01:49:30 +00:00
Merge pull request #221 from Catnies/dev-follow-links
修复 Linux 系统下不会步进符号链接读取文件的问题.
This commit is contained in:
@@ -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()) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user