Fix #1938: 正确处理 map_to_resources (#2919)

* Fix #1938: 正确处理 map_to_resources

* fix checkstyle
This commit is contained in:
Glavo
2024-03-12 20:01:30 +08:00
committed by GitHub
parent e08ba4d421
commit 57e728991b
3 changed files with 15 additions and 1 deletions

View File

@@ -164,7 +164,9 @@ public class VersionPage extends DecoratorAnimatedPage implements DecoratorPage
}
private void clearAssets() {
FileUtils.deleteDirectoryQuietly(new File(getProfile().getRepository().getBaseDirectory(), "assets"));
File baseDirectory = getProfile().getRepository().getBaseDirectory();
FileUtils.deleteDirectoryQuietly(new File(baseDirectory, "assets"));
FileUtils.deleteDirectoryQuietly(new File(baseDirectory, "resources"));
}
private void clearJunkFiles() {

View File

@@ -52,6 +52,10 @@ public final class AssetIndex {
return virtual || mapToResources;
}
public boolean needMapToResources() {
return mapToResources;
}
public Map<String, AssetObject> getObjects() {
return Collections.unmodifiableMap(objects);
}

View File

@@ -459,6 +459,8 @@ public class DefaultGameRepository implements GameRepository {
return assetsDir;
if (index.isVirtual()) {
Path resourcesDir = getBaseDirectory().toPath().resolve("resources");
int cnt = 0;
int tot = index.getObjects().entrySet().size();
for (Map.Entry<String, AssetObject> entry : index.getObjects().entrySet()) {
@@ -468,6 +470,12 @@ public class DefaultGameRepository implements GameRepository {
cnt++;
if (!Files.isRegularFile(target))
FileUtils.copyFile(original, target);
if (index.needMapToResources()) {
target = resourcesDir.resolve(entry.getKey());
if (!Files.isRegularFile(target))
FileUtils.copyFile(original, target);
}
}
}