From 6d4804ce8f853d4c2ee87ecec286caa99c5071e9 Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 11 Jul 2022 18:09:16 +0400 Subject: [PATCH 1/9] Update minor version and runelite version --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index b69c935..e5a5b45 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ repositories { mavenCentral() } -def runeLiteVersion = '1.8.24.3' +def runeLiteVersion = '1.8.26' dependencies { compileOnly group: 'net.runelite', name:'client', version: runeLiteVersion @@ -24,7 +24,7 @@ dependencies { } group = 'com.toofifty' -version = '1.0.4' +version = '1.0.5' sourceCompatibility = '1.8' tasks.withType(JavaCompile) { From 162d3c0364b796676099a617719fb0ac6bf2856d Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 11 Jul 2022 18:10:43 +0400 Subject: [PATCH 2/9] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f731fef..2009df9 100644 --- a/README.md +++ b/README.md @@ -28,4 +28,5 @@ Helpful overlays for the Giant's Foundry minigame * Added info panel configs - [Vanillj](https://github.com/Vanillj "Vanillj's github") * Added config - * Added notifications for heat/stage changes \ No newline at end of file + * Added notifications for heat/stage changes + * Added config for actions/heat left for notifications \ No newline at end of file From 4067c1a9e30b953519bad3aafe73685f19602c42 Mon Sep 17 00:00:00 2001 From: Robin Davidsson Date: Tue, 12 Jul 2022 00:43:33 +0200 Subject: [PATCH 3/9] Added Foundry Points --- build.gradle | 2 +- .../EasyGiantsFoundryConfig.java | 13 ++++ .../EasyGiantsFoundryPlugin.java | 63 +++++++++++++++++++ .../easygiantsfoundry/FoundryOverlay2D.java | 12 +++- 4 files changed, 88 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index b69c935..9beaa39 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ repositories { mavenCentral() } -def runeLiteVersion = '1.8.24.3' +def runeLiteVersion = '1.8.26' dependencies { compileOnly group: 'net.runelite', name:'client', version: runeLiteVersion diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index 8011c85..f869d79 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -9,6 +9,7 @@ import net.runelite.client.config.ConfigSection; public interface EasyGiantsFoundryConfig extends Config { String GROUP = "easygiantsfoundry"; String SOUND_ID = "soundID"; + String POINTS_KEY = "easygiantsfoundrypoints"; @ConfigSection( name = "Notifications", @@ -219,4 +220,16 @@ public interface EasyGiantsFoundryConfig extends Config { default boolean drawHeatLeft() { return true; } + + @ConfigItem( + keyName = "shopPoints", + name = "Shop points", + description = "Toggle for shop points", + position = 5, + section = infoPanelList + ) + default boolean drawShopPoints() + { + return false; + } } diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index 6cbbc07..064440c 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -1,6 +1,7 @@ package com.toofifty.easygiantsfoundry; import com.google.inject.Provides; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameObject; @@ -16,6 +17,7 @@ import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.ScriptPostFired; import net.runelite.api.events.StatChanged; +import net.runelite.api.widgets.Widget; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.eventbus.Subscribe; @@ -25,8 +27,11 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.config.ConfigManager; import com.toofifty.easygiantsfoundry.enums.Stage; +import net.runelite.client.util.Text; import javax.inject.Inject; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Slf4j @PluginDescriptor( @@ -49,6 +54,21 @@ public class EasyGiantsFoundryPlugin extends Plugin private static final int PREFORM = 27010; + private static final int SHOP_WIDGET = 753; + + private static final int CHAT_WIDGET = 229; + + private static final int SHOP_POINTS_TEXT = 13; + + private static final int CHAT_POINTS_TEXT = 1; + + private static final Pattern pattern = Pattern.compile("quality: (?\\d+) Best"); + + @Getter + private int shopPoints; + + private boolean increasePoints = false; + private Stage oldStage; private int lastBoost; @@ -85,6 +105,9 @@ public class EasyGiantsFoundryPlugin extends Plugin @Inject private ClientThread clientThread; + @Inject + private ConfigManager configManager; + @Override protected void startUp() { @@ -137,6 +160,15 @@ public class EasyGiantsFoundryPlugin extends Plugin { state.setEnabled(false); } + + if (event.getGameState().equals(GameState.LOGGED_IN)) + { + Integer points = configManager.getRSProfileConfiguration(config.GROUP, config.POINTS_KEY, int.class); + if (points != null) + { + shopPoints = points; + } + } } @Subscribe @@ -257,6 +289,37 @@ public class EasyGiantsFoundryPlugin extends Plugin public void onGameTick(GameTick event) { checkBonus(); + + Widget chat = client.getWidget(CHAT_WIDGET, CHAT_POINTS_TEXT); + + Widget shop = client.getWidget(SHOP_WIDGET, SHOP_POINTS_TEXT); + + if (shop != null && shop.getText() != null && Integer.parseInt(shop.getText()) != shopPoints) + { + shopPoints = Integer.parseInt(shop.getText()); + storePoints(); + return; + } + + if (chat == null) + { + increasePoints = true; + return; + } + + String chatText = Text.sanitizeMultilineText(chat.getText()); + final Matcher matcher = pattern.matcher(chatText); + if (increasePoints && matcher.find()) + { + shopPoints += Integer.parseInt(matcher.group("points")); + storePoints(); + increasePoints = false; + } + } + + private void storePoints() + { + configManager.setRSProfileConfiguration(config.GROUP, config.POINTS_KEY, shopPoints); } private void checkBonus() diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index e41643c..98316ef 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -17,13 +17,15 @@ import java.awt.Graphics2D; @Singleton public class FoundryOverlay2D extends OverlayPanel { + private final EasyGiantsFoundryPlugin plugin; private final EasyGiantsFoundryState state; private final EasyGiantsFoundryHelper helper; private final EasyGiantsFoundryConfig config; @Inject - private FoundryOverlay2D(EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, EasyGiantsFoundryConfig config) + private FoundryOverlay2D(EasyGiantsFoundryPlugin plugin, EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, EasyGiantsFoundryConfig config) { + this.plugin = plugin; this.state = state; this.helper = helper; this.config = config; @@ -89,6 +91,14 @@ public class FoundryOverlay2D extends OverlayPanel ); } + int points = plugin.getShopPoints(); + if (config.drawShopPoints()) + { + panelComponent.getChildren().add( + LineComponent.builder().left("Points").right(points + "").build() + ); + } + return super.render(graphics); } } From b3793a7876b860a326ade8c831bf52c4759ce323 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 14 Jul 2022 14:11:29 +0400 Subject: [PATCH 4/9] Update runeliteVersion to 1.8.17 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e5a5b45..b1923b3 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ repositories { mavenCentral() } -def runeLiteVersion = '1.8.26' +def runeLiteVersion = '1.8.27' dependencies { compileOnly group: 'net.runelite', name:'client', version: runeLiteVersion From 47ced206084bbcee76e04c532d18d18043a0acaa Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 14 Jul 2022 14:42:46 +0400 Subject: [PATCH 5/9] Refactor reputation tracking --- .../EasyGiantsFoundryPlugin.java | 74 +++------------- .../easygiantsfoundry/FoundryOverlay2D.java | 2 +- .../easygiantsfoundry/ReputationTracker.java | 86 +++++++++++++++++++ 3 files changed, 100 insertions(+), 62 deletions(-) create mode 100644 src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index 064440c..ee16bd7 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -8,15 +8,7 @@ import net.runelite.api.GameObject; import net.runelite.api.GameState; import net.runelite.api.InventoryID; import net.runelite.api.Skill; -import net.runelite.api.events.GameObjectDespawned; -import net.runelite.api.events.GameObjectSpawned; -import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.GameTick; -import net.runelite.api.events.ItemContainerChanged; -import net.runelite.api.events.NpcDespawned; -import net.runelite.api.events.NpcSpawned; -import net.runelite.api.events.ScriptPostFired; -import net.runelite.api.events.StatChanged; +import net.runelite.api.events.*; import net.runelite.api.widgets.Widget; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; @@ -54,21 +46,6 @@ public class EasyGiantsFoundryPlugin extends Plugin private static final int PREFORM = 27010; - private static final int SHOP_WIDGET = 753; - - private static final int CHAT_WIDGET = 229; - - private static final int SHOP_POINTS_TEXT = 13; - - private static final int CHAT_POINTS_TEXT = 1; - - private static final Pattern pattern = Pattern.compile("quality: (?\\d+) Best"); - - @Getter - private int shopPoints; - - private boolean increasePoints = false; - private Stage oldStage; private int lastBoost; @@ -108,6 +85,10 @@ public class EasyGiantsFoundryPlugin extends Plugin @Inject private ConfigManager configManager; + @Getter + @Inject + private ReputationTracker reputationTracker; + @Override protected void startUp() { @@ -163,11 +144,7 @@ public class EasyGiantsFoundryPlugin extends Plugin if (event.getGameState().equals(GameState.LOGGED_IN)) { - Integer points = configManager.getRSProfileConfiguration(config.GROUP, config.POINTS_KEY, int.class); - if (points != null) - { - shopPoints = points; - } + reputationTracker.load(); } } @@ -193,7 +170,7 @@ public class EasyGiantsFoundryPlugin extends Plugin oldStage = state.getCurrentStage(); } else if (config.showGiantsFoundryHeatNotifications() && - helper.getActionsForHeatLevel() == config.HeatNotificationsThreshold()) + helper.getActionsForHeatLevel() == config.HeatNotificationsThreshold()) { notifier.notify("About to run out of heat!"); } @@ -252,7 +229,7 @@ public class EasyGiantsFoundryPlugin extends Plugin public void onItemContainerChanged(ItemContainerChanged event) { if (event.getContainerId() == InventoryID.EQUIPMENT.getId() - && event.getItemContainer().count(PREFORM) == 0) + && event.getItemContainer().count(PREFORM) == 0) { state.reset(); oldStage = null; @@ -289,44 +266,19 @@ public class EasyGiantsFoundryPlugin extends Plugin public void onGameTick(GameTick event) { checkBonus(); - - Widget chat = client.getWidget(CHAT_WIDGET, CHAT_POINTS_TEXT); - - Widget shop = client.getWidget(SHOP_WIDGET, SHOP_POINTS_TEXT); - - if (shop != null && shop.getText() != null && Integer.parseInt(shop.getText()) != shopPoints) - { - shopPoints = Integer.parseInt(shop.getText()); - storePoints(); - return; - } - - if (chat == null) - { - increasePoints = true; - return; - } - - String chatText = Text.sanitizeMultilineText(chat.getText()); - final Matcher matcher = pattern.matcher(chatText); - if (increasePoints && matcher.find()) - { - shopPoints += Integer.parseInt(matcher.group("points")); - storePoints(); - increasePoints = false; - } } - private void storePoints() + @Subscribe + public void onWidgetLoaded(WidgetLoaded event) { - configManager.setRSProfileConfiguration(config.GROUP, config.POINTS_KEY, shopPoints); + reputationTracker.onWidgetLoaded(event.getGroupId()); } private void checkBonus() { if (!state.isEnabled() || state.getCurrentStage() == null - || state.getCurrentStage().getHeat() != state.getCurrentHeat() - || !BonusWidget.isActive(client)) + || state.getCurrentStage().getHeat() != state.getCurrentHeat() + || !BonusWidget.isActive(client)) { bonusNotified = false; return; diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index 98316ef..817cc7c 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -91,7 +91,7 @@ public class FoundryOverlay2D extends OverlayPanel ); } - int points = plugin.getShopPoints(); + int points = plugin.getReputationTracker().getShopPoints(); if (config.drawShopPoints()) { panelComponent.getChildren().add( diff --git a/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java b/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java new file mode 100644 index 0000000..f71d339 --- /dev/null +++ b/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java @@ -0,0 +1,86 @@ +package com.toofifty.easygiantsfoundry; + +import lombok.Getter; +import net.runelite.api.Client; +import net.runelite.api.widgets.Widget; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.util.Text; + +import javax.inject.Inject; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ReputationTracker +{ + private static final int SHOP_WIDGET = 753; + + private static final int CHAT_WIDGET = 229; + + private static final int SHOP_POINTS_TEXT = 13; + + private static final int CHAT_POINTS_TEXT = 1; + + private static final Pattern pattern = Pattern.compile("quality: (?\\d+) Best"); + + @Getter + private int shopPoints; + + @Inject + private ConfigManager configManager; + + @Inject + private Client client; + + public void load() + { + Integer points = configManager.getRSProfileConfiguration(EasyGiantsFoundryConfig.GROUP, EasyGiantsFoundryConfig.POINTS_KEY, int.class); + if (points != null) + { + shopPoints = points; + } + } + + private void save() + { + configManager.setRSProfileConfiguration(EasyGiantsFoundryConfig.GROUP, EasyGiantsFoundryConfig.POINTS_KEY, shopPoints); + } + + public void onWidgetLoaded(int groupId) + { + if (groupId == SHOP_WIDGET) + { + shopOpened(); + } + else if (groupId == CHAT_WIDGET) + { + chatBox(); + } + } + + private void chatBox() + { + Widget chat = client.getWidget(CHAT_WIDGET, CHAT_POINTS_TEXT); + if (chat == null) + { + return; + } + + String chatText = Text.sanitizeMultilineText(chat.getText()); + final Matcher matcher = pattern.matcher(chatText); + if (matcher.find()) + { + shopPoints += Integer.parseInt(matcher.group("points")); + save(); + } + } + + private void shopOpened() + { + Widget shop = client.getWidget(SHOP_WIDGET, SHOP_POINTS_TEXT); + if (shop != null && shop.getText() != null && Integer.parseInt(shop.getText()) != shopPoints) + { + shopPoints = Integer.parseInt(shop.getText()); + save(); + } + } +} From 137c598c529dee3e056622bbdb13aed6ac1ab9b5 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 14 Jul 2022 14:43:33 +0400 Subject: [PATCH 6/9] remove space --- .../com/toofifty/easygiantsfoundry/ReputationTracker.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java b/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java index f71d339..55cbb63 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java @@ -13,13 +13,9 @@ import java.util.regex.Pattern; public class ReputationTracker { private static final int SHOP_WIDGET = 753; - private static final int CHAT_WIDGET = 229; - private static final int SHOP_POINTS_TEXT = 13; - private static final int CHAT_POINTS_TEXT = 1; - private static final Pattern pattern = Pattern.compile("quality: (?\\d+) Best"); @Getter From d8725fb3a8758fd0ed0cc81dc5c228a2b34bec07 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 14 Jul 2022 14:45:21 +0400 Subject: [PATCH 7/9] Rename points to reputation for player view --- .../easygiantsfoundry/EasyGiantsFoundryConfig.java | 4 ++-- .../easygiantsfoundry/EasyGiantsFoundryPlugin.java | 10 +++------- .../toofifty/easygiantsfoundry/FoundryOverlay2D.java | 4 ++-- .../{ReputationTracker.java => PointsTracker.java} | 2 +- 4 files changed, 8 insertions(+), 12 deletions(-) rename src/main/java/com/toofifty/easygiantsfoundry/{ReputationTracker.java => PointsTracker.java} (98%) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java index f869d79..6846fb0 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryConfig.java @@ -223,8 +223,8 @@ public interface EasyGiantsFoundryConfig extends Config { @ConfigItem( keyName = "shopPoints", - name = "Shop points", - description = "Toggle for shop points", + name = "Reputation", + description = "Toggle for reputation text", position = 5, section = infoPanelList ) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java index ee16bd7..8122bb1 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/EasyGiantsFoundryPlugin.java @@ -9,7 +9,6 @@ import net.runelite.api.GameState; import net.runelite.api.InventoryID; import net.runelite.api.Skill; import net.runelite.api.events.*; -import net.runelite.api.widgets.Widget; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.eventbus.Subscribe; @@ -19,11 +18,8 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.config.ConfigManager; import com.toofifty.easygiantsfoundry.enums.Stage; -import net.runelite.client.util.Text; import javax.inject.Inject; -import java.util.regex.Matcher; -import java.util.regex.Pattern; @Slf4j @PluginDescriptor( @@ -87,7 +83,7 @@ public class EasyGiantsFoundryPlugin extends Plugin @Getter @Inject - private ReputationTracker reputationTracker; + private PointsTracker pointsTracker; @Override protected void startUp() @@ -144,7 +140,7 @@ public class EasyGiantsFoundryPlugin extends Plugin if (event.getGameState().equals(GameState.LOGGED_IN)) { - reputationTracker.load(); + pointsTracker.load(); } } @@ -271,7 +267,7 @@ public class EasyGiantsFoundryPlugin extends Plugin @Subscribe public void onWidgetLoaded(WidgetLoaded event) { - reputationTracker.onWidgetLoaded(event.getGroupId()); + pointsTracker.onWidgetLoaded(event.getGroupId()); } private void checkBonus() diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index 817cc7c..76519c4 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -91,11 +91,11 @@ public class FoundryOverlay2D extends OverlayPanel ); } - int points = plugin.getReputationTracker().getShopPoints(); + int points = plugin.getPointsTracker().getShopPoints(); if (config.drawShopPoints()) { panelComponent.getChildren().add( - LineComponent.builder().left("Points").right(points + "").build() + LineComponent.builder().left("Reputation").right(points + "").build() ); } diff --git a/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java b/src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java similarity index 98% rename from src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java rename to src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java index 55cbb63..a972243 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/ReputationTracker.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java @@ -10,7 +10,7 @@ import javax.inject.Inject; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class ReputationTracker +public class PointsTracker { private static final int SHOP_WIDGET = 753; private static final int CHAT_WIDGET = 229; From 33c98058a5df1c79023653ca3663aa4325c84c2b Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 14 Jul 2022 15:28:38 +0400 Subject: [PATCH 8/9] Fix point tracking --- .../com/toofifty/easygiantsfoundry/PointsTracker.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java b/src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java index a972243..b18a1e1 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/PointsTracker.java @@ -3,6 +3,7 @@ package com.toofifty.easygiantsfoundry; import lombok.Getter; import net.runelite.api.Client; import net.runelite.api.widgets.Widget; +import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.util.Text; @@ -27,6 +28,9 @@ public class PointsTracker @Inject private Client client; + @Inject + ClientThread clientThread; + public void load() { Integer points = configManager.getRSProfileConfiguration(EasyGiantsFoundryConfig.GROUP, EasyGiantsFoundryConfig.POINTS_KEY, int.class); @@ -45,11 +49,11 @@ public class PointsTracker { if (groupId == SHOP_WIDGET) { - shopOpened(); + clientThread.invokeLater(this::shopOpened); } else if (groupId == CHAT_WIDGET) { - chatBox(); + clientThread.invokeLater(this::chatBox); } } From cf2194422b9d145c9cd78a8475dc620141220587 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 14 Jul 2022 15:29:24 +0400 Subject: [PATCH 9/9] Always display overlay for title and reputation --- .../easygiantsfoundry/FoundryOverlay2D.java | 60 +++++++++++-------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java index 76519c4..e6298f9 100644 --- a/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java +++ b/src/main/java/com/toofifty/easygiantsfoundry/FoundryOverlay2D.java @@ -2,6 +2,7 @@ package com.toofifty.easygiantsfoundry; import com.toofifty.easygiantsfoundry.enums.Heat; import com.toofifty.easygiantsfoundry.enums.Stage; +import net.runelite.api.Client; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; @@ -17,14 +18,17 @@ import java.awt.Graphics2D; @Singleton public class FoundryOverlay2D extends OverlayPanel { + private static final int REGION_ID = 13491; + private final Client client; private final EasyGiantsFoundryPlugin plugin; private final EasyGiantsFoundryState state; private final EasyGiantsFoundryHelper helper; private final EasyGiantsFoundryConfig config; @Inject - private FoundryOverlay2D(EasyGiantsFoundryPlugin plugin, EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, EasyGiantsFoundryConfig config) + private FoundryOverlay2D(Client client, EasyGiantsFoundryPlugin plugin, EasyGiantsFoundryState state, EasyGiantsFoundryHelper helper, EasyGiantsFoundryConfig config) { + this.client = client; this.plugin = plugin; this.state = state; this.helper = helper; @@ -50,45 +54,49 @@ public class FoundryOverlay2D extends OverlayPanel @Override public Dimension render(Graphics2D graphics) { - if (!state.isEnabled() || state.getCurrentStage() == null) + if (client.getLocalPlayer().getWorldLocation().getRegionID() != REGION_ID) { return null; } - - Heat heat = state.getCurrentHeat(); - Stage stage = state.getCurrentStage(); + boolean swordPickedUp = state.isEnabled() && state.getCurrentStage() != null; if (config.drawTitle()) { panelComponent.getChildren().add(TitleComponent.builder().text("Easy Giant's Foundry").build()); } - if (config.drawHeatInfo()) - { - panelComponent.getChildren().add( + + if (swordPickedUp) { + Heat heat = state.getCurrentHeat(); + Stage stage = state.getCurrentStage(); + + if (config.drawHeatInfo()) + { + panelComponent.getChildren().add( LineComponent.builder().left("Heat").right(heat.getName() + " (" + state.getHeatAmount() / 10 + "%)").rightColor(heat.getColor()).build() - ); - } - if (config.drawStageInfo()) - { - panelComponent.getChildren().add( + ); + } + if (config.drawStageInfo()) + { + panelComponent.getChildren().add( LineComponent.builder().left("Stage").right(stage.getName() + " (" + state.getProgressAmount() / 10 + "%)").rightColor(stage.getHeat().getColor()).build() - ); - } + ); + } - int actionsLeft = helper.getActionsLeftInStage(); - int heatLeft = helper.getActionsForHeatLevel(); + int actionsLeft = helper.getActionsLeftInStage(); + int heatLeft = helper.getActionsForHeatLevel(); - if (config.drawActionsLeft()) - { - panelComponent.getChildren().add( + if (config.drawActionsLeft()) + { + panelComponent.getChildren().add( LineComponent.builder().left("Actions left").right(actionsLeft + "").build() - ); - } - if (config.drawHeatLeft()) - { - panelComponent.getChildren().add( + ); + } + if (config.drawHeatLeft()) + { + panelComponent.getChildren().add( LineComponent.builder().left("Heat left").right(heatLeft + "").rightColor(getHeatColor(actionsLeft, heatLeft)).build() - ); + ); + } } int points = plugin.getPointsTracker().getShopPoints();