From eb5a8ad1d0aed6739833b820f02ca60c91e6b05f Mon Sep 17 00:00:00 2001 From: zeruth Date: Fri, 24 May 2019 01:59:05 -0400 Subject: [PATCH] Update ClientLoader.java Completely breaks off of RL's client-patch update schedule. --- .../net/runelite/client/rs/ClientLoader.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java index 4e2eacdd8c..127ef27b23 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java @@ -35,6 +35,7 @@ import io.sigpipe.jbsdiff.Patch; import java.applet.Applet; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -245,6 +246,33 @@ public class ClientLoader } + Map injectedClient = new HashMap<>(); + JarInputStream jis = new JarInputStream(new FileInputStream("./injectedClient.jar")); + + byte[] tmp = new byte[4096]; + ByteArrayOutputStream buffer = new ByteArrayOutputStream(756 * 1024); + for (; ; ) + { + JarEntry metadata = jis.getNextJarEntry(); + if (metadata == null) + { + break; + } + + buffer.reset(); + for (; ; ) + { + int n = jis.read(tmp); + if (n <= -1) + { + break; + } + buffer.write(tmp, 0, n); + } + + injectedClient.put(metadata.getName(), buffer.toByteArray()); + } + String initialClass = config.getInitialClass(); ClassLoader rsClassLoader = new ClassLoader(ClientLoader.class.getClassLoader()) @@ -253,7 +281,7 @@ public class ClientLoader protected Class findClass(String name) throws ClassNotFoundException { String path = name.replace('.', '/').concat(".class"); - byte[] data = zipFile.get(path); + byte[] data = injectedClient.get(path); if (data == null) { throw new ClassNotFoundException(name);