Skip to content

Commit 0e931dd

Browse files
committed
Fixed: resource pack
1 parent df95223 commit 0e931dd

4 files changed

Lines changed: 33 additions & 13 deletions

File tree

src/main/java/com/zhekasmirnov/horizon/util/FileUtils.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,15 @@ public static void copy(File src, File dst) throws IOException {
133133

134134

135135
public static void copyFileTree(File srcDir, File dstDir, Object dialog, String prefix) throws IOException {
136+
if(srcDir.isFile()) {
137+
copy(srcDir, dstDir);
138+
return;
139+
}
140+
136141
if (!dstDir.isDirectory() && !dstDir.mkdirs()) {
137142
throw new IOException("mkdirs failed: " + dstDir);
138143
}
144+
139145
for (String name : srcDir.list()) {
140146
if (dialog != null) {
141147
return;

src/main/java/com/zhekasmirnov/innercore/mod/build/ModLoader.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ public void startMods() {
115115

116116

117117

118-
private List<File> resourcePackDirs = new ArrayList<>();
119-
private List<File> behaviorPackDirs = new ArrayList<>();
118+
private final List<File> resourcePackDirs = new ArrayList<>();
119+
private final List<File> behaviorPackDirs = new ArrayList<>();
120120

121121
public static void addMinecraftResourcePack(File directory) {
122122
if (!instance.resourcePackDirs.contains(directory)) {
@@ -139,9 +139,7 @@ public static void addGlobalMinecraftPacks() {
139139
DirectorySetRequestHandler globalResourcePacks = ModPackContext.getInstance().getCurrentModPack().getRequestHandler(ModPackDirectory.DirectoryType.RESOURCE_PACKS);
140140
for (String location : globalResourcePacks.getAllLocations()) {
141141
File packDir = globalResourcePacks.get(location);
142-
if (packDir.isDirectory()) {
143-
addMinecraftResourcePack(packDir);
144-
}
142+
addMinecraftResourcePack(packDir);
145143
}
146144

147145
DirectorySetRequestHandler globalBehaviorPacks = ModPackContext.getInstance().getCurrentModPack().getRequestHandler(ModPackDirectory.DirectoryType.BEHAVIOR_PACKS);
@@ -234,7 +232,6 @@ private void loadMinecraftPacksIntoDirectory(MinecraftPackType type, File target
234232
while (target.exists()) {
235233
target = new File(targetDir, target.getName() + "-");
236234
}
237-
target.mkdirs();
238235
try {
239236
FileUtils.copyFileTree(file, target, null, null);
240237
} catch (IOException e) {

src/main/java/com/zhekasmirnov/innercore/modpack/ModPackFactory.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package com.zhekasmirnov.innercore.modpack;
22

33
import com.zhekasmirnov.innercore.modpack.strategy.extract.*;
4-
import com.zhekasmirnov.innercore.modpack.strategy.request.ConfigDirectoryRequestStrategy;
5-
import com.zhekasmirnov.innercore.modpack.strategy.request.ConfigInModDirectoryRequestStrategy;
6-
import com.zhekasmirnov.innercore.modpack.strategy.request.DefaultDirectoryRequestStrategy;
7-
import com.zhekasmirnov.innercore.modpack.strategy.request.DirectoryRequestStrategy;
4+
import com.zhekasmirnov.innercore.modpack.strategy.request.*;
85
import com.zhekasmirnov.innercore.modpack.strategy.update.CacheDirectoryUpdateStrategy;
96
import com.zhekasmirnov.innercore.modpack.strategy.update.DirectoryDeniedUpdateStrategy;
107
import com.zhekasmirnov.innercore.modpack.strategy.update.JsonMergeDirectoryUpdateStrategy;
118
import com.zhekasmirnov.innercore.modpack.strategy.update.ResourceDirectoryUpdateStrategy;
129

1310
import java.io.File;
11+
import java.util.ArrayList;
12+
import java.util.List;
1413

1514
public class ModPackFactory {
1615
private final static ModPackFactory instance = new ModPackFactory();
@@ -37,8 +36,7 @@ public ModPack createFromDirectory(File root) {
3736
"cache", new DefaultDirectoryRequestStrategy(), new CacheDirectoryUpdateStrategy(),
3837
new AllIgnoredDirectoryExtractStrategy()))
3938
.addDirectory(new ModPackDirectory(ModPackDirectory.DirectoryType.RESOURCE_PACKS,
40-
new File(root, "resource_packs"), "resource_packs", new DefaultDirectoryRequestStrategy(),
41-
new ResourceDirectoryUpdateStrategy(), new AllFilesDirectoryExtractStrategy()))
39+
new File(root, "resource_packs"), "resource_packs", new NukkitResourcePackRequestStrategy(), new ResourceDirectoryUpdateStrategy(), new AllFilesDirectoryExtractStrategy()))
4240
.addDirectory(new ModPackDirectory(ModPackDirectory.DirectoryType.BEHAVIOR_PACKS,
4341
new File(root, "behavior_packs"), "behavior_packs", new DefaultDirectoryRequestStrategy(),
4442
new ResourceDirectoryUpdateStrategy(), new AllFilesDirectoryExtractStrategy()))
@@ -69,7 +67,7 @@ public ModPack createDefault(File root) {
6967
.addDirectory(newDefaultPackDirectory(ModPackDirectory.DirectoryType.CACHE, root, "cache",
7068
new DefaultDirectoryRequestStrategy(), new AllIgnoredDirectoryExtractStrategy()))
7169
.addDirectory(newDefaultPackDirectory(ModPackDirectory.DirectoryType.RESOURCE_PACKS, root,
72-
"resource_packs", new DefaultDirectoryRequestStrategy()))
70+
"resource_packs", new NukkitResourcePackRequestStrategy()))
7371
.addDirectory(newDefaultPackDirectory(ModPackDirectory.DirectoryType.BEHAVIOR_PACKS, root,
7472
"behavior_packs", new DefaultDirectoryRequestStrategy()))
7573
.addDirectory(new ModPackDirectory(ModPackDirectory.DirectoryType.TEXTURE_PACKS,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.zhekasmirnov.innercore.modpack.strategy.request;
2+
3+
import java.io.File;
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
7+
public class NukkitResourcePackRequestStrategy extends DefaultDirectoryRequestStrategy {
8+
@Override
9+
public List<String> getAllLocations() {
10+
List<String> result = new ArrayList<>();
11+
File[] files = getAssignedDirectory().getLocation().listFiles();
12+
if (files != null) {
13+
for (File file : files) {
14+
result.add(file.getName());
15+
}
16+
}
17+
return result;
18+
}
19+
}

0 commit comments

Comments
 (0)