Skip to content

Commit 1201548

Browse files
committed
Add extra functionality
1 parent 0a369c9 commit 1201548

3 files changed

Lines changed: 54 additions & 35 deletions

File tree

src/main/java/lbq/versionjsons/Main.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ public static void main(String[] args) {
1212
System.out.println("--path [path] - Specifiy jsons output directory");
1313
System.out.println("--wrapperJar [path] - Update json libraries with the new wrapper artifact");
1414
System.out.println("--packToFolders - Copy each json to a folder with the name of the version");
15+
System.out.println("--skipManifest - Skips jsons from manifest");
1516
}
1617
Path dir = null;
1718
Path wrapperJar = null;
1819
boolean packToFolders = false;
20+
boolean skipManifest = false;
1921
for(int i = 0; i < args.length; i++) {
2022
String arg = args[i];
2123
boolean hasNext = i + 1 < args.length;
@@ -28,11 +30,15 @@ public static void main(String[] args) {
2830
if(arg.equals("--packToFolders")) {
2931
packToFolders = true;
3032
}
33+
if(arg.equals("--skipManifest")) {
34+
skipManifest = true;
35+
}
3136
i++;
3237
}
3338
if(dir != null) {
3439
try {
3540
VersionsWriter verWriter = new VersionsWriter(dir, wrapperJar);
41+
if(skipManifest) verWriter.skipManifest();
3642
verWriter.generateJSONs();
3743
if(packToFolders) {
3844
verWriter.packToFolders();

src/main/java/lbq/versionjsons/VersionsWriter.java

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class VersionsWriter {
2020

2121
private final Path versionsDir;
2222
private JSONObject wrapperArtifact;
23+
private boolean skipManifest;
2324

2425
public VersionsWriter(Path dir, Path wrapperJar) {
2526
versionsDir = dir;
@@ -57,43 +58,11 @@ public void generateJSONs() throws IOException {
5758
}
5859
}
5960
List<String> savedJSONs = new ArrayList<>();
60-
JSONArray versions = manifest.getJSONArray("versions");
61-
Files.createDirectories(versionsDir);
62-
for(int i = 0; i < versions.length(); i++) {
63-
JSONObject ver = versions.getJSONObject(i);
64-
URL versionUrl = new URL(ver.getString("url"));
65-
String id = ver.getString("id");
66-
System.out.println(id);
67-
savedJSONs.add(id);
68-
JSONObject version = new JSONObject(new String(Util.readAllBytes(versionUrl.openStream())));
69-
if(!version.has("minecraftArguments")) {
70-
continue;
71-
}
72-
Instant time = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse(version.getString("releaseTime")));
73-
if(time.compareTo(soundLibTime) > 0) {
74-
version.put("libraries", libraries);
75-
} else {
76-
version.put("libraries", librariesNoSoundLib);
77-
}
78-
for(String key : preset.keySet()) {
79-
if(key.equals("libraries")) {
80-
continue;
81-
}
82-
version.put(key, preset.get(key));
83-
}
84-
version.put("minecraftArguments", version.getString("minecraftArguments")
85-
.replace("${auth_player_name} ${auth_session}", "--username ${auth_player_name} --sessionid ${auth_session}"));
86-
try(BufferedWriter writer = Files.newBufferedWriter(versionsDir.resolve(id + ".json"))) {
87-
version.write(writer);
88-
}
89-
}
9061
JSONArray versionsList = Util.parseJSONArray(ClassLoader.getSystemResourceAsStream("versions.json"));
9162
for(int i = 0; i < versionsList.length(); i++) {
9263
JSONObject ver = versionsList.getJSONObject(i);
9364
String id = ver.getString("id");
94-
if(savedJSONs.contains(id)) {
95-
continue;
96-
}
65+
savedJSONs.add(id);
9766
System.out.println(id);
9867
Instant time = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse(ver.getString("releaseTime")));
9968
String clientURL = ver.optString("urlClient", null);
@@ -103,12 +72,46 @@ public void generateJSONs() throws IOException {
10372
version.write(writer);
10473
}
10574
}
75+
if(!skipManifest) {
76+
JSONArray versions = manifest.getJSONArray("versions");
77+
Files.createDirectories(versionsDir);
78+
for(int i = 0; i < versions.length(); i++) {
79+
JSONObject ver = versions.getJSONObject(i);
80+
URL versionUrl = new URL(ver.getString("url"));
81+
String id = ver.getString("id");
82+
if(savedJSONs.contains(id)) {
83+
continue;
84+
}
85+
System.out.println(id);
86+
JSONObject version = Util.parseJSON(versionUrl.openStream());
87+
if(!version.has("minecraftArguments")) {
88+
continue;
89+
}
90+
Instant time = Instant.from(DateTimeFormatter.ISO_DATE_TIME.parse(version.getString("releaseTime")));
91+
if(time.compareTo(soundLibTime) > 0) {
92+
version.put("libraries", libraries);
93+
} else {
94+
version.put("libraries", librariesNoSoundLib);
95+
}
96+
for(String key : preset.keySet()) {
97+
if(key.equals("libraries")) {
98+
continue;
99+
}
100+
version.put(key, preset.get(key));
101+
}
102+
version.put("minecraftArguments", version.getString("minecraftArguments")
103+
.replace("${auth_player_name} ${auth_session}", "--username ${auth_player_name} --sessionid ${auth_session}"));
104+
try(BufferedWriter writer = Files.newBufferedWriter(versionsDir.resolve(id + ".json"))) {
105+
version.write(writer);
106+
}
107+
}
108+
}
106109
}
107110

108111
public void packToFolders() throws IOException {
109112
Files.list(versionsDir).forEach(p -> {
110113
String fileName = p.getFileName().toString();
111-
if(!Files.isRegularFile(p) || !p.endsWith(".json")) {
114+
if(!Files.isRegularFile(p) || !fileName.endsWith(".json")) {
112115
return;
113116
}
114117
try {
@@ -171,7 +174,7 @@ public JSONObject createVersionJSON(String id, String clientURL, String serverUR
171174
else if(id.startsWith("b")) {
172175
version.put("type", "old_beta");
173176
}
174-
else if(id.charAt(2) == 'w') {
177+
else if(id.charAt(2) == 'w' || id.equals("1.2")) {
175178
version.put("type", "snapshot");
176179
} else {
177180
version.put("type", "release");
@@ -215,4 +218,8 @@ private static JSONObject getLibraryArtifact(Path path, String url) throws IOExc
215218
}
216219
return obj;
217220
}
221+
222+
public void skipManifest() {
223+
skipManifest = true;
224+
}
218225
}

src/main/resources/versions.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,12 @@
581581
"urlClient": "http://files.betacraft.uk/launcher/assets/versions/c0.0.19a_04.jar",
582582
"urlServer": "http://files.betacraft.uk/server-archive/classic/c1.6.zip"
583583
},
584+
{
585+
"id": "1.2",
586+
"releaseTime": "2012-02-29T00:00:00+00:00",
587+
"urlClient": "https://files.betacraft.uk/launcher/assets/versions/1.2-pre.jar",
588+
"urlServer": "https://files.betacraft.uk/server-archive/release/1.2/prerelease/1.2-pre.jar"
589+
},
584590
{
585591
"id": "1.2.3",
586592
"releaseTime": "2012-03-02T07:36:08+00:00",

0 commit comments

Comments
 (0)