inititial messy commit

This commit is contained in:
Lucwousin
2019-10-28 17:44:44 +01:00
commit a1ae8ac6ae
44 changed files with 5368 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
package com.openosrs.injector;
import com.openosrs.injector.injection.InjectData;
import com.openosrs.injector.injection.InjectTaskHandler;
import com.openosrs.injector.injectors.InjectConstruct;
import com.openosrs.injector.injectors.Injector;
import com.openosrs.injector.injectors.InterfaceInjector;
import com.openosrs.injector.injectors.MixinInjector;
import com.openosrs.injector.injectors.RSApiInjector;
import com.openosrs.injector.injectors.raw.ClearColorBuffer;
import com.openosrs.injector.injectors.raw.DrawAfterWidgets;
import com.openosrs.injector.injectors.raw.HidePlayerAttacks;
import com.openosrs.injector.injectors.raw.Occluder;
import com.openosrs.injector.injectors.raw.RasterizerHook;
import com.openosrs.injector.injectors.raw.RenderDraw;
import com.openosrs.injector.injectors.raw.ScriptVM;
import com.openosrs.injector.rsapi.RSApi;
import java.io.File;
import java.io.IOException;
import net.runelite.deob.util.JarUtil;
import org.gradle.api.file.FileTree;
import org.gradle.api.logging.Logger;
import org.gradle.api.logging.Logging;
public class Injection extends InjectData implements InjectTaskHandler
{
private static final Logger log = Logging.getLogger(Injection.class);
public Injection(File vanilla, FileTree rsclient, FileTree rsapi, FileTree mixins) throws Injexception, IOException
{
super(
JarUtil.loadJar(vanilla),
JarUtil.loadClasses(rsclient.getFiles()),
JarUtil.loadClasses(mixins.getFiles()),
new RSApi(rsapi)
);
}
public void inject() throws Injexception
{
log.debug("Starting injection");
inject(new InterfaceInjector(this));
inject(new RasterizerHook(this));
inject(new MixinInjector(this));
// This is where field hooks runs
// This is where method hooks runs
inject(new InjectConstruct(this));
inject(new RSApiInjector(this));
inject(new DrawAfterWidgets(this));
inject(new ScriptVM(this));
// All GPU raw injectors should probably be combined, especially RenderDraw and Occluder
inject(new ClearColorBuffer(this));
inject(new RenderDraw(this));
inject(new Occluder(this));
// inject(new DrawMenu(this));
// inject(new HidePlayerAttacks(this));
new RSApiValidator(this).validate();
}
public void save(File outputJar) throws IOException
{
log.info("Saving jar to {}", outputJar.toString());
JarUtil.saveJar(this.getVanilla(), outputJar);
}
private void inject(Injector injector) throws Injexception
{
final String name = injector.getName();
log.info("Starting {}", name);
injector.start();
injector.inject();
log.lifecycle("{} {}", name, injector.getCompletionMsg());
if (!injector.validate())
{
throw new Injexception(String.format("%s failed validation", name));
}
}
public void runChildInjector(Injector injector) throws Injexception
{
inject(injector);
}
}