Skip to content

Commit c69c7dd

Browse files
authored
Merge pull request #9 from agentdid127/master
v0.0.3
2 parents 64973b3 + 42b8d19 commit c69c7dd

File tree

6 files changed

+200
-4
lines changed

6 files changed

+200
-4
lines changed

bedrock-conversion/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<parent>
1212
<artifactId>RPC-Bedrock</artifactId>
1313
<groupId>com.agentdid127.resourcepack</groupId>
14-
<version>0.0.2</version>
14+
<version>0.0.3</version>
1515
</parent>
1616

1717
</project>

bedrock-conversion/src/main/java/com/agentdid127/resourcepack/bedrock/BedrockPackConverter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.agentdid127.resourcepack.bedrock.impl.PackMetaConverter;
55
import com.agentdid127.resourcepack.bedrock.impl.NameConverter;
66
import com.agentdid127.resourcepack.bedrock.impl.PackPngConverter;
7+
import com.agentdid127.resourcepack.bedrock.pack.BPack;
78
import com.agentdid127.resourcepack.library.Converter;
89
import com.agentdid127.resourcepack.library.PackConverter;
910
import com.agentdid127.resourcepack.library.Util;
@@ -43,6 +44,7 @@ protected void converterRunner() {
4344

4445
public void runPack(Pack pack) {
4546
try {
47+
System.out.println(pack.getClass());
4648
log("Converting " + pack);
4749

4850
pack.getHandler().setup();
@@ -63,7 +65,7 @@ public void runPack(Pack pack) {
6365

6466
public void runDir() throws IOException {
6567
Files.list(INPUT_DIR)
66-
.map(Pack::parse)
68+
.map(BPack::parse)
6769
.filter(Objects::nonNull)
6870
.forEach(pack -> {
6971
runPack(pack);
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package com.agentdid127.resourcepack.bedrock.pack;
2+
3+
import com.agentdid127.resourcepack.library.PackConverter;
4+
import com.agentdid127.resourcepack.library.Util;
5+
import com.agentdid127.resourcepack.library.pack.Pack;
6+
import net.lingala.zip4j.ZipFile;
7+
import net.lingala.zip4j.exception.ZipException;
8+
import net.lingala.zip4j.model.ZipParameters;
9+
10+
import java.io.IOException;
11+
import java.nio.file.Path;
12+
13+
public class BPack extends Pack {
14+
15+
public BPack(Path path) {
16+
super(path);
17+
}
18+
19+
@Override
20+
public BPack.Handler createHandler() {
21+
return new BPack.Handler(this);
22+
}
23+
24+
@Override
25+
public String getFileName() {
26+
return path.getFileName().toString().substring(0, path.getFileName().toString().length() - 4);
27+
}
28+
29+
/**
30+
* Checks the type of pack it is.
31+
* @param path
32+
* @return
33+
*/
34+
public static Pack parse(Path path) {
35+
if (!path.toString().contains(CONVERTED_SUFFIX)) {
36+
if (path.toFile().isDirectory() && path.resolve("pack.mcmeta").toFile().exists()) {
37+
return new BPack(path);
38+
} else if (path.toString().endsWith(".zip")) {
39+
return new BZipPack(path);
40+
}
41+
}
42+
return null;
43+
}
44+
45+
public static class Handler extends Pack.Handler {
46+
47+
public Handler(Pack pack) {
48+
super(pack);
49+
}
50+
51+
public Path getConvertedZipPath() {
52+
return pack.getWorkingPath().getParent().resolve(pack.getWorkingPath().getFileName() + ".zip");
53+
}
54+
55+
/**
56+
* Runs after program is finished. Zips directory.
57+
* @throws IOException
58+
*/
59+
@Override
60+
public void finish() throws IOException {
61+
try {
62+
PackConverter.log(" Zipping working directory");
63+
ZipFile zipFile = new ZipFile(getConvertedZipPath().toFile());
64+
ZipParameters parameters = new ZipParameters();
65+
parameters.setIncludeRootFolder(false);
66+
zipFile.createSplitZipFileFromFolder(pack.getWorkingPath().toFile(), parameters, false, 65536);
67+
Util.renameFile(getConvertedZipPath(), pack.getWorkingPath().getFileName() + ".mcpack");
68+
} catch (ZipException e) {
69+
Util.propagate(e);
70+
}
71+
72+
PackConverter.log(" Deleting working directory");
73+
Util.deleteDirectoryAndContents(pack.getWorkingPath());
74+
}
75+
76+
@Override
77+
public String toString() {
78+
return "Handler{} " + super.toString();
79+
}
80+
}
81+
}
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
package com.agentdid127.resourcepack.bedrock.pack;
2+
3+
import com.agentdid127.resourcepack.library.PackConverter;
4+
import com.agentdid127.resourcepack.library.Util;
5+
import com.agentdid127.resourcepack.library.pack.Pack;
6+
import com.agentdid127.resourcepack.library.utilities.BomDetector;
7+
import net.lingala.zip4j.ZipFile;
8+
import net.lingala.zip4j.exception.ZipException;
9+
import net.lingala.zip4j.model.ZipParameters;
10+
11+
import java.io.IOException;
12+
import java.nio.file.Path;
13+
14+
public class BZipPack extends Pack {
15+
16+
public BZipPack(Path path) {
17+
super(path);
18+
}
19+
20+
@Override
21+
public BZipPack.Handler createHandler() {
22+
return new BZipPack.Handler(this);
23+
}
24+
25+
@Override
26+
public String getFileName() {
27+
return path.getFileName().toString().substring(0, path.getFileName().toString().length() - 4);
28+
}
29+
30+
public static class Handler extends Pack.Handler {
31+
32+
public Handler(Pack pack) {
33+
super(pack);
34+
}
35+
36+
public Path getConvertedZipPath() {
37+
return pack.getWorkingPath().getParent().resolve(pack.getWorkingPath().getFileName() + ".zip");
38+
}
39+
40+
/**
41+
* Removes Existing Conversions and starts new one
42+
* @throws IOException
43+
*/
44+
@Override
45+
public void setup() throws IOException {
46+
if (pack.getWorkingPath().toFile().exists()) {
47+
PackConverter.log(" Deleting existing conversion");
48+
Util.deleteDirectoryAndContents(pack.getWorkingPath());
49+
}
50+
51+
Path convertedZipPath = getConvertedZipPath();
52+
if (convertedZipPath.toFile().exists()) {
53+
PackConverter.log(" Deleting existing conversion zip");
54+
convertedZipPath.toFile().delete();
55+
}
56+
57+
pack.getWorkingPath().toFile().mkdir();
58+
59+
try {
60+
ZipFile zipFile = new ZipFile(pack.getOriginalPath().toFile());
61+
zipFile.extractAll(pack.getWorkingPath().toString());
62+
} catch (ZipException e) {
63+
Util.propagate(e);
64+
}
65+
66+
bomRemover(pack.getWorkingPath());
67+
return;
68+
69+
}
70+
71+
/**
72+
* Runs after program is finished. Zips directory.
73+
* @throws IOException
74+
*/
75+
@Override
76+
public void finish() throws IOException {
77+
try {
78+
PackConverter.log(" Zipping working directory");
79+
ZipFile zipFile = new ZipFile(getConvertedZipPath().toFile());
80+
ZipParameters parameters = new ZipParameters();
81+
parameters.setIncludeRootFolder(false);
82+
zipFile.createSplitZipFileFromFolder(pack.getWorkingPath().toFile(), parameters, false, 65536);
83+
Util.renameFile(getConvertedZipPath(), pack.getWorkingPath().getFileName() + ".mcpack");
84+
} catch (ZipException e) {
85+
Util.propagate(e);
86+
}
87+
88+
PackConverter.log(" Deleting working directory");
89+
Util.deleteDirectoryAndContents(pack.getWorkingPath());
90+
}
91+
92+
static void bomRemover(Path workingPath) throws IOException {
93+
BomDetector bom = new BomDetector(
94+
workingPath.toString(),
95+
".txt", ".json", ".mcmeta", ".properties", ".lang"
96+
);
97+
98+
int count = 0;
99+
for(String file : bom.findBOMs()){
100+
count++;
101+
}
102+
if (count > 0){
103+
PackConverter.log("Removing BOMs from " + count + " files.");
104+
}
105+
bom.removeBOMs();
106+
}
107+
108+
@Override
109+
public String toString() {
110+
return "Handler{} " + super.toString();
111+
}
112+
}
113+
}

console/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<parent>
1111
<artifactId>RPC-Bedrock</artifactId>
1212
<groupId>com.agentdid127.resourcepack</groupId>
13-
<version>0.0.2</version>
13+
<version>0.0.3</version>
1414
</parent>
1515

1616
<dependencies>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.agentdid127.resourcepack</groupId>
88
<artifactId>RPC-Bedrock</artifactId>
9-
<version>0.0.2</version>
9+
<version>0.0.3</version>
1010
<packaging>pom</packaging>
1111
<name>RPC-Bedrock</name>
1212

0 commit comments

Comments
 (0)