gradle: injected-client things
Move injector goal to injected-client(ish) Keep injected-client classes in the correct package Remove placeholder class/duplicate vanilla jar
This commit is contained in:
@@ -58,7 +58,6 @@ import net.runelite.client.game.chatbox.ChatboxPanelManager;
|
||||
import net.runelite.client.graphics.ModelOutlineRenderer;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
import net.runelite.client.plugins.PluginManager;
|
||||
import net.runelite.client.rs.ClientLoader;
|
||||
import net.runelite.client.rs.ClientUpdateCheckMode;
|
||||
import net.runelite.client.task.Scheduler;
|
||||
import net.runelite.client.ui.ClientUI;
|
||||
@@ -179,8 +178,8 @@ public class RuneLite
|
||||
parser.accepts("developer-mode", "Enable developer tools");
|
||||
parser.accepts("debug", "Show extra debugging output");
|
||||
parser.accepts("no-splash", "Do not show the splash screen");
|
||||
parser.accepts("local-injected", "Use local injected-client");
|
||||
parser.accepts("private-server", "Use a custom codebase");
|
||||
parser.accepts("local-injected", "Use local injected-client - DEPRECATED");
|
||||
parser.accepts("private-server", "Use a custom codebase - DEPRECATED: Use --rs=RSPS");
|
||||
|
||||
final ArgumentAcceptingOptionSpec<String> proxyInfo = parser
|
||||
.accepts("proxy")
|
||||
@@ -261,7 +260,7 @@ public class RuneLite
|
||||
|
||||
if (options.has("local-injected"))
|
||||
{
|
||||
ClientLoader.useLocalInjected = true;
|
||||
log.warn("--local-injected has been deprecated and may get removed soon");
|
||||
}
|
||||
|
||||
if (options.has("private-server"))
|
||||
|
||||
@@ -26,23 +26,19 @@
|
||||
*/
|
||||
package net.runelite.client.rs;
|
||||
|
||||
import com.google.common.io.ByteStreams;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.net.URLClassLoader;
|
||||
import java.applet.Applet;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import java.applet.Applet;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Singleton
|
||||
public class ClientLoader
|
||||
{
|
||||
public static boolean useLocalInjected = false;
|
||||
private final ClientConfigLoader clientConfigLoader;
|
||||
private final ClientUpdateCheckMode updateCheckMode;
|
||||
|
||||
@@ -55,60 +51,6 @@ public class ClientLoader
|
||||
this.clientConfigLoader = clientConfigLoader;
|
||||
}
|
||||
|
||||
private static Applet loadRLPlus(final RSConfig config)
|
||||
throws ClassNotFoundException, InstantiationException, IllegalAccessException
|
||||
{
|
||||
ClassLoader rsClassLoader = new ClassLoader(ClientLoader.class.getClassLoader())
|
||||
{
|
||||
@Override
|
||||
protected Class<?> findClass(String name) throws ClassNotFoundException
|
||||
{
|
||||
String path = "/injected-client/".concat(name.replace('.', '/')).concat(".class");
|
||||
InputStream inputStream = ClientLoader.class.getResourceAsStream(path);
|
||||
if (inputStream == null)
|
||||
{
|
||||
throw new ClassNotFoundException(name + " " + path);
|
||||
}
|
||||
byte[] data;
|
||||
try
|
||||
{
|
||||
data = ByteStreams.toByteArray(inputStream);
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("Failed to load class: " + name + " " + path);
|
||||
}
|
||||
return defineClass(name, data, 0, data.length);
|
||||
}
|
||||
};
|
||||
Class<?> clientClass = rsClassLoader.loadClass("client");
|
||||
return loadFromClass(config, clientClass);
|
||||
}
|
||||
|
||||
private static Applet loadVanilla(final RSConfig config)
|
||||
throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException
|
||||
{
|
||||
final String codebase = config.getCodeBase();
|
||||
final String initialJar = config.getInitialJar();
|
||||
final String initialClass = config.getInitialClass();
|
||||
final URL url = new URL(codebase + initialJar);
|
||||
|
||||
// Must set parent classloader to null, or it will pull from
|
||||
// this class's classloader first
|
||||
final URLClassLoader classloader = new URLClassLoader(new URL[]{url}, null);
|
||||
final Class<?> clientClass = classloader.loadClass(initialClass);
|
||||
return loadFromClass(config, clientClass);
|
||||
}
|
||||
|
||||
private static Applet loadFromClass(final RSConfig config, final Class<?> clientClass)
|
||||
throws IllegalAccessException, InstantiationException
|
||||
{
|
||||
final Applet rs = (Applet) clientClass.newInstance();
|
||||
rs.setStub(new RSAppletStub(config));
|
||||
return rs;
|
||||
}
|
||||
|
||||
public Applet load()
|
||||
{
|
||||
try
|
||||
@@ -141,4 +83,34 @@ public class ClientLoader
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static Applet loadRLPlus(final RSConfig config)
|
||||
throws ClassNotFoundException, InstantiationException, IllegalAccessException
|
||||
{
|
||||
final Class<?> clientClass = ClientLoader.class.getClassLoader().loadClass(config.getInitialClass());
|
||||
return loadFromClass(config, clientClass);
|
||||
}
|
||||
|
||||
private static Applet loadVanilla(final RSConfig config)
|
||||
throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException
|
||||
{
|
||||
final String codebase = config.getCodeBase();
|
||||
final String initialJar = config.getInitialJar();
|
||||
final String initialClass = config.getInitialClass();
|
||||
final URL url = new URL(codebase + initialJar);
|
||||
|
||||
// Must set parent classloader to null, or it will pull from
|
||||
// this class's classloader first
|
||||
final URLClassLoader classloader = new URLClassLoader(new URL[]{url}, null);
|
||||
final Class<?> clientClass = classloader.loadClass(initialClass);
|
||||
return loadFromClass(config, clientClass);
|
||||
}
|
||||
|
||||
private static Applet loadFromClass(final RSConfig config, final Class<?> clientClass)
|
||||
throws IllegalAccessException, InstantiationException
|
||||
{
|
||||
final Applet rs = (Applet) clientClass.newInstance();
|
||||
rs.setStub(new RSAppletStub(config));
|
||||
return rs;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,5 @@ public enum ClientUpdateCheckMode
|
||||
AUTO,
|
||||
NONE,
|
||||
VANILLA,
|
||||
CUSTOM,
|
||||
PATCH
|
||||
RSPS
|
||||
}
|
||||
|
||||
@@ -56,7 +56,9 @@ class RSAppletStub implements AppletStub
|
||||
try
|
||||
{
|
||||
if (RuneLite.allowPrivateServer)
|
||||
return new URL(StringFileUtils.readStringFromFile("./codebase"));
|
||||
{
|
||||
return new URL(StringFileUtils.readStringFromFile("./codebase"));
|
||||
}
|
||||
|
||||
return new URL(config.getCodeBase());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user