diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java index 9237273f11..da2b56fc74 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ExternalPluginManager.java @@ -8,42 +8,6 @@ import com.google.inject.CreationException; import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.Module; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import net.runelite.client.RuneLite; -import net.runelite.client.RuneLiteProperties; -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigManager; -import net.runelite.client.config.OpenOSRSConfig; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.events.ExternalPluginChanged; -import net.runelite.client.events.ExternalRepositoryChanged; -import net.runelite.client.ui.RuneLiteSplashScreen; -import net.runelite.client.util.MiscUtils; -import net.runelite.client.util.SwingUtil; -import org.pf4j.DefaultPluginManager; -import org.pf4j.DependencyResolver; -import org.pf4j.JarPluginLoader; -import org.pf4j.JarPluginRepository; -import org.pf4j.ManifestPluginDescriptorFinder; -import org.pf4j.PluginAlreadyLoadedException; -import org.pf4j.PluginDependency; -import org.pf4j.PluginDescriptorFinder; -import org.pf4j.PluginLoader; -import org.pf4j.PluginRepository; -import org.pf4j.PluginRuntimeException; -import org.pf4j.PluginWrapper; -import org.pf4j.RuntimeMode; -import org.pf4j.update.DefaultUpdateRepository; -import org.pf4j.update.PluginInfo; -import org.pf4j.update.UpdateManager; -import org.pf4j.update.UpdateRepository; -import org.pf4j.update.VerifyException; -import javax.inject.Inject; -import javax.inject.Singleton; -import javax.swing.JOptionPane; -import javax.swing.SwingUtilities; import java.io.File; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -68,8 +32,45 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; +import javax.inject.Inject; +import javax.inject.Singleton; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import net.runelite.client.RuneLite; import static net.runelite.client.RuneLite.EXTERNALPLUGIN_DIR; import static net.runelite.client.RuneLite.SYSTEM_VERSION; +import net.runelite.client.RuneLiteProperties; +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.config.OpenOSRSConfig; +import net.runelite.client.eventbus.EventBus; +import net.runelite.client.events.ExternalPluginChanged; +import net.runelite.client.events.ExternalRepositoryChanged; +import net.runelite.client.ui.ClientUI; +import net.runelite.client.ui.RuneLiteSplashScreen; +import net.runelite.client.util.MiscUtils; +import net.runelite.client.util.SwingUtil; +import org.pf4j.DefaultPluginManager; +import org.pf4j.DependencyResolver; +import org.pf4j.JarPluginLoader; +import org.pf4j.JarPluginRepository; +import org.pf4j.ManifestPluginDescriptorFinder; +import org.pf4j.PluginAlreadyLoadedException; +import org.pf4j.PluginDependency; +import org.pf4j.PluginDescriptorFinder; +import org.pf4j.PluginLoader; +import org.pf4j.PluginRepository; +import org.pf4j.PluginRuntimeException; +import org.pf4j.PluginWrapper; +import org.pf4j.RuntimeMode; +import org.pf4j.update.DefaultUpdateRepository; +import org.pf4j.update.PluginInfo; +import org.pf4j.update.UpdateManager; +import org.pf4j.update.UpdateRepository; +import org.pf4j.update.VerifyException; @Slf4j @Singleton @@ -453,7 +454,7 @@ class ExternalPluginManager @SuppressWarnings("unchecked") private Plugin instantiate(List scannedPlugins, Class clazz, boolean init, boolean initConfig) - throws PluginInstantiationException + throws PluginInstantiationException { net.runelite.client.plugins.PluginDependency[] pluginDependencies = clazz.getAnnotationsByType(net.runelite.client.plugins.PluginDependency.class); @@ -731,7 +732,7 @@ class ExternalPluginManager try { SwingUtil.syncExec(() -> - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(ClientUI.getFrame(), pluginId + " is outdated and cannot be installed", "Installation error", JOptionPane.ERROR_MESSAGE)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java index f079c6de00..c2cf40418e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/openosrs/externals/ExternalPluginManagerPanel.java @@ -1,19 +1,5 @@ package net.runelite.client.plugins.openosrs.externals; -import net.runelite.client.eventbus.EventBus; -import net.runelite.client.plugins.ExternalPluginManager; -import net.runelite.client.ui.ColorScheme; -import net.runelite.client.ui.PluginPanel; -import net.runelite.client.util.ImageUtil; -import javax.inject.Inject; -import javax.swing.ImageIcon; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.JTextField; -import javax.swing.border.EmptyBorder; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; @@ -23,6 +9,21 @@ import java.awt.image.BufferedImage; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.ScheduledExecutorService; +import javax.inject.Inject; +import javax.swing.ImageIcon; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; +import javax.swing.border.EmptyBorder; +import net.runelite.client.eventbus.EventBus; +import net.runelite.client.plugins.ExternalPluginManager; +import net.runelite.client.ui.ClientUI; +import net.runelite.client.ui.ColorScheme; +import net.runelite.client.ui.PluginPanel; +import net.runelite.client.util.ImageUtil; public class ExternalPluginManagerPanel extends PluginPanel { @@ -102,7 +103,7 @@ public class ExternalPluginManagerPanel extends PluginPanel }; int option = - JOptionPane.showConfirmDialog(null, message, "Add repository", JOptionPane.OK_CANCEL_OPTION); + JOptionPane.showConfirmDialog(ClientUI.getFrame(), message, "Add repository", JOptionPane.OK_CANCEL_OPTION); if (option != JOptionPane.OK_OPTION || owner.getText().equals("") || name.getText().equals("")) { return; @@ -110,14 +111,14 @@ public class ExternalPluginManagerPanel extends PluginPanel if (externalPluginManager.doesGhRepoExist(owner.getText(), name.getText())) { - JOptionPane.showMessageDialog(null, "This repository already exists.", "Error!", + JOptionPane.showMessageDialog(ClientUI.getFrame(), "This repository already exists.", "Error!", JOptionPane.ERROR_MESSAGE); return; } if (ExternalPluginManager.testGHRepository(owner.getText(), name.getText())) { - JOptionPane.showMessageDialog(null, "This doesn't appear to be a valid repository.", "Error!", + JOptionPane.showMessageDialog(ClientUI.getFrame(), "This doesn't appear to be a valid repository.", "Error!", JOptionPane.ERROR_MESSAGE); return; } @@ -153,7 +154,7 @@ public class ExternalPluginManagerPanel extends PluginPanel }; int option = - JOptionPane.showConfirmDialog(null, message, "Add repository", JOptionPane.OK_CANCEL_OPTION); + JOptionPane.showConfirmDialog(ClientUI.getFrame(), message, "Add repository", JOptionPane.OK_CANCEL_OPTION); if (option != JOptionPane.OK_OPTION || id.getText().equals("") || url.getText().equals("")) { return; @@ -161,7 +162,7 @@ public class ExternalPluginManagerPanel extends PluginPanel if (id.getText().startsWith("gh:") || id.getText().contains("|")) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(ClientUI.getFrame(), "Repository id cannot begin with \"gh:\"\nor contain the pipe character '|'.", "Error!", JOptionPane.ERROR_MESSAGE); return; @@ -169,7 +170,7 @@ public class ExternalPluginManagerPanel extends PluginPanel if (externalPluginManager.doesRepoExist(id.getText())) { - JOptionPane.showMessageDialog(null, + JOptionPane.showMessageDialog(ClientUI.getFrame(), String.format("The repository with id %s already exists.", id.getText()), "Error!", JOptionPane.ERROR_MESSAGE); return; @@ -182,14 +183,14 @@ public class ExternalPluginManagerPanel extends PluginPanel } catch (MalformedURLException e) { - JOptionPane.showMessageDialog(null, "This doesn't appear to be a valid repository.", "Error!", + JOptionPane.showMessageDialog(ClientUI.getFrame(), "This doesn't appear to be a valid repository.", "Error!", JOptionPane.ERROR_MESSAGE); return; } if (ExternalPluginManager.testRepository(urlActual)) { - JOptionPane.showMessageDialog(null, "This doesn't appear to be a valid repository.", "Error!", + JOptionPane.showMessageDialog(ClientUI.getFrame(), "This doesn't appear to be a valid repository.", "Error!", JOptionPane.ERROR_MESSAGE); return; } 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 76ffeb3716..60e207b466 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 @@ -36,6 +36,7 @@ import net.runelite.client.events.ExternalPluginChanged; import net.runelite.client.events.ExternalRepositoryChanged; import net.runelite.client.plugins.ExternalPluginManager; import static net.runelite.client.plugins.openosrs.externals.ExternalPluginManagerPanel.wrapContainer; +import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.PluginPanel; @@ -256,7 +257,7 @@ public class PluginsPanel extends JPanel if (availablePlugins == null || plugins == null) { - JOptionPane.showMessageDialog(null, "The external plugin list could not be loaded.", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(ClientUI.getFrame(), "The external plugin list could not be loaded.", "Error", JOptionPane.ERROR_MESSAGE); return; } @@ -464,7 +465,7 @@ public class PluginsPanel extends JPanel { if (hideAction) { - JOptionPane.showMessageDialog(null, "This plugin can't be uninstalled because one or more other plugins have a dependency on it.", "Error!", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(ClientUI.getFrame(), "This plugin can't be uninstalled because one or more other plugins have a dependency on it.", "Error!", JOptionPane.ERROR_MESSAGE); } else { @@ -572,7 +573,7 @@ public class PluginsPanel extends JPanel try { SwingUtil.syncExec(() -> - JOptionPane.showMessageDialog(null, pluginInfo.name + " could not be installed, the hash could not be verified.", "Error!", JOptionPane.ERROR_MESSAGE)); + JOptionPane.showMessageDialog(ClientUI.getFrame(), pluginInfo.name + " could not be installed, the hash could not be verified.", "Error!", JOptionPane.ERROR_MESSAGE)); } catch (InvocationTargetException | InterruptedException ignored) { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientPanel.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientPanel.java index d93ef22ff1..aa7840f8a3 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientPanel.java @@ -29,7 +29,6 @@ import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Color; import javax.annotation.Nullable; -import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import net.runelite.api.Client; @@ -65,13 +64,13 @@ final class ClientPanel extends JPanel { String message = "Detected a bad codebase. Resetting...\n" + "Please restart client.\n"; - JOptionPane.showMessageDialog(new JFrame(), message, "Bad Codebase", + JOptionPane.showMessageDialog(ClientUI.getFrame(), message, "Bad Codebase", JOptionPane.ERROR_MESSAGE); StringFileUtils.writeStringToFile(RuneLite.RUNELITE_DIR + "/codebase", "http://127.0.0.1/"); } else { - JOptionPane.showMessageDialog(new JFrame(), "Error loading Oldschool RuneScape!", "Error", + JOptionPane.showMessageDialog(ClientUI.getFrame(), "Error loading Oldschool RuneScape!", "Error", JOptionPane.ERROR_MESSAGE); Sentry.capture(e); } diff --git a/runelite-client/src/main/java/net/runelite/client/util/LinkBrowser.java b/runelite-client/src/main/java/net/runelite/client/util/LinkBrowser.java index a84a4d57ee..fc40a970ea 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/LinkBrowser.java +++ b/runelite-client/src/main/java/net/runelite/client/util/LinkBrowser.java @@ -36,6 +36,7 @@ import javax.inject.Singleton; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import lombok.extern.slf4j.Slf4j; +import net.runelite.client.ui.ClientUI; /** * Utility class used for web and file browser navigation @@ -249,7 +250,7 @@ public class LinkBrowser { SwingUtilities.invokeLater(() -> { - final int result = JOptionPane.showConfirmDialog(null, message, "Message", + final int result = JOptionPane.showConfirmDialog(ClientUI.getFrame(), message, "Message", JOptionPane.OK_CANCEL_OPTION); if (result == JOptionPane.OK_OPTION)