Dont expand out nested jars can be enabled if wanted. Will still strip the jars from the mod json
parent
0206a4c59b
commit
f672b815c4
|
@ -47,6 +47,7 @@ public class LoomGradleExtension {
|
||||||
public String loaderLaunchMethod;
|
public String loaderLaunchMethod;
|
||||||
public boolean remapMod = true;
|
public boolean remapMod = true;
|
||||||
public boolean autoGenIDERuns = true;
|
public boolean autoGenIDERuns = true;
|
||||||
|
public boolean extractJars = false;
|
||||||
|
|
||||||
private List<File> unmappedModsBuilt = new ArrayList<>();
|
private List<File> unmappedModsBuilt = new ArrayList<>();
|
||||||
|
|
||||||
|
|
|
@ -62,12 +62,17 @@ public class ModProcessor {
|
||||||
}
|
}
|
||||||
remapJar(input, output, project);
|
remapJar(input, output, project);
|
||||||
readInstallerJson(input, project);
|
readInstallerJson(input, project);
|
||||||
|
//Enable this if you want your nested jars to be extracted, this will extract **all** jars
|
||||||
|
if(project.getExtensions().getByType(LoomGradleExtension.class).extractJars){
|
||||||
try {
|
try {
|
||||||
handleNestedJars(input, project);
|
handleNestedJars(input, project);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException("Failed to handle nested jar", e);
|
throw new RuntimeException("Failed to handle nested jar", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Always strip the nested jars
|
||||||
|
stripNestedJars(output);
|
||||||
|
}
|
||||||
|
|
||||||
private static void handleNestedJars(File input, Project project) throws IOException {
|
private static void handleNestedJars(File input, Project project) throws IOException {
|
||||||
JarFile jarFile = new JarFile(input);
|
JarFile jarFile = new JarFile(input);
|
||||||
|
@ -112,8 +117,13 @@ public class ModProcessor {
|
||||||
throw new RuntimeException("Failed to find processed nested jar");
|
throw new RuntimeException("Failed to find processed nested jar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add the project right onto the remapped mods, hopefully this works
|
||||||
|
project.getDependencies().add(Constants.COMPILE_MODS_MAPPED, project.files(remappedFile));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void stripNestedJars(File file){
|
||||||
//Strip out all contained jar info as we dont want loader to try and load the jars contained in dev.
|
//Strip out all contained jar info as we dont want loader to try and load the jars contained in dev.
|
||||||
ZipUtil.transformEntries(remappedFile, new ZipEntryTransformerEntry[]{(new ZipEntryTransformerEntry("fabric.mod.json", new StringZipEntryTransformer() {
|
ZipUtil.transformEntries(file, new ZipEntryTransformerEntry[]{(new ZipEntryTransformerEntry("fabric.mod.json", new StringZipEntryTransformer() {
|
||||||
@Override
|
@Override
|
||||||
protected String transform(ZipEntry zipEntry, String input) throws IOException {
|
protected String transform(ZipEntry zipEntry, String input) throws IOException {
|
||||||
JsonObject json = GSON.fromJson(input, JsonObject.class);
|
JsonObject json = GSON.fromJson(input, JsonObject.class);
|
||||||
|
@ -121,9 +131,6 @@ public class ModProcessor {
|
||||||
return GSON.toJson(json);
|
return GSON.toJson(json);
|
||||||
}
|
}
|
||||||
}))});
|
}))});
|
||||||
|
|
||||||
//Add the project right onto the remapped mods, hopefully this works
|
|
||||||
project.getDependencies().add(Constants.COMPILE_MODS_MAPPED, project.files(remappedFile));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void remapJar(File input, File output, Project project){
|
private static void remapJar(File input, File output, Project project){
|
||||||
|
|
Loading…
Reference in New Issue