From 8ea338dace6745f60e90cd3e7038d580d3bbc79e Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Fri, 19 Feb 2021 16:06:56 +0100 Subject: [PATCH] externals: Filter out available plugins that do not constraint to the API version --- .../client/plugins/OPRSExternalPluginManager.java | 1 + .../plugins/openosrs/externals/PluginsPanel.java | 10 ++++++++++ 2 files changed, 11 insertions(+) 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 e1fc79ce71..2a8bf5159a 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 @@ -98,6 +98,7 @@ public class OPRSExternalPluginManager public static ArrayList pluginClassLoaders = new ArrayList<>(); private final PluginManager runelitePluginManager; + @Getter(AccessLevel.PUBLIC) private org.pf4j.PluginManager externalPluginManager; @Getter(AccessLevel.PUBLIC) private final List repositories = new ArrayList<>(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/PluginsPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/PluginsPanel.java index 6989e2ae19..5ce1dc4400 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/PluginsPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/PluginsPanel.java @@ -45,6 +45,7 @@ import net.runelite.client.ui.components.IconTextField; import net.runelite.client.ui.components.shadowlabel.JShadowedLabel; import net.runelite.client.util.ImageUtil; import net.runelite.client.util.SwingUtil; +import org.pf4j.VersionManager; import org.pf4j.update.PluginInfo; import org.pf4j.update.UpdateManager; import org.pf4j.update.UpdateRepository; @@ -83,6 +84,7 @@ public class PluginsPanel extends JPanel } private final OPRSExternalPluginManager externalPluginManager; + private final VersionManager versionManager; private final UpdateManager updateManager; private final ScheduledExecutorService executor; private final EventBus eventBus; @@ -100,6 +102,7 @@ public class PluginsPanel extends JPanel PluginsPanel(OPRSExternalPluginManager externalPluginManager, ScheduledExecutorService executor, EventBus eventBus) { this.externalPluginManager = externalPluginManager; + this.versionManager = externalPluginManager.getExternalPluginManager().getVersionManager(); this.updateManager = externalPluginManager.getUpdateManager(); this.executor = executor; this.eventBus = eventBus; @@ -410,6 +413,13 @@ public class PluginsPanel extends JPanel for (PluginInfo pluginInfo : availablePluginsList) { + if (pluginInfo.releases + .stream() + .noneMatch((pluginRelease) -> versionManager.checkVersionConstraint(externalPluginManager.getExternalPluginManager().getSystemVersion(), pluginRelease.requires))) + { + continue; + } + if (!search.equals("") && mismatchesSearchTerms(search, pluginInfo)) { continue;