From 21bff24936d478804b5dca31a49c993dcca7c36e Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Sat, 12 Jun 2021 17:51:28 +0100 Subject: [PATCH] client: fix load when outdated --- .../main/java/net/runelite/client/RuneLite.java | 9 +++++---- .../net/runelite/client/game/WorldService.java | 2 +- .../client/plugins/OPRSExternalPluginManager.java | 8 ++++++++ .../client/plugins/openosrs/OpenOSRSPlugin.java | 14 ++++++++++++-- 4 files changed, 26 insertions(+), 7 deletions(-) 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 f7b2bc9fec..710598356f 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -351,6 +351,7 @@ public class RuneLite oprsExternalPluginManager.setupInstance(); oprsExternalPluginManager.startExternalUpdateManager(); oprsExternalPluginManager.startExternalPluginManager(); + oprsExternalPluginManager.setOutdated(isOutdated); // Update external plugins oprsExternalPluginManager.update(); //TODO: Re-enable after fixing actions for new repo @@ -400,6 +401,10 @@ public class RuneLite // legacy method, i cant figure out how to make it work without garbage eventBus.register(xpDropManager.get()); + + //Set the world if specified via CLI args - will not work until clientUI.init is called + Optional worldArg = Optional.ofNullable(System.getProperty("cli.world")).map(Integer::parseInt); + worldArg.ifPresent(this::setWorld); } // Start plugins @@ -408,10 +413,6 @@ public class RuneLite SplashScreen.stop(); clientUI.show(); - - //Set the world if specified via CLI args - will not work until clientUI.init is called - Optional worldArg = Optional.ofNullable(System.getProperty("cli.world")).map(Integer::parseInt); - worldArg.ifPresent(this::setWorld); } @VisibleForTesting diff --git a/runelite-client/src/main/java/net/runelite/client/game/WorldService.java b/runelite-client/src/main/java/net/runelite/client/game/WorldService.java index 4cc102016d..8f2a6a691b 100644 --- a/runelite-client/src/main/java/net/runelite/client/game/WorldService.java +++ b/runelite-client/src/main/java/net/runelite/client/game/WorldService.java @@ -60,7 +60,7 @@ public class WorldService private WorldResult worlds; @Inject - private WorldService(Client client, ScheduledExecutorService scheduledExecutorService, OkHttpClient okHttpClient, + private WorldService(@Nullable Client client, ScheduledExecutorService scheduledExecutorService, OkHttpClient okHttpClient, EventBus eventBus) { this.client = client; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/OPRSExternalPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/OPRSExternalPluginManager.java index 1b2532021b..e8cbf2d979 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/OPRSExternalPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/OPRSExternalPluginManager.java @@ -71,6 +71,7 @@ import javax.inject.Singleton; import javax.swing.JOptionPane; import lombok.AccessLevel; import lombok.Getter; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import net.runelite.client.RuneLite; import net.runelite.client.config.Config; @@ -127,6 +128,8 @@ public class OPRSExternalPluginManager @Inject @Named("safeMode") private boolean safeMode; + @Setter + boolean isOutdated; public void setupInstance() { @@ -456,6 +459,11 @@ public class OPRSExternalPluginManager continue; } + if (!pluginDescriptor.loadWhenOutdated() && isOutdated) + { + continue; + } + if (safeMode && !pluginDescriptor.loadInSafeMode()) { log.debug("Disabling {} due to safe mode", clazz); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/OpenOSRSPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/OpenOSRSPlugin.java index fcca577c35..a6f53666cb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/OpenOSRSPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/OpenOSRSPlugin.java @@ -28,8 +28,8 @@ package net.runelite.client.plugins.openosrs; import ch.qos.logback.classic.Logger; import com.openosrs.client.config.OpenOSRSConfig; -import net.runelite.client.plugins.openosrs.externals.ExternalPluginManagerPanel; import java.awt.image.BufferedImage; +import javax.annotation.Nullable; import javax.inject.Inject; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; @@ -40,6 +40,7 @@ import net.runelite.client.events.ConfigChanged; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.openosrs.externals.ExternalPluginManagerPanel; import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.HotkeyListener; @@ -61,6 +62,7 @@ public class OpenOSRSPlugin extends Plugin @Inject private KeyManager keyManager; + @Nullable @Inject private Client client; @@ -89,6 +91,11 @@ public class OpenOSRSPlugin extends Plugin @Override protected void startUp() { + if (client == null) + { + return; + } + ExternalPluginManagerPanel panel = injector.getInstance(ExternalPluginManagerPanel.class); final BufferedImage icon = ImageUtil.loadImageResource(getClass(), "externalmanager_icon.png"); @@ -108,7 +115,10 @@ public class OpenOSRSPlugin extends Plugin @Override protected void shutDown() { - clientToolbar.removeNavigation(navButton); + if (navButton != null) + { + clientToolbar.removeNavigation(navButton); + } } @Subscribe