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 53f46d0a09..dd6c86d1ee 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 e1606e59c0..2d27d08173 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 @@ -44,6 +44,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; @@ -82,6 +83,7 @@ public class PluginsPanel extends JPanel } private final OPRSExternalPluginManager externalPluginManager; + private final VersionManager versionManager; private final UpdateManager updateManager; private final IconTextField searchBar = new IconTextField(); @@ -97,6 +99,7 @@ public class PluginsPanel extends JPanel PluginsPanel(OPRSExternalPluginManager externalPluginManager, EventBus eventBus) { this.externalPluginManager = externalPluginManager; + this.versionManager = externalPluginManager.getExternalPluginManager().getVersionManager(); this.updateManager = externalPluginManager.getUpdateManager(); setLayout(new BorderLayout(0, 10)); @@ -405,6 +408,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;