injector: move initialization to main
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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<ClassFile, ClassFile> toVanilla;
|
||||
public Map<ClassFile, ClassFile> toVanilla;
|
||||
|
||||
/**
|
||||
* Strings -> Deobfuscated ClassFiles
|
||||
@@ -55,18 +55,9 @@ public abstract class InjectData
|
||||
*/
|
||||
private final Map<String, ClassFile> 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<ClassFile, ClassFile> initToVanilla()
|
||||
public void initToVanilla()
|
||||
{
|
||||
ImmutableMap.Builder<ClassFile, ClassFile> toVanillaB = ImmutableMap.builder();
|
||||
|
||||
@@ -88,7 +79,7 @@ public abstract class InjectData
|
||||
}
|
||||
}
|
||||
|
||||
return toVanillaB.build();
|
||||
this.toVanilla = toVanillaB.build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user