diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/BuiltInPluginManager.java b/runelite-client/src/main/java/com/openosrs/client/plugins/BuiltInPluginManager.java deleted file mode 100644 index 56397a78e7..0000000000 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/BuiltInPluginManager.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.openosrs.client.plugins; - -import com.openosrs.client.plugins.openosrs.OpenOSRSPlugin; -import java.util.ArrayList; -import java.util.List; -import net.runelite.client.externalplugins.ExternalPluginManager; -import net.runelite.client.plugins.PluginInstantiationException; - -public class BuiltInPluginManager -{ - public static List> oprsPlugins = new ArrayList<>(); - - public static void loadPlugins() - { - try - { - ExternalPluginManager.pluginManager.loadPlugins(oprsPlugins, null); - } - catch (PluginInstantiationException e) - { - e.printStackTrace(); - } - } - - static - { - oprsPlugins.add(OpenOSRSPlugin.class); - } -} diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/ExternalPluginManager.java b/runelite-client/src/main/java/com/openosrs/client/plugins/ExternalPluginManager.java index 0159a2f36b..4b4a09138a 100644 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/ExternalPluginManager.java +++ b/runelite-client/src/main/java/com/openosrs/client/plugins/ExternalPluginManager.java @@ -33,6 +33,15 @@ import com.google.inject.CreationException; import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.Module; +import static com.openosrs.client.OpenOSRS.EXTERNALPLUGIN_DIR; +import static com.openosrs.client.OpenOSRS.SYSTEM_VERSION; +import com.openosrs.client.config.OpenOSRSConfig; +import com.openosrs.client.events.ExternalPluginChanged; +import com.openosrs.client.events.ExternalRepositoryChanged; +import com.openosrs.client.ui.OpenOSRSSplashScreen; +import com.openosrs.client.util.Groups; +import com.openosrs.client.util.MiscUtils; +import com.openosrs.client.util.SwingUtil; import java.lang.reflect.InvocationTargetException; import java.net.MalformedURLException; import java.net.URL; @@ -61,24 +70,15 @@ import lombok.AccessLevel; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.runelite.client.RuneLite; -import static com.openosrs.client.OpenOSRS.EXTERNALPLUGIN_DIR; -import static com.openosrs.client.OpenOSRS.SYSTEM_VERSION; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigManager; -import com.openosrs.client.config.OpenOSRSConfig; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.ConfigChanged; -import com.openosrs.client.events.ExternalPluginChanged; -import com.openosrs.client.events.ExternalRepositoryChanged; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginInstantiationException; import net.runelite.client.plugins.PluginManager; import net.runelite.client.ui.ClientUI; -import com.openosrs.client.ui.OpenOSRSSplashScreen; -import com.openosrs.client.util.Groups; -import com.openosrs.client.util.MiscUtils; -import com.openosrs.client.util.SwingUtil; import org.jgroups.Message; import org.pf4j.DefaultPluginManager; import org.pf4j.DependencyResolver; @@ -98,7 +98,7 @@ public class ExternalPluginManager static final String DEVELOPMENT_MANIFEST_PATH = "build/tmp/jar/MANIFEST.MF"; public static ArrayList pluginClassLoaders = new ArrayList<>(); - private final PluginManager runelitePluginManager; + public static PluginManager runelitePluginManager = null; private org.pf4j.PluginManager externalPluginManager; @Getter(AccessLevel.PUBLIC) private final List repositories = new ArrayList<>(); @@ -117,7 +117,7 @@ public class ExternalPluginManager @Inject public ExternalPluginManager( @Named("safeMode") final boolean safeMode, - net.runelite.client.plugins.PluginManager pluginManager, + PluginManager pluginManager, OpenOSRSConfig openOSRSConfig, EventBus eventBus, ExecutorService executorService, @@ -125,7 +125,7 @@ public class ExternalPluginManager Groups groups) { this.safeMode = safeMode; - this.runelitePluginManager = pluginManager; + runelitePluginManager = pluginManager; this.openOSRSConfig = openOSRSConfig; this.eventBus = eventBus; this.executorService = executorService; diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/OpenOSRSPlugin.java b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/OpenOSRSPlugin.java index cd3d914413..3f0ca8d288 100644 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/OpenOSRSPlugin.java +++ b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/OpenOSRSPlugin.java @@ -27,6 +27,8 @@ package com.openosrs.client.plugins.openosrs; import ch.qos.logback.classic.Logger; +import com.openosrs.client.plugins.openosrs.externals.ExternalPluginManagerPanel; +import com.openosrs.client.config.OpenOSRSConfig; import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import javax.inject.Inject; @@ -55,14 +57,12 @@ import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_SECOND_ENTERED; import static net.runelite.api.widgets.WidgetInfo.BANK_PIN_THIRD_ENTERED; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.Keybind; -import com.openosrs.client.config.OpenOSRSConfig; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import com.openosrs.client.plugins.openosrs.externals.ExternalPluginManagerPanel; import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.HotkeyListener; diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java index da49d567b9..43211002e5 100644 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java +++ b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java @@ -1,5 +1,6 @@ package com.openosrs.client.plugins.openosrs.externals; +import com.openosrs.client.plugins.ExternalPluginManager; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; @@ -21,7 +22,6 @@ import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import net.runelite.client.eventbus.EventBus; -import com.openosrs.client.plugins.ExternalPluginManager; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.PluginPanel; diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/PluginsPanel.java b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/PluginsPanel.java index be1a350243..fa3af31ca2 100644 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/PluginsPanel.java +++ b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/PluginsPanel.java @@ -1,6 +1,12 @@ package com.openosrs.client.plugins.openosrs.externals; +import com.openosrs.client.plugins.ExternalPluginManager; import com.google.gson.JsonSyntaxException; +import com.openosrs.client.events.ExternalPluginChanged; +import com.openosrs.client.events.ExternalRepositoryChanged; +import com.openosrs.client.util.DeferredDocumentChangedListener; +import com.openosrs.client.util.ImageUtil; +import com.openosrs.client.util.SwingUtil; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; @@ -32,10 +38,6 @@ import javax.swing.border.EmptyBorder; import lombok.extern.slf4j.Slf4j; import static net.runelite.api.util.Text.DISTANCE; import net.runelite.client.eventbus.EventBus; -import com.openosrs.client.events.ExternalPluginChanged; -import com.openosrs.client.events.ExternalRepositoryChanged; -import com.openosrs.client.plugins.ExternalPluginManager; -import static com.openosrs.client.plugins.openosrs.externals.ExternalPluginManagerPanel.wrapContainer; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ColorScheme; @@ -43,9 +45,6 @@ import net.runelite.client.ui.FontManager; import net.runelite.client.ui.PluginPanel; import net.runelite.client.ui.components.IconTextField; import net.runelite.client.ui.components.shadowlabel.JShadowedLabel; -import com.openosrs.client.util.DeferredDocumentChangedListener; -import com.openosrs.client.util.ImageUtil; -import com.openosrs.client.util.SwingUtil; import org.pf4j.update.PluginInfo; import org.pf4j.update.UpdateManager; import org.pf4j.update.UpdateRepository; @@ -112,8 +111,8 @@ public class PluginsPanel extends JPanel JTabbedPane mainTabPane = new JTabbedPane(); - mainTabPane.add("Installed", wrapContainer(installedPluginsPanel())); - mainTabPane.add("Available", wrapContainer(availablePluginsPanel())); + mainTabPane.add("Installed", ExternalPluginManagerPanel.wrapContainer(installedPluginsPanel())); + mainTabPane.add("Available", ExternalPluginManagerPanel.wrapContainer(availablePluginsPanel())); add(filterwrapper, BorderLayout.NORTH); add(mainTabPane, BorderLayout.CENTER); diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryBox.java b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryBox.java index 13727ec01d..9a1171d726 100644 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryBox.java +++ b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryBox.java @@ -1,5 +1,8 @@ package com.openosrs.client.plugins.openosrs.externals; +import com.openosrs.client.plugins.ExternalPluginManager; +import com.openosrs.client.ui.JMultilineLabel; +import com.openosrs.client.util.ImageUtil; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; @@ -14,11 +17,8 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; -import com.openosrs.client.plugins.ExternalPluginManager; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.FontManager; -import com.openosrs.client.ui.JMultilineLabel; -import com.openosrs.client.util.ImageUtil; import net.runelite.client.util.LinkBrowser; import org.pf4j.update.PluginInfo; import org.pf4j.update.UpdateRepository; diff --git a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryPanel.java b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryPanel.java index 4009194b83..1f8973aa88 100644 --- a/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryPanel.java +++ b/runelite-client/src/main/java/com/openosrs/client/plugins/openosrs/externals/RepositoryPanel.java @@ -1,5 +1,7 @@ package com.openosrs.client.plugins.openosrs.externals; +import com.openosrs.client.plugins.ExternalPluginManager; +import com.openosrs.client.events.ExternalRepositoryChanged; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; @@ -7,8 +9,6 @@ import javax.inject.Inject; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import net.runelite.client.eventbus.EventBus; -import com.openosrs.client.events.ExternalRepositoryChanged; -import com.openosrs.client.plugins.ExternalPluginManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.ui.ColorScheme; import org.pf4j.update.UpdateRepository; 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 5eabee491c..1309cba17e 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -30,7 +30,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; -import com.openosrs.client.plugins.BuiltInPluginManager; import java.io.File; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; @@ -390,9 +389,6 @@ public class RuneLite overlayManager.add(tooltipOverlay.get()); } - //Load built-in OPRS plugins - BuiltInPluginManager.loadPlugins(); - // Start plugins pluginManager.startPlugins(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 292f7b7414..b4d5934f2f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -87,6 +87,7 @@ public class PluginManager * Base package where the core plugins are */ private static final String PLUGIN_PACKAGE = "net.runelite.client.plugins"; + private static final String OPENOSRS_PACKAGE = "com.openosrs.client.plugins"; private final boolean developerMode; private final boolean safeMode; @@ -290,6 +291,10 @@ public class PluginManager .map(ClassInfo::load) .collect(Collectors.toList()); + plugins.addAll(classPath.getTopLevelClassesRecursive(OPENOSRS_PACKAGE).stream() + .map(ClassInfo::load) + .collect(Collectors.toList())); + loadPlugins(plugins, (loaded, total) -> SplashScreen.stage(.60, .70, null, "Loading Plugins", loaded, total, false)); }