diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index 4d569f827c..66978819ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -99,6 +99,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginInstantiationException; import net.runelite.client.plugins.PluginManager; import net.runelite.client.plugins.PluginType; +import net.runelite.client.plugins.pluginsorter.PluginSorterConfig; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.DynamicGridLayout; import net.runelite.client.ui.FontManager; @@ -261,6 +262,23 @@ public class ConfigPanel extends PluginPanel runeLite.nameLabel.setForeground(Color.WHITE); pluginList.add(runeLite); + List runeLitePlus = new ArrayList<>(); + // populate pluginList with all external Plugins + pluginManager.getPlugins().stream() + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.RUNELITPLUS)) + .forEach(plugin -> + { + final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); + final Config config = pluginManager.getPluginConfigProxy(plugin); + final ConfigDescriptor configDescriptor = config == null ? null : configManager.getConfigDescriptor(config); + + final PluginListItem listItem = new PluginListItem(this, configManager, plugin, descriptor, config, configDescriptor); + listItem.setPinned(pinnedPlugins.contains(listItem.getName())); + runeLitePlus.add(listItem); + }); + runeLitePlus.sort(Comparator.comparing(PluginListItem::getName)); + pluginList.addAll(runeLitePlus); + List externalPlugins = new ArrayList<>(); // populate pluginList with all external Plugins pluginManager.getPlugins().stream()