diff --git a/src/main/java/net/runelite/client/ArtifactResolver.java b/src/main/java/net/runelite/client/ArtifactResolver.java index 1ba48130e9..47a4927cf8 100644 --- a/src/main/java/net/runelite/client/ArtifactResolver.java +++ b/src/main/java/net/runelite/client/ArtifactResolver.java @@ -60,7 +60,6 @@ public class ArtifactResolver LocalRepository localRepo = new LocalRepository(repositoryCache.getAbsolutePath()); session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo)); - session.setUpdatePolicy(RepositoryPolicy.UPDATE_POLICY_ALWAYS); // this causes a refetch of maven-metadata.xml, but not any binaries //session.setTransferListener(new ConsoleTransferListener()); //session.setRepositoryListener(new ConsoleRepositoryListener()); @@ -99,7 +98,9 @@ public class ArtifactResolver public RemoteRepository newRuneliteRepository() { - return new RemoteRepository.Builder("runelite", "default", "http://repo.runelite.net/").build(); + return new RemoteRepository.Builder("runelite", "default", "http://repo.runelite.net/") + .setPolicy(new RepositoryPolicy(true, RepositoryPolicy.UPDATE_POLICY_ALWAYS, RepositoryPolicy.CHECKSUM_POLICY_FAIL)) + .build(); } private void validate(List artifacts) diff --git a/src/main/java/net/runelite/client/ClientLoader.java b/src/main/java/net/runelite/client/ClientLoader.java index cbe03338fa..082bbdb155 100644 --- a/src/main/java/net/runelite/client/ClientLoader.java +++ b/src/main/java/net/runelite/client/ClientLoader.java @@ -15,9 +15,13 @@ import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.resolution.ArtifactResult; import org.eclipse.aether.resolution.DependencyResolutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ClientLoader { + private static final Logger logger = LoggerFactory.getLogger(ClientLoader.class); + private static final String CLIENT_ARTIFACT_URL = "https://static.runelite.net/client.json"; public Applet load() throws MalformedURLException, ClassNotFoundException, IOException, InstantiationException, IllegalAccessException, DependencyResolutionException @@ -26,9 +30,18 @@ public class ClientLoader config.fetch(); - // the only thing resolved here is the injected client, which has no dependencies, so no need to switch developer mode - ArtifactResolver resolver = new ArtifactResolver(RuneLite.REPO_DIR); - resolver.addRepositories(); + ArtifactResolver resolver; + if (!RuneLite.getOptions().has("developer-mode")) + { + resolver = new ArtifactResolver(RuneLite.REPO_DIR); + resolver.addRepositories(); + } + else + { + resolver = new ArtifactResolver(new File(System.getProperty("user.home"), ".m2/repository")); + + logger.info("In developer mode, not fetching updates for client"); + } List results = resolver.resolveArtifacts(getClientArtifact()); File client = results.get(0).getArtifact().getFile(); diff --git a/src/main/java/net/runelite/client/RuneLite.java b/src/main/java/net/runelite/client/RuneLite.java index 1876db9c93..b737cb1b1f 100644 --- a/src/main/java/net/runelite/client/RuneLite.java +++ b/src/main/java/net/runelite/client/RuneLite.java @@ -14,7 +14,7 @@ public class RuneLite public static final File RUNELITE_DIR = new File(System.getProperty("user.home"), ".runelite"); public static final File REPO_DIR = new File(RUNELITE_DIR, "repository"); - public static OptionSet options; + private static OptionSet options; private static Client client; private static RuneLite runelite; @@ -67,4 +67,9 @@ public class RuneLite { return renderer; } + + public static OptionSet getOptions() + { + return options; + } }