From 232bae02425ad9757229278534d6559e2ec707fb Mon Sep 17 00:00:00 2001 From: OP Date: Tue, 9 Jun 2020 15:40:57 -0400 Subject: [PATCH] add warning message --- .../client/config/OpenOSRSConfig.java | 8 ++++ .../client/plugins/ExternalPluginManager.java | 11 +++++ .../externals/ExternalPluginManagerPanel.java | 45 ++++++++++++++----- 3 files changed, 54 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java b/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java index 36e37ed338..b1318132d8 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/OpenOSRSConfig.java @@ -359,4 +359,12 @@ public interface OpenOSRSConfig extends Config hidden = true ) void setExternalRepositories(String val); + + @ConfigItem( + keyName = "warning", + name = "", + description = "", + hidden = true + ) + default boolean warning(){return true;} } 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 4cd5b6bd12..959e480391 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 @@ -349,6 +349,17 @@ public class ExternalPluginManager openOSRSConfig.setExternalRepositories(config.toString()); } + public void setWarning(boolean val) + { + configManager.setConfiguration("openosrs", "warning", val); + } + + public boolean getWarning() + { + return openOSRSConfig.warning(); + } + + /** * This method is a fail safe to ensure that no duplicate 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 c2cf40418e..1072bf7dbb 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,8 +1,6 @@ package net.runelite.client.plugins.openosrs.externals; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; +import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; @@ -10,13 +8,7 @@ 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.*; import javax.swing.border.EmptyBorder; import net.runelite.client.eventbus.EventBus; import net.runelite.client.plugins.ExternalPluginManager; @@ -95,6 +87,22 @@ public class ExternalPluginManagerPanel extends PluginPanel @Override public void mousePressed(MouseEvent mouseEvent) { + if(externalPluginManager.getWarning()) { + JCheckBox checkbox = new JCheckBox("Don't show again."); + Object[] options = {"Okay, I accept the risk", "Never mind, turn back", checkbox}; + int answer = JOptionPane.showOptionDialog(new JFrame(), + "Adding plugins from unverified sources may put your account, or personal information at risk! \n", + "Account security warning", + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE, + null, + options, + options[0]); + + if(answer == 1) return; + if(checkbox.isSelected()) externalPluginManager.setWarning(false); + } + JTextField owner = new JTextField(); JTextField name = new JTextField(); Object[] message = { @@ -146,6 +154,23 @@ public class ExternalPluginManagerPanel extends PluginPanel @Override public void mousePressed(MouseEvent mouseEvent) { + if(externalPluginManager.getWarning()) { + JCheckBox checkbox = new JCheckBox("Don't show again."); + Object[] options = {"Okay, I accept the risk", "Never mind, turn back", checkbox}; + int answer = JOptionPane.showOptionDialog(new JFrame(), + "Adding plugins from unverified sources may put your account, or personal information at risk! \n", + "Account security warning", + JOptionPane.YES_NO_OPTION, + JOptionPane.WARNING_MESSAGE, + null, + options, + options[0]); + + if(answer == 1) return; + if(checkbox.isSelected()) externalPluginManager.setWarning(false); + } + + JTextField id = new JTextField(); JTextField url = new JTextField(); Object[] message = {