From 5a23ba81f0a1cf9425b4aace89937b5bd83a27d0 Mon Sep 17 00:00:00 2001 From: xKylee <48519776+xKylee@users.noreply.github.com> Date: Mon, 23 Dec 2019 00:37:26 +0000 Subject: [PATCH] bronzemanmode: update bronzemanmode: update --- .../plugins/bronzeman/BronzeManConfig.java | 39 ++++++++- .../plugins/bronzeman/BronzemanPlugin.java | 76 +++++++++++------- .../plugins/bronzeman/item_unlocked.png | Bin 0 -> 7336 bytes 3 files changed, 83 insertions(+), 32 deletions(-) create mode 100644 runelite-client/src/main/resources/net/runelite/client/plugins/bronzeman/item_unlocked.png diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzeManConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzeManConfig.java index adb57cc0c6..e3cdc0cb21 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzeManConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzeManConfig.java @@ -20,9 +20,20 @@ public interface BronzeManConfig extends Config } @ConfigSection( - name = "Chat Commands", + name = "Game Mode Options", description = "", position = 1, + keyName = "gameModeOptions" + ) + default boolean gameModeOptions() + { + return false; + } + + @ConfigSection( + name = "Chat Commands", + description = "", + position = 2, keyName = "chatCommands" ) default boolean chatCommands() @@ -90,15 +101,39 @@ public interface BronzeManConfig extends Config return true; } + @ConfigItem( + keyName = "restoreCommand", + name = "Enable restoreunlocks command", + description = "Enables the !restoreunlocks command used for restoring your unlocked items file.", + position = 3, + section = "chatCommands" + ) + default boolean restoreCommand() + { + return true; + } + @ConfigItem( keyName = "deleteCommand", name = "Enable deleteunlocks command", description = "Enables the !deleteunlocks command used for deleting your unlocked items file.", - position = 2, + position = 4, section = "chatCommands" ) default boolean deleteCommand() { return false; } + + @ConfigItem( + keyName = "hideTradeOption", + name = "Hide trade with option", + description = "Hides the trade with option from the player menu", + position = 0, + section = "gameModeOptions" + ) + default boolean hideTradeOption() + { + return true; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzemanPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzemanPlugin.java index 582258012c..f5a3dcf07f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzemanPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bronzeman/BronzemanPlugin.java @@ -5,18 +5,13 @@ import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; -import java.io.InputStream; import java.io.PrintWriter; -import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Calendar; import java.util.List; -import javax.imageio.ImageIO; import javax.inject.Inject; import lombok.AccessLevel; import lombok.Getter; @@ -52,6 +47,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; +import net.runelite.client.util.ImageUtil; /** * @author Seth Davis @@ -73,6 +69,9 @@ public class BronzemanPlugin extends Plugin private static final String COUNT_CHAT_COMMAND = "!countunlocks"; private static final String DELETE_CHAT_COMMAND = "!deleteunlocks"; private static final String RESET_CHAT_COMMAND = "!resetunlocks"; + private static final String RESTORE_CHAT_COMMAND = "!restoreunlocks"; + + private final BufferedImage UNLOCK_IMAGE = ImageUtil.getResourceStreamFromClass(getClass(), "item_unlocked.png"); @Inject ItemManager itemManager; @@ -95,6 +94,8 @@ public class BronzemanPlugin extends Plugin private boolean countCommand; private boolean backupCommand; private boolean deleteCommand; + private boolean restoreCommand; + private boolean hideTradeOption; /** * Loads GrandExchange widgets for further manipulation of the interface @@ -111,7 +112,11 @@ public class BronzemanPlugin extends Plugin @Override protected void startUp() { - loadUnlockImage(); + /** + * Downloads the item-unlock png file to display unlocks + **/ + unlockImage = UNLOCK_IMAGE; + unlockedItems = new ArrayList<>(); overlayManager.add(bronzemanOverlay); updateConfig(); @@ -320,26 +325,6 @@ public class BronzemanPlugin extends Plugin } } - /** - * Downloads the item-unlock png file to display unlocks - **/ - private void loadUnlockImage() - { - try - { - File imageFile = new File(RuneLite.RUNELITE_DIR, "item-unlocked.png"); - if (!imageFile.exists()) - { - InputStream in = new URL("https://i.imgur.com/KWVNlsq.png").openStream(); - Files.copy(in, Paths.get(imageFile.getPath())); - } - unlockImage = ImageIO.read(imageFile); - } - catch (Exception e) - { - e.printStackTrace(); - } - } @Subscribe public void onChatMessage(ChatMessage chatMessage) @@ -370,6 +355,10 @@ public class BronzemanPlugin extends Plugin { deleteUnlocks(); } + if (this.restoreCommand && chatMessage.getMessage().toLowerCase().equals(RESTORE_CHAT_COMMAND)) + { + restoreUnlocks(); + } } private void backupUnlocks() @@ -388,9 +377,7 @@ public class BronzemanPlugin extends Plugin Path originalPath = playerFile.toPath(); try { - Calendar cal = Calendar.getInstance(); - SimpleDateFormat sdf = new SimpleDateFormat("MM_WW_HH_mm_ss"); - Files.copy(originalPath, Paths.get(playerFolder.getPath() + "_" + sdf.format(cal.getTime()) + ".backup"), + Files.copy(originalPath, Paths.get(playerFile.getPath().replace(".txt", ".backup")), StandardCopyOption.REPLACE_EXISTING); } catch (Exception e) @@ -401,6 +388,33 @@ public class BronzemanPlugin extends Plugin sendMessage("Successfully backed up current unlock file!"); } + private void restoreUnlocks() + { + File playerFolder = new File(RuneLite.PROFILES_DIR, client.getUsername()); + if (!playerFolder.exists()) + { + return; + } + File playerFile = new File(playerFolder, "bronzeman-unlocks.backup"); + if (!playerFile.exists()) + { + return; + } + + Path originalPath = playerFile.toPath(); + try + { + Files.copy(originalPath, Paths.get(playerFile.getPath().replace(".backup", ".txt")), + StandardCopyOption.REPLACE_EXISTING); + } + catch (Exception e) + { + e.printStackTrace(); + return; + } + sendMessage("Successfully restored current unlock file!"); + } + private void resetUnlocks() { try @@ -453,7 +467,7 @@ public class BronzemanPlugin extends Plugin { String option = Text.removeTags(entry.getOption()).toLowerCase(); - if (option.contains("trade with")) + if (option.contains("trade with") && this.hideTradeOption) { continue; } @@ -483,6 +497,8 @@ public class BronzemanPlugin extends Plugin this.backupCommand = config.backupCommand(); this.notifyChatUnlock = config.notifyChatUnlock(); this.deleteCommand = config.deleteCommand(); + this.restoreCommand = config.restoreCommand(); + this.hideTradeOption = config.hideTradeOption(); } } \ No newline at end of file diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bronzeman/item_unlocked.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bronzeman/item_unlocked.png new file mode 100644 index 0000000000000000000000000000000000000000..a29840aacfc11f6fd6a46129ff18f16aca0e0676 GIT binary patch literal 7336 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