From 632f2c079d0b5e515fb310e1330bc7c6c6fc4bf2 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sun, 15 Mar 2020 16:53:49 -0600 Subject: [PATCH] runelite-client: support warning field on external plugins --- .../ExternalPluginManifest.java | 2 ++ .../client/plugins/config/PluginHubPanel.java | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/externalplugins/ExternalPluginManifest.java b/runelite-client/src/main/java/net/runelite/client/externalplugins/ExternalPluginManifest.java index 0678bf768c..31ec502ed2 100644 --- a/runelite-client/src/main/java/net/runelite/client/externalplugins/ExternalPluginManifest.java +++ b/runelite-client/src/main/java/net/runelite/client/externalplugins/ExternalPluginManifest.java @@ -49,6 +49,8 @@ public class ExternalPluginManifest @Nullable private String description; @Nullable + private String warning; + @Nullable private String[] tags; @EqualsAndHashCode.Exclude private URL support; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginHubPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginHubPanel.java index 934288342a..e17482f4ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginHubPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginHubPanel.java @@ -58,6 +58,7 @@ import javax.swing.GroupLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.KeyStroke; @@ -263,7 +264,23 @@ class PluginHubPanel extends PluginPanel { addrm.setText("Install"); addrm.setBackground(new Color(0x28BE28)); - addrm.addActionListener(l -> externalPluginManager.install(manifest.getInternalName())); + addrm.addActionListener(l -> + { + if (manifest.getWarning() != null) + { + int result = JOptionPane.showConfirmDialog( + this, + "

" + manifest.getWarning() + "

Are you sure you want to install this plugin?", + "Installing " + manifest.getDisplayName(), + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE); + if (result != JOptionPane.OK_OPTION) + { + return; + } + } + externalPluginManager.install(manifest.getInternalName()); + }); } else if (remove) {