diff --git a/deobfuscator/src/main/java/net/runelite/deob/util/JarUtil.java b/deobfuscator/src/main/java/net/runelite/deob/util/JarUtil.java index 8cd73d50ef..40c77200e7 100644 --- a/deobfuscator/src/main/java/net/runelite/deob/util/JarUtil.java +++ b/deobfuscator/src/main/java/net/runelite/deob/util/JarUtil.java @@ -115,7 +115,7 @@ public class JarUtil return group; } - public static void saveJar(ClassGroup group, File jarfile) throws IOException + public static void saveJar(ClassGroup group, File jarfile) { try (JarOutputStream jout = new JarOutputStream(new FileOutputStream(jarfile))) { @@ -131,6 +131,10 @@ public class JarUtil jout.closeEntry(); } } + catch (IOException e) + { + e.printStackTrace(); + } } public static byte[] writeClass(ClassGroup group, ClassFile cf) diff --git a/injector/src/main/java/com/openosrs/injector/Injector.java b/injector/src/main/java/com/openosrs/injector/Injector.java index 84d1429680..d1b2944c32 100644 --- a/injector/src/main/java/com/openosrs/injector/Injector.java +++ b/injector/src/main/java/com/openosrs/injector/Injector.java @@ -25,7 +25,7 @@ import com.openosrs.injector.rsapi.RSApi; import com.openosrs.injector.transformers.InjectTransformer; import com.openosrs.injector.transformers.SourceChanger; import java.io.File; -import java.io.IOException; +import java.util.Objects; import net.runelite.deob.util.JarUtil; import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; @@ -34,30 +34,28 @@ public class Injector extends InjectData implements InjectTaskHandler { private static final Logger log = Logging.getLogger(Injector.class); - public Injector(File vanilla, File rsclient, File mixins, File[] rsapi) throws IOException - { - super( - JarUtil.loadJar(vanilla), - JarUtil.loadJar(rsclient), - JarUtil.loadJar(mixins), - new RSApi(rsapi) - ); - inject(); - save(new File("../runelite-client/src/main/resources/net/runelite/client/injected-client.oprs")); - } + private static Injector injector; + static File injectedClientOutput = new File("../runelite-client/src/main/resources/net/runelite/client/injected-client.oprs"); public static void main(String[] args) { try { - args = new String[] - { - args[0], - "../runescape-client/build/libs/runescape-client-" + args[1] + ".jar", - "../runelite-mixins/build/libs/runelite-mixins-" + args[1] + ".jar", - "../runescape-api/build/classes/java/main/net/runelite/rs/api/" - }; - new Injector(new File(args[0]), new File(args[1]), new File(args[2]), new File(args[3]).listFiles()); + File vanilla = new File(args[0]); + File rsClient = new File("../runescape-client/build/libs/runescape-client-" + args[1] + ".jar"); + File mixins = new File("../runelite-mixins/build/libs/runelite-mixins-" + args[1] + ".jar"); + RSApi rsApi = new RSApi(Objects.requireNonNull( + new File("../runescape-api/build/classes/java/main/net/runelite/rs/api/") + .listFiles())); + + injector = new Injector(); + injector.vanilla = JarUtil.loadJar(vanilla); + injector.deobfuscated = JarUtil.loadJar(rsClient); + injector.rsApi = rsApi; + injector.mixins = JarUtil.loadJar(mixins); + injector.initToVanilla(); + injector.inject(); + save(injectedClientOutput); } catch (Exception e) { @@ -106,11 +104,11 @@ public class Injector extends InjectData implements InjectTaskHandler transform(new SourceChanger(this)); } - public void save(File outputJar) throws IOException + public static void save(File outputJar) { log.info("[INFO] Saving jar to {}", outputJar.toString()); - JarUtil.saveJar(this.getVanilla(), outputJar); + JarUtil.saveJar(injector.getVanilla(), outputJar); } private void inject(com.openosrs.injector.injectors.Injector injector) diff --git a/injector/src/main/java/com/openosrs/injector/injection/InjectData.java b/injector/src/main/java/com/openosrs/injector/injection/InjectData.java index 28c763aec0..b201d83c06 100644 --- a/injector/src/main/java/com/openosrs/injector/injection/InjectData.java +++ b/injector/src/main/java/com/openosrs/injector/injection/InjectData.java @@ -31,21 +31,21 @@ public abstract class InjectData public static final String CALLBACKS = "net/runelite/api/hooks/Callbacks"; @Getter - private final ClassGroup vanilla; + public ClassGroup vanilla; @Getter - private final ClassGroup deobfuscated; + public ClassGroup deobfuscated; @Getter - private final ClassGroup mixins; + public ClassGroup mixins; @Getter - private final RSApi rsApi; + public RSApi rsApi; /** * Deobfuscated ClassFiles -> Vanilla ClassFiles */ - private final Map toVanilla; + public Map toVanilla; /** * Strings -> Deobfuscated ClassFiles @@ -55,18 +55,9 @@ public abstract class InjectData */ private final Map toDeob = new HashMap<>(); - public InjectData(ClassGroup vanilla, ClassGroup deobfuscated, ClassGroup mixins, RSApi rsApi) - { - this.vanilla = vanilla; - this.deobfuscated = deobfuscated; - this.rsApi = rsApi; - this.mixins = mixins; - this.toVanilla = initToVanilla(); - } - public abstract void runChildInjector(Injector injector); - private Map initToVanilla() + public void initToVanilla() { ImmutableMap.Builder toVanillaB = ImmutableMap.builder(); @@ -88,7 +79,7 @@ public abstract class InjectData } } - return toVanillaB.build(); + this.toVanilla = toVanillaB.build(); } /** diff --git a/injector/src/main/java/com/openosrs/injector/injection/InjectTaskHandler.java b/injector/src/main/java/com/openosrs/injector/injection/InjectTaskHandler.java index 4f7fad4586..e6a309822f 100644 --- a/injector/src/main/java/com/openosrs/injector/injection/InjectTaskHandler.java +++ b/injector/src/main/java/com/openosrs/injector/injection/InjectTaskHandler.java @@ -7,9 +7,6 @@ */ package com.openosrs.injector.injection; -import java.io.File; -import java.io.IOException; - /** * Interface containing all the methods gradle needs to know about */ @@ -19,9 +16,4 @@ public interface InjectTaskHandler * The actual method that does all the work */ void inject(); - - /** - * Call this to save the injected jar to outputJar - */ - void save(File outputJar) throws IOException; }