diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index 5c3cd50611..5c4497385f 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -44,6 +44,7 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.cert.X509Certificate; import java.util.Locale; +import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.stream.Stream; import javax.annotation.Nullable; @@ -145,6 +146,10 @@ public class RuneLite @Nullable private Client client; + @Inject + @Nullable + private RuntimeConfig runtimeConfig; + public static void main(String[] args) throws Exception { Locale.setDefault(Locale.ENGLISH); @@ -287,6 +292,8 @@ public class RuneLite injector.injectMembers(client); } + setupSystemProps(); + // Start the applet if (applet != null) { @@ -514,4 +521,19 @@ public class RuneLite log.warn("unable to copy jagexcache", e); } } + + private void setupSystemProps() + { + if (runtimeConfig == null || runtimeConfig.getSysProps() == null) + { + return; + } + + for (Map.Entry entry : runtimeConfig.getSysProps().entrySet()) + { + String key = entry.getKey(), value = entry.getValue(); + log.debug("Setting property {}={}", key, value); + System.setProperty(key, value); + } + } } diff --git a/runelite-client/src/main/java/net/runelite/client/RuntimeConfig.java b/runelite-client/src/main/java/net/runelite/client/RuntimeConfig.java index 5d3fb80d94..0d41a3573c 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuntimeConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/RuntimeConfig.java @@ -32,4 +32,5 @@ import lombok.Data; public class RuntimeConfig { private Map props = Collections.emptyMap(); + private Map sysProps = Collections.emptyMap(); } \ No newline at end of file