From 9dd8c59d0a0c55cb803412dad4f41e32dd00e143 Mon Sep 17 00:00:00 2001 From: Broooklyn <54762282+Broooklyn@users.noreply.github.com> Date: Sat, 16 May 2020 01:34:16 -0400 Subject: [PATCH 01/12] cluescrolls: Update Iron Man Tutor cipher clue (#11593) A game update changed the Adam NPC's name to Iron Man Tutor, and with it changed the cipher clue which referenced him. --- .../runelite/client/plugins/cluescrolls/clues/CipherClue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java index dc72d461c0..6e8eb1bd4d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CipherClue.java @@ -46,7 +46,7 @@ public class CipherClue extends ClueScroll implements TextClueScroll, NpcClueScr private static final Set CLUES = ImmutableSet.of( new CipherClue("BMJ UIF LFCBC TFMMFS", "Ali the Kebab seller", new WorldPoint(3354, 2974, 0), "Pollnivneach", "How many coins would you need to purchase 133 kebabs from me?", "399"), new CipherClue("GUHCHO", "Drezel", new WorldPoint(3440, 9895, 0), "Paterdomus", "Please solve this for x: 7x - 28=21", "7"), - new CipherClue("ZCZL", "Adam", new WorldPoint(3227, 3227, 0), "Outside Lumbridge castle", "How many snakeskins are needed in order to craft 44 boots, 29 vambraces and 34 bandanas?", "666"), + new CipherClue("HQNM LZM STSNQ", "Iron Man tutor", new WorldPoint(3227, 3227, 0), "Outside Lumbridge castle", "How many snakeskins are needed in order to craft 44 boots, 29 vambraces and 34 bandanas?", "666"), new CipherClue("ZHLUG ROG PDQ", "Weird Old Man", new WorldPoint(3224, 3112, 0), "Kalphite Lair entrance. Fairy ring BIQ", "SIX LEGS! All of them have 6! There are 25 of them! How many legs?", "150"), new CipherClue("ECRVCKP MJCNGF", "Captain Khaled", new WorldPoint(1845, 3754, 0), "Large eastern building in Port Piscarilius", "How many fishing cranes can you find around here?", "5"), new CipherClue("OVEXON", "Eluned", new WorldPoint(2289, 3144, 0), "Outside Lletya or in Prifddinas after Song of the Elves", "A question on elven crystal math. I have 5 and 3 crystals, large and small respectively. A large crystal is worth 10,000 coins and a small is worth but 1,000. How much are all my crystals worth?", "53,000"), From 8ab929d00186eb8ca09197b5f0001522f5f3d890 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 12:20:18 -0400 Subject: [PATCH 02/12] Revert "npc indicators: verify compoistion id of tagged npcs" This is breaking ammonite crabs due to them changing composition after spawning This reverts commit 01f134795d2b1834d4eb4d720a83ef5be6c75ed6. --- .../npchighlight/NpcIndicatorsPlugin.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 4f91e2400c..489f06f458 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -145,9 +145,9 @@ public class NpcIndicatorsPlugin extends Plugin private List highlights = new ArrayList<>(); /** - * NPC ids marked with the Tag option, index -> composition id + * NPC ids marked with the Tag option */ - private final Map npcTags = new HashMap<>(); + private final Set npcTags = new HashSet<>(); /** * Tagged NPCs that spawned this tick, which need to be verified that @@ -294,7 +294,7 @@ public class NpcIndicatorsPlugin extends Plugin } final int id = click.getId(); - final Integer removedId = npcTags.remove(id); + final boolean removed = npcTags.remove(id); final NPC[] cachedNPCs = client.getCachedNPCs(); final NPC npc = cachedNPCs[id]; @@ -303,7 +303,7 @@ public class NpcIndicatorsPlugin extends Plugin return; } - if (removedId != null) + if (removed) { highlightedNpcs.remove(npc); memorizedNpcs.remove(npc.getIndex()); @@ -311,7 +311,7 @@ public class NpcIndicatorsPlugin extends Plugin else { memorizeNpc(npc); - npcTags.put(id, npc.getId()); + npcTags.add(id); highlightedNpcs.add(npc); } @@ -329,8 +329,7 @@ public class NpcIndicatorsPlugin extends Plugin return; } - Integer taggedId = npcTags.get(npc.getIndex()); - if (taggedId != null && taggedId == npc.getId()) + if (npcTags.contains(npc.getIndex())) { memorizeNpc(npc); highlightedNpcs.add(npc); @@ -476,8 +475,7 @@ public class NpcIndicatorsPlugin extends Plugin continue; } - Integer taggedId = npcTags.get(npc.getIndex()); - if (taggedId != null && taggedId == npc.getId()) + if (npcTags.contains(npc.getIndex())) { highlightedNpcs.add(npc); continue; From ba73d704338c87dde5591abbf881c8b91cd4aed1 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 12:58:21 -0400 Subject: [PATCH 03/12] npc indicators: don't memorize npcs in instances I can't find any instances of npc indexes being reused in instances, which just causes the respawn timers to incorrectly identify a random npc later which happens to use the same id. See 01f134795d2b1834d4eb4d720a83ef5be6c75ed6 --- .../npchighlight/NpcIndicatorsPlugin.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java index 489f06f458..8b19b4ca91 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npchighlight/NpcIndicatorsPlugin.java @@ -51,7 +51,6 @@ import static net.runelite.api.MenuAction.MENU_ACTION_DEPRIORITIZE_OFFSET; import net.runelite.api.MenuEntry; import net.runelite.api.NPC; import net.runelite.api.coords.WorldPoint; -import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; @@ -63,6 +62,7 @@ import net.runelite.api.events.NpcSpawned; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -310,8 +310,11 @@ public class NpcIndicatorsPlugin extends Plugin } else { - memorizeNpc(npc); - npcTags.add(id); + if (!client.isInInstancedRegion()) + { + memorizeNpc(npc); + npcTags.add(id); + } highlightedNpcs.add(npc); } @@ -341,9 +344,12 @@ public class NpcIndicatorsPlugin extends Plugin { if (WildcardMatcher.matches(highlight, npcName)) { - memorizeNpc(npc); highlightedNpcs.add(npc); - spawnedNpcsThisTick.add(npc); + if (!client.isInInstancedRegion()) + { + memorizeNpc(npc); + spawnedNpcsThisTick.add(npc); + } break; } } @@ -485,7 +491,10 @@ public class NpcIndicatorsPlugin extends Plugin { if (WildcardMatcher.matches(highlight, npcName)) { - memorizeNpc(npc); + if (!client.isInInstancedRegion()) + { + memorizeNpc(npc); + } highlightedNpcs.add(npc); continue outer; } From 4da4979e4847ee17ef94d3090a6ddc2f5d6b9f27 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 00:05:09 -0400 Subject: [PATCH 04/12] attackstyles: use script event for hiding attack styltes --- .../main/java/net/runelite/api/ScriptID.java | 6 ++ .../attackstyles/AttackStylesPlugin.java | 31 +++------- .../attackstyles/AttackStylesPluginTest.java | 60 +------------------ 3 files changed, 16 insertions(+), 81 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/ScriptID.java b/runelite-api/src/main/java/net/runelite/api/ScriptID.java index 7eecb413b4..2e1146cb25 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -280,4 +280,10 @@ public final class ScriptID */ @ScriptArguments(integer = 1) public static final int PVP_WIDGET_BUILDER = 388; + + /** + * Called to build the combat interface + */ + @ScriptArguments + public static final int COMBAT_INTERFACE_SETUP = 420; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java index 73a26c8e00..6af99c99f5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesPlugin.java @@ -30,25 +30,23 @@ import com.google.common.collect.Table; import com.google.inject.Provides; import java.util.HashSet; import java.util.Set; -import javax.inject.Inject; import javax.annotation.Nullable; +import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.GameState; +import net.runelite.api.ScriptID; import net.runelite.api.Skill; import net.runelite.api.VarPlayer; import net.runelite.api.Varbits; -import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.ScriptPostFired; import net.runelite.api.events.VarbitChanged; -import net.runelite.api.events.WidgetHiddenChanged; -import net.runelite.api.events.WidgetLoaded; import net.runelite.api.widgets.Widget; -import static net.runelite.api.widgets.WidgetID.COMBAT_GROUP_ID; import net.runelite.api.widgets.WidgetInfo; -import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import static net.runelite.client.plugins.attackstyles.AttackStyle.CASTING; @@ -138,25 +136,12 @@ public class AttackStylesPlugin extends Plugin } @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + public void onScriptPostFired(ScriptPostFired scriptPostFired) { - if (event.getWidget().isSelfHidden() || TO_GROUP(event.getWidget().getId()) != COMBAT_GROUP_ID) + if (scriptPostFired.getScriptId() == ScriptID.COMBAT_INTERFACE_SETUP) { - return; + processWidgets(); } - - processWidgets(); - } - - @Subscribe - public void onWidgetLoaded(WidgetLoaded event) - { - if (event.getGroupId() != COMBAT_GROUP_ID) - { - return; - } - - processWidgets(); } /** @@ -204,6 +189,8 @@ public class AttackStylesPlugin extends Plugin castingModeVarbit); updateWarning(weaponSwitch); + // this isn't required, but will hide styles 1 tick earlier than the script event, which fires + // 1 tick after the combat options is unhidden if (weaponSwitch) { processWidgets(); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/attackstyles/AttackStylesPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/attackstyles/AttackStylesPluginTest.java index 3b900c283d..9a1a6be79d 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/attackstyles/AttackStylesPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/attackstyles/AttackStylesPluginTest.java @@ -33,22 +33,18 @@ import net.runelite.api.Client; import net.runelite.api.Skill; import net.runelite.api.VarPlayer; import net.runelite.api.Varbits; -import net.runelite.api.events.WidgetHiddenChanged; -import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.ui.overlay.OverlayManager; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.mockito.junit.MockitoJUnitRunner; @@ -173,60 +169,6 @@ public class AttackStylesPluginTest WidgetInfo.COMBAT_STYLE_THREE)); } - /* - * Verify that the defensive style is hidden when switching from bludgeon to bow - */ - @Test - public void testHiddenLongrange() - { - final ArgumentCaptor captor = ArgumentCaptor.forClass(Boolean.class); - final ConfigChanged warnForAttackEvent = new ConfigChanged(); - warnForAttackEvent.setGroup("attackIndicator"); - warnForAttackEvent.setKey("warnForDefensive"); - warnForAttackEvent.setNewValue("true"); - attackPlugin.onConfigChanged(warnForAttackEvent); - - // verify there is a warned skill - Set warnedSkills = attackPlugin.getWarnedSkills(); - assertTrue(warnedSkills.contains(Skill.DEFENCE)); - - // Set up mock widget for strength and longrange - final Widget widget = mock(Widget.class); - when(client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR)).thenReturn(widget); - - // Set up hidden changed event - final WidgetHiddenChanged widgetHiddenChanged = new WidgetHiddenChanged(); - widgetHiddenChanged.setWidget(widget); - when(widget.getId()).thenReturn(WidgetInfo.COMBAT_STYLE_FOUR.getPackedId()); - - // Enable hiding widgets - final ConfigChanged hideWidgetEvent = new ConfigChanged(); - hideWidgetEvent.setGroup("attackIndicator"); - hideWidgetEvent.setKey("removeWarnedStyles"); - hideWidgetEvent.setNewValue("true"); - attackPlugin.onConfigChanged(hideWidgetEvent); - when(attackConfig.removeWarnedStyles()).thenReturn(true); - - // equip bludgeon on player - when(client.getVar(Varbits.EQUIPPED_WEAPON_TYPE)).thenReturn(WeaponType.TYPE_26.ordinal()); - attackPlugin.onVarbitChanged(new VarbitChanged()); - attackPlugin.onWidgetHiddenChanged(widgetHiddenChanged); - - // verify that the agressive style style widget is showing - verify(widget, atLeastOnce()).setHidden(captor.capture()); - assertFalse(captor.getValue()); - - // equip bow on player - // the equipped weaopn varbit will change after the hiddenChanged event has been dispatched - attackPlugin.onWidgetHiddenChanged(widgetHiddenChanged); - when(client.getVar(Varbits.EQUIPPED_WEAPON_TYPE)).thenReturn(WeaponType.TYPE_3.ordinal()); - attackPlugin.onVarbitChanged(new VarbitChanged()); - - // verify that the longrange attack style widget is now hidden - verify(widget, atLeastOnce()).setHidden(captor.capture()); - assertTrue(captor.getValue()); - } - private boolean isAtkHidden() { if (attackPlugin.getHiddenWidgets().size() == 0) From 0615b7b9e6b6bcc0a4726962df196ecd65427d02 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 00:10:55 -0400 Subject: [PATCH 05/12] minimap: use script event for hiding minimap --- .../src/main/java/net/runelite/api/ScriptID.java | 6 ++++++ .../client/plugins/minimap/MinimapPlugin.java | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/ScriptID.java b/runelite-api/src/main/java/net/runelite/api/ScriptID.java index 2e1146cb25..00ecd1d285 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -286,4 +286,10 @@ public final class ScriptID */ @ScriptArguments public static final int COMBAT_INTERFACE_SETUP = 420; + + /** + * Called to build the toplevel interface + */ + @ScriptArguments(integer = 2) + public static final int TOPLEVEL_REDRAW = 907; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java index 7429b77180..64d4f1df3a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/minimap/MinimapPlugin.java @@ -30,14 +30,15 @@ import java.util.Arrays; import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.GameState; +import net.runelite.api.ScriptID; import net.runelite.api.SpritePixels; -import net.runelite.client.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.WidgetHiddenChanged; +import net.runelite.api.events.ScriptPostFired; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -107,9 +108,12 @@ public class MinimapPlugin extends Plugin } @Subscribe - public void onWidgetHiddenChanged(WidgetHiddenChanged event) + public void onScriptPostFired(ScriptPostFired scriptPostFired) { - updateMinimapWidgetVisibility(config.hideMinimap()); + if (scriptPostFired.getScriptId() == ScriptID.TOPLEVEL_REDRAW) + { + updateMinimapWidgetVisibility(config.hideMinimap()); + } } private void updateMinimapWidgetVisibility(boolean enable) From 94482f5aed49604fa7c45631c98cddc2b0ebb208 Mon Sep 17 00:00:00 2001 From: loldudester Date: Tue, 19 May 2020 20:51:29 +0100 Subject: [PATCH 06/12] keyremapping: Don't remap f-keys when the bank pin interface is open --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 6 ++++++ .../src/main/java/net/runelite/api/widgets/WidgetInfo.java | 1 + .../client/plugins/keyremapping/KeyRemappingPlugin.java | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 479251c5f6..93ee94fc96 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -154,6 +154,7 @@ public class WidgetID public static final int ADVENTURE_LOG_ID = 187; public static final int COUNTERS_LOG_GROUP_ID = 625; public static final int GAUNTLET_TIMER_GROUP_ID = 637; + public static final int BANK_PIN_GROUP_ID = 213; static class WorldMap { @@ -918,4 +919,9 @@ public class WidgetID { static final int CONTAINER = 2; } + + static class BankPin + { + static final int CONTAINER = 0; + } } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 59cb4f4160..eea24201ba 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -146,6 +146,7 @@ public enum WidgetInfo BANK_ITEM_COUNT_TOP(WidgetID.BANK_GROUP_ID, WidgetID.Bank.ITEM_COUNT_TOP), BANK_ITEM_COUNT_BAR(WidgetID.BANK_GROUP_ID, WidgetID.Bank.ITEM_COUNT_BAR), BANK_ITEM_COUNT_BOTTOM(WidgetID.BANK_GROUP_ID, WidgetID.Bank.ITEM_COUNT_BOTTOM), + BANK_PIN_CONTAINER(WidgetID.BANK_PIN_GROUP_ID, WidgetID.BankPin.CONTAINER), GRAND_EXCHANGE_WINDOW_CONTAINER(WidgetID.GRAND_EXCHANGE_GROUP_ID, WidgetID.GrandExchange.WINDOW_CONTAINER), GRAND_EXCHANGE_OFFER_CONTAINER(WidgetID.GRAND_EXCHANGE_GROUP_ID, WidgetID.GrandExchange.OFFER_CONTAINER), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java index c2b2ee146f..d0bcbf6d4f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/keyremapping/KeyRemappingPlugin.java @@ -138,7 +138,10 @@ public class KeyRemappingPlugin extends Plugin // Most chat dialogs with numerical input are added without the chatbox or its key listener being removed, // so chatboxFocused() is true. The chatbox onkey script uses the following logic to ignore key presses, // so we will use it too to not remap F-keys. - return isHidden(WidgetInfo.CHATBOX_MESSAGES) || isHidden(WidgetInfo.CHATBOX_TRANSPARENT_LINES); + return isHidden(WidgetInfo.CHATBOX_MESSAGES) || isHidden(WidgetInfo.CHATBOX_TRANSPARENT_LINES) + // We want to block F-key remapping in the bank pin interface too, so it does not interfere with the + // Keyboard Bankpin feature of the Bank plugin + || !isHidden(WidgetInfo.BANK_PIN_CONTAINER); } private boolean isHidden(WidgetInfo widgetInfo) From 6be6aacb3544252a25f8a9a8f0df04d4aab8ede0 Mon Sep 17 00:00:00 2001 From: Trevor martz Date: Tue, 19 May 2020 23:52:39 -0600 Subject: [PATCH 07/12] cluescrolls: remove sara wizard from duel arena step (#11648) In spite of being a hard coordinate clue, this clue step is an exception to the rule that a Saradomin Wizard will spawn at all non-wilderness locations. No enemy spawns at this spot. --- .../client/plugins/cluescrolls/clues/CoordinateClue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java index 16d524b91c..510935e799 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java @@ -122,7 +122,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati .put(new WorldPoint(2209, 3161, 0), new CoordinateClueInfo("North-east of Tyras Camp (BJS).", SARADOMIN_WIZARD)) .put(new WorldPoint(2181, 3206, 0), new CoordinateClueInfo("South of Iorwerth Camp.", SARADOMIN_WIZARD)) .put(new WorldPoint(3081, 3209, 0), new CoordinateClueInfo("Small Island (CLP).", SARADOMIN_WIZARD)) - .put(new WorldPoint(3399, 3246, 0), new CoordinateClueInfo("Behind the Duel Arena.", SARADOMIN_WIZARD)) + .put(new WorldPoint(3399, 3246, 0), new CoordinateClueInfo("Behind the Duel Arena.")) .put(new WorldPoint(2699, 3251, 0), new CoordinateClueInfo("Little island (AIR).", SARADOMIN_WIZARD)) .put(new WorldPoint(3546, 3251, 0), new CoordinateClueInfo("North-east of Burgh de Rott.", SARADOMIN_WIZARD)) .put(new WorldPoint(3544, 3256, 0), new CoordinateClueInfo("North-east of Burgh de Rott.", SARADOMIN_WIZARD)) From 6208c3bee526a41f44873d836a9a3d9731976d68 Mon Sep 17 00:00:00 2001 From: ThePharros <18340303+ThePharros@users.noreply.github.com> Date: Wed, 20 May 2020 02:09:56 -0400 Subject: [PATCH 08/12] itemcharges: Add Magic Essence and Super Strength potion doses (#11634) --- .../client/plugins/itemcharges/ItemWithCharge.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java index b4892ef7a3..2ce93881bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java @@ -249,6 +249,10 @@ enum ItemWithCharge MAGIC2(POTION, MAGIC_POTION2, 2), MAGIC3(POTION, MAGIC_POTION3, 3), MAGIC4(POTION, MAGIC_POTION4, 4), + MAGIC_ESS1(POTION, MAGIC_ESSENCE1, 1), + MAGIC_ESS2(POTION, MAGIC_ESSENCE2, 2), + MAGIC_ESS3(POTION, MAGIC_ESSENCE3, 3), + MAGIC_ESS4(POTION, MAGIC_ESSENCE4, 4), OVERLOAD1(POTION, OVERLOAD_1, 1), OVERLOAD2(POTION, OVERLOAD_2, 2), OVERLOAD3(POTION, OVERLOAD_3, 3), @@ -404,6 +408,10 @@ enum ItemWithCharge SUPER_REST2(POTION, SUPER_RESTORE2, 2), SUPER_REST3(POTION, SUPER_RESTORE3, 3), SUPER_REST4(POTION, SUPER_RESTORE4, 4), + SUPER_STR1(POTION, SUPER_STRENGTH1, 1), + SUPER_STR2(POTION, SUPER_STRENGTH2, 2), + SUPER_STR3(POTION, SUPER_STRENGTH3, 3), + SUPER_STR4(POTION, SUPER_STRENGTH4, 4), TCRYSTAL1(TELEPORT, TELEPORT_CRYSTAL_1, 1), TCRYSTAL2(TELEPORT, TELEPORT_CRYSTAL_2, 2), TCRYSTAL3(TELEPORT, TELEPORT_CRYSTAL_3, 3), From 794fba7176b316ea138a88759b8b88f80bd23c28 Mon Sep 17 00:00:00 2001 From: TheStonedTurtle <29030969+TheStonedTurtle@users.noreply.github.com> Date: Wed, 20 May 2020 08:54:31 -0700 Subject: [PATCH 09/12] Make background color of panel components configurable (#11619) --- .../client/config/RuneLiteConfig.java | 20 +++++++++++-- .../client/ui/overlay/OverlayManager.java | 28 ++++++++++++++++++- .../client/ui/overlay/OverlayPanel.java | 14 ++++++++++ .../ui/overlay/components/PanelComponent.java | 3 +- .../ui/overlay/infobox/InfoBoxOverlay.java | 1 + 5 files changed, 60 insertions(+), 6 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java index b29a46a5df..b511a5e407 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java @@ -24,12 +24,14 @@ */ package net.runelite.client.config; +import java.awt.Color; import java.awt.Dimension; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import net.runelite.api.Constants; import net.runelite.client.Notifier; import net.runelite.client.ui.ContainableFrame; +import net.runelite.client.ui.overlay.components.ComponentConstants; @ConfigGroup(RuneLiteConfig.GROUP_NAME) public interface RuneLiteConfig extends Config @@ -280,11 +282,23 @@ public interface RuneLiteConfig extends Config return 35; } + @ConfigItem( + keyName = "overlayBackgroundColor", + name = "Overlay Color", + description = "Configures the background color of infoboxes and overlays", + position = 43 + ) + @Alpha + default Color overlayBackgroundColor() + { + return ComponentConstants.STANDARD_BACKGROUND_COLOR; + } + @ConfigItem( keyName = "blockExtraMouseButtons", name = "Block Extra Mouse Buttons", description = "Blocks extra mouse buttons (4 and above)", - position = 43 + position = 44 ) default boolean blockExtraMouseButtons() { @@ -295,7 +309,7 @@ public interface RuneLiteConfig extends Config keyName = "sidebarToggleKey", name = "Sidebar Toggle Key", description = "The key that will toggle the sidebar (accepts modifiers)", - position = 44 + position = 45 ) default Keybind sidebarToggleKey() { @@ -306,7 +320,7 @@ public interface RuneLiteConfig extends Config keyName = "panelToggleKey", name = "Plugin Panel Toggle Key", description = "The key that will toggle the current or last opened plugin panel (accepts modifiers)", - position = 45 + position = 46 ) default Keybind panelToggleKey() { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index 39e08b3964..e5f52668e0 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -47,6 +47,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; import net.runelite.client.events.OverlayMenuClicked; import net.runelite.client.events.PluginChanged; @@ -104,12 +105,25 @@ public class OverlayManager private final ConfigManager configManager; private final EventBus eventBus; + private final RuneLiteConfig runeLiteConfig; @Inject - private OverlayManager(final ConfigManager configManager, final EventBus eventBus) + private OverlayManager(final ConfigManager configManager, final EventBus eventBus, final RuneLiteConfig runeLiteConfig) { this.configManager = configManager; this.eventBus = eventBus; + this.runeLiteConfig = runeLiteConfig; + } + + @Subscribe + public void onConfigChanged(final ConfigChanged event) + { + if (!RuneLiteConfig.GROUP_NAME.equals(event.getGroup()) || !"overlayBackgroundColor".equals(event.getKey())) + { + return; + } + + overlays.forEach(this::updateOverlayConfig); } @Subscribe @@ -171,12 +185,15 @@ public class OverlayManager // Add is always true overlays.add(overlay); loadOverlay(overlay); + updateOverlayConfig(overlay); + // WidgetItemOverlays have a reference to the overlay manager in order to get the WidgetItems // for each frame. if (overlay instanceof WidgetItemOverlay) { ((WidgetItemOverlay) overlay).setOverlayManager(this); } + rebuildOverlayLayers(); return true; } @@ -304,6 +321,15 @@ public class OverlayManager overlay.setPreferredPosition(position); } + private void updateOverlayConfig(final Overlay overlay) + { + if (overlay instanceof OverlayPanel) + { + // Update preferred color for overlay panels based on configuration + ((OverlayPanel) overlay).setPreferredColor(runeLiteConfig.overlayBackgroundColor()); + } + } + private void saveOverlayLocation(final Overlay overlay) { final String key = overlay.getName() + OVERLAY_CONFIG_PREFERRED_LOCATION; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPanel.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPanel.java index 4ccbdebc70..6d749b765f 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPanel.java @@ -24,6 +24,7 @@ */ package net.runelite.client.ui.overlay; +import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import lombok.Getter; @@ -49,6 +50,11 @@ public abstract class OverlayPanel extends Overlay */ private boolean dynamicFont = false; + /** + * Preferred color used for panel component background + */ + private Color preferredColor = null; + protected OverlayPanel() { super(); @@ -83,6 +89,13 @@ public abstract class OverlayPanel extends Overlay } } + final Color oldBackgroundColor = panelComponent.getBackgroundColor(); + + if (getPreferredColor() != null && ComponentConstants.STANDARD_BACKGROUND_COLOR.equals(oldBackgroundColor)) + { + panelComponent.setBackgroundColor(getPreferredColor()); + } + final Dimension dimension = panelComponent.render(graphics); if (clearChildren) @@ -91,6 +104,7 @@ public abstract class OverlayPanel extends Overlay } panelComponent.setPreferredSize(oldSize); + panelComponent.setBackgroundColor(oldBackgroundColor); return dimension; } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java index fbdccdaa54..41829f6dc1 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java @@ -31,7 +31,6 @@ import java.awt.Point; import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; import lombok.Getter; import lombok.Setter; @@ -48,7 +47,7 @@ public class PanelComponent implements LayoutableRenderableEntity private Dimension preferredSize = new Dimension(ComponentConstants.STANDARD_WIDTH, 0); @Setter - @Nullable + @Getter private Color backgroundColor = ComponentConstants.STANDARD_BACKGROUND_COLOR; @Getter diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java index b917a38e6b..c04da4b6ee 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java @@ -111,6 +111,7 @@ public class InfoBoxOverlay extends OverlayPanel infoBoxComponent.setImage(box.getScaledImage()); infoBoxComponent.setTooltip(box.getTooltip()); infoBoxComponent.setPreferredSize(new Dimension(config.infoBoxSize(), config.infoBoxSize())); + infoBoxComponent.setBackgroundColor(config.overlayBackgroundColor()); panelComponent.getChildren().add(infoBoxComponent); } From 00b65f4566d2c038c8454dc8927776ef755ae4e4 Mon Sep 17 00:00:00 2001 From: Hydrox6 Date: Thu, 21 May 2020 11:10:05 +0100 Subject: [PATCH 10/12] clues: add brutal green dragon variant to cryptic clue --- .../runelite/client/plugins/cluescrolls/clues/CrypticClue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java index 7ee9b762fa..617a125f02 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CrypticClue.java @@ -284,7 +284,7 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc new CrypticClue("Search the crates in the most north-western house in Al Kharid.", CRATE_358, new WorldPoint(3289, 3202, 0), "Search the crates in the house, marked with a icon, southeast of the gem stall."), new CrypticClue("You will have to fly high where a sword cannot help you.", null, "Kill an Aviansie."), new CrypticClue("A massive battle rages beneath so be careful when you dig by the large broken crossbow.", new WorldPoint(2927, 3761, 0), "NE of the God Wars Dungeon entrance, climb the rocky handholds & dig by large crossbow."), - new CrypticClue("Mix yellow with blue and add heat, make sure you bring protection.", null, "Kill a green dragon."), + new CrypticClue("Mix yellow with blue and add heat, make sure you bring protection.", null, "Kill a green or brutal green dragon."), new CrypticClue("Speak to Ellis in Al Kharid.", "Ellis", new WorldPoint(3276, 3191, 0), "Ellis is tanner just north of Al Kharid bank."), new CrypticClue("Search the chests in the Dwarven Mine.", CLOSED_CHEST_375, new WorldPoint(3000, 9798, 0), "The chest is on the western wall, where Hura's Crossbow Shop is, in the Dwarven Mine."), new CrypticClue("In a while...", null, "Kill a crocodile."), From c319105ed49a031627002a3e6e5214bea8892ca8 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Thu, 21 May 2020 10:32:18 +0000 Subject: [PATCH 11/12] Update Widget IDs to 2020-05-21-rev182 --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 93ee94fc96..04f22f9312 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -263,8 +263,8 @@ public class WidgetID static final int DEPOSIT_EQUIPMENT = 43; static final int INCINERATOR = 45; static final int INCINERATOR_CONFIRM = 46; - static final int EQUIPMENT_CONTENT_CONTAINER = 67; - static final int EQUIPMENT_BUTTON = 108; + static final int EQUIPMENT_CONTENT_CONTAINER = 68; + static final int EQUIPMENT_BUTTON = 109; } static class GrandExchange From 592ca5c112b0c8c68353dcef2f0df8ff0de6969a Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Thu, 21 May 2020 10:32:20 +0000 Subject: [PATCH 12/12] Update Scripts to 2020-05-21-rev182 --- .../src/main/scripts/BankSearchLayout.hash | 2 +- .../src/main/scripts/BankSearchLayout.rs2asm | 361 +++++++++--------- .../src/main/scripts/ResetChatboxInput.hash | 2 +- .../src/main/scripts/ResetChatboxInput.rs2asm | 74 +++- 4 files changed, 253 insertions(+), 186 deletions(-) diff --git a/runelite-client/src/main/scripts/BankSearchLayout.hash b/runelite-client/src/main/scripts/BankSearchLayout.hash index 0f68a772dc..eb4360c955 100644 --- a/runelite-client/src/main/scripts/BankSearchLayout.hash +++ b/runelite-client/src/main/scripts/BankSearchLayout.hash @@ -1 +1 @@ -9E3153DE24555E18FA425035D1C8929EECE4C44E6CFEA11CA186B7DA0AE830AF \ No newline at end of file +D32D30CB1B79698A15B3314C3782659FF25382008857E7CEB07CA17C1CD5E62A \ No newline at end of file diff --git a/runelite-client/src/main/scripts/BankSearchLayout.rs2asm b/runelite-client/src/main/scripts/BankSearchLayout.rs2asm index fa6303763f..80aa1f14e3 100644 --- a/runelite-client/src/main/scripts/BankSearchLayout.rs2asm +++ b/runelite-client/src/main/scripts/BankSearchLayout.rs2asm @@ -65,6 +65,15 @@ LABEL36: iload 17 iload 13 if_sethide + iload 16 + invoke 3369 + iconst 3368 + iload 16 + iconst 1141 + iconst 1 + sconst "IY" + iload 16 + if_setonvartransmit iconst 441 iconst 0 iconst 0 @@ -79,14 +88,14 @@ LABEL36: if_setposition get_varbit 8352 iconst 1 - if_icmpeq LABEL58 - jump LABEL85 -LABEL58: + if_icmpeq LABEL67 + jump LABEL94 +LABEL67: get_varbit 5364 iconst 0 - if_icmpeq LABEL62 - jump LABEL85 -LABEL62: + if_icmpeq LABEL71 + jump LABEL94 +LABEL71: iload 12 if_getx iload 12 @@ -109,51 +118,51 @@ LABEL62: iconst 0 iload 4 if_setsize - jump LABEL121 -LABEL85: + jump LABEL130 +LABEL94: get_varbit 8352 iconst 0 - if_icmpeq LABEL89 - jump LABEL100 -LABEL89: + if_icmpeq LABEL98 + jump LABEL109 +LABEL98: get_varbit 5364 iconst 1 - if_icmpeq LABEL93 - jump LABEL100 -LABEL93: + if_icmpeq LABEL102 + jump LABEL109 +LABEL102: iconst 37 iconst 37 iconst 1 iconst 0 iload 4 if_setsize - jump LABEL121 -LABEL100: + jump LABEL130 +LABEL109: get_varbit 8352 iconst 1 - if_icmpeq LABEL104 - jump LABEL115 -LABEL104: + if_icmpeq LABEL113 + jump LABEL124 +LABEL113: get_varbit 5364 iconst 1 - if_icmpeq LABEL108 - jump LABEL115 -LABEL108: + if_icmpeq LABEL117 + jump LABEL124 +LABEL117: iconst 74 iconst 37 iconst 1 iconst 0 iload 4 if_setsize - jump LABEL121 -LABEL115: + jump LABEL130 +LABEL124: iconst 0 iconst 37 iconst 1 iconst 0 iload 4 if_setsize -LABEL121: +LABEL130: iconst 1 iload 10 if_sethide @@ -163,52 +172,52 @@ LABEL121: istore 18 get_varbit 4170 iconst 3 - if_icmpeq LABEL132 - jump LABEL165 -LABEL132: + if_icmpeq LABEL141 + jump LABEL174 +LABEL141: get_varbit 4171 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4172 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4173 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4174 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4175 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4176 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4177 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4178 iconst 0 - if_icmpgt LABEL160 + if_icmpgt LABEL169 get_varbit 4179 iconst 0 - if_icmpgt LABEL160 - jump LABEL163 -LABEL160: + if_icmpgt LABEL169 + jump LABEL172 +LABEL169: iconst 0 istore 18 - jump LABEL165 -LABEL163: + jump LABEL174 +LABEL172: iconst 1 istore 18 -LABEL165: +LABEL174: iconst 0 istore 19 iload 18 iconst 1 - if_icmpeq LABEL171 - jump LABEL195 -LABEL171: + if_icmpeq LABEL180 + jump LABEL204 +LABEL180: iconst 1 iload 8 if_sethide @@ -232,8 +241,8 @@ LABEL171: iconst 0 iload 1 if_setposition - jump LABEL216 -LABEL195: + jump LABEL225 +LABEL204: iconst 0 iload 8 if_sethide @@ -255,7 +264,7 @@ LABEL195: iconst 0 iload 1 if_setposition -LABEL216: +LABEL225: iload 3 iload 2 invoke 231 @@ -267,28 +276,28 @@ LABEL216: multiply add istore 21 -LABEL227: +LABEL236: iload 20 iload 21 - if_icmple LABEL231 - jump LABEL244 -LABEL231: + if_icmple LABEL240 + jump LABEL253 +LABEL240: iload 2 iload 20 cc_find iconst 1 - if_icmpeq LABEL237 - jump LABEL239 -LABEL237: + if_icmpeq LABEL246 + jump LABEL248 +LABEL246: iconst 1 cc_sethide -LABEL239: +LABEL248: iload 20 iconst 1 add istore 20 - jump LABEL227 -LABEL244: + jump LABEL236 +LABEL253: iconst 0 istore 20 iconst 8 @@ -328,47 +337,47 @@ LABEL244: sstore 0 get_varbit 4150 iconst 0 - if_icmple LABEL288 + if_icmple LABEL297 get_varbit 4150 iconst 9 - if_icmpgt LABEL288 - jump LABEL741 -LABEL288: + if_icmpgt LABEL297 + jump LABEL750 +LABEL297: iload 20 iconst 816 - if_icmplt LABEL292 - jump LABEL317 -LABEL292: + if_icmplt LABEL301 + jump LABEL326 +LABEL301: iload 2 iload 20 cc_find iconst 1 - if_icmpeq LABEL298 - jump LABEL300 -LABEL298: + if_icmpeq LABEL307 + jump LABEL309 +LABEL307: iconst 1 cc_sethide -LABEL300: +LABEL309: iconst 95 iload 20 inv_getobj iconst -1 - if_icmpne LABEL306 - jump LABEL312 -LABEL306: + if_icmpne LABEL315 + jump LABEL321 +LABEL315: iload 29 iconst 1 add iload 20 istore 30 istore 29 -LABEL312: +LABEL321: iload 20 iconst 1 add istore 20 - jump LABEL288 -LABEL317: + jump LABEL297 +LABEL326: get_varbit 4171 get_varbit 4172 add @@ -389,14 +398,14 @@ LABEL317: istore 31 iload 31 iconst 0 - if_icmple LABEL339 - jump LABEL343 -LABEL339: + if_icmple LABEL348 + jump LABEL352 +LABEL348: iconst 816 iconst 1 sub istore 30 -LABEL343: +LABEL352: iconst 0 ; Scroll height variable iconst 0 ; Compare variable iconst 0 ; @@ -431,9 +440,9 @@ CONTINUE_SEARCH: istore 20 get_varbit 4171 iconst 0 - if_icmpgt LABEL370 - jump LABEL400 -LABEL370: + if_icmpgt LABEL379 + jump LABEL409 +LABEL379: iconst 1 iload 2 iload 28 @@ -464,12 +473,12 @@ LABEL370: get_varbit 4171 add istore 20 -LABEL400: +LABEL409: get_varbit 4172 iconst 0 - if_icmpgt LABEL404 - jump LABEL434 -LABEL404: + if_icmpgt LABEL413 + jump LABEL443 +LABEL413: iconst 2 iload 2 iload 28 @@ -500,12 +509,12 @@ LABEL404: get_varbit 4172 add istore 20 -LABEL434: +LABEL443: get_varbit 4173 iconst 0 - if_icmpgt LABEL438 - jump LABEL468 -LABEL438: + if_icmpgt LABEL447 + jump LABEL477 +LABEL447: iconst 3 iload 2 iload 28 @@ -536,12 +545,12 @@ LABEL438: get_varbit 4173 add istore 20 -LABEL468: +LABEL477: get_varbit 4174 iconst 0 - if_icmpgt LABEL472 - jump LABEL502 -LABEL472: + if_icmpgt LABEL481 + jump LABEL511 +LABEL481: iconst 4 iload 2 iload 28 @@ -572,12 +581,12 @@ LABEL472: get_varbit 4174 add istore 20 -LABEL502: +LABEL511: get_varbit 4175 iconst 0 - if_icmpgt LABEL506 - jump LABEL536 -LABEL506: + if_icmpgt LABEL515 + jump LABEL545 +LABEL515: iconst 5 iload 2 iload 28 @@ -608,12 +617,12 @@ LABEL506: get_varbit 4175 add istore 20 -LABEL536: +LABEL545: get_varbit 4176 iconst 0 - if_icmpgt LABEL540 - jump LABEL570 -LABEL540: + if_icmpgt LABEL549 + jump LABEL579 +LABEL549: iconst 6 iload 2 iload 28 @@ -644,12 +653,12 @@ LABEL540: get_varbit 4176 add istore 20 -LABEL570: +LABEL579: get_varbit 4177 iconst 0 - if_icmpgt LABEL574 - jump LABEL604 -LABEL574: + if_icmpgt LABEL583 + jump LABEL613 +LABEL583: iconst 7 iload 2 iload 28 @@ -680,12 +689,12 @@ LABEL574: get_varbit 4177 add istore 20 -LABEL604: +LABEL613: get_varbit 4178 iconst 0 - if_icmpgt LABEL608 - jump LABEL638 -LABEL608: + if_icmpgt LABEL617 + jump LABEL647 +LABEL617: iconst 8 iload 2 iload 28 @@ -716,12 +725,12 @@ LABEL608: get_varbit 4178 add istore 20 -LABEL638: +LABEL647: get_varbit 4179 iconst 0 - if_icmpgt LABEL642 - jump LABEL672 -LABEL642: + if_icmpgt LABEL651 + jump LABEL681 +LABEL651: iconst 9 iload 2 iload 28 @@ -752,21 +761,21 @@ LABEL642: get_varbit 4179 add istore 20 -LABEL672: +LABEL681: invoke 514 iconst 1 - if_icmpeq LABEL676 - jump LABEL717 -LABEL676: + if_icmpeq LABEL685 + jump LABEL726 +LABEL685: get_varc_string 359 ; Skip truncating of varcstr 22 by not calling 280 - lowercase ; instead get the var directly and lowercase it + invoke 280; instead get the var directly and lowercase it sstore 0 sload 0 string_length iconst 0 - if_icmpgt LABEL683 - jump LABEL702 -LABEL683: + if_icmpgt LABEL692 + jump LABEL711 +LABEL692: sconst "Showing items: " sconst "" sload 0 @@ -776,9 +785,9 @@ LABEL683: if_settext get_varc_int 5 iconst 11 - if_icmpeq LABEL694 - jump LABEL701 -LABEL694: + if_icmpeq LABEL703 + jump LABEL710 +LABEL703: sconst "Show items whose names contain the following text: (" iload 27 tostring @@ -790,9 +799,9 @@ LABEL694: pop_int ; pop number of matches iconst 10616876 if_settext -LABEL701: - jump LABEL716 -LABEL702: +LABEL710: + jump LABEL725 +LABEL711: sconst "Showing items: " sconst "" sconst "*" @@ -802,23 +811,23 @@ LABEL702: if_settext get_varc_int 5 iconst 11 - if_icmpeq LABEL713 - jump LABEL716 -LABEL713: + if_icmpeq LABEL722 + jump LABEL725 +LABEL722: sconst "Show items whose names contain the following text:" sconst "setSearchBankInputText" ; load event name runelite_callback ; invoke callback iconst 10616876 if_settext -LABEL716: - jump LABEL720 -LABEL717: +LABEL725: + jump LABEL729 +LABEL726: sconst "The Bank of Gielinor" sconst "setBankTitle" ; runelite_callback ; iload 5 if_settext -LABEL720: +LABEL729: iload 0 iload 1 iload 2 @@ -840,17 +849,17 @@ LABEL720: iload 16 invoke 505 return -LABEL741: +LABEL750: invoke 514 iconst 1 - if_icmpeq LABEL745 - jump LABEL748 -LABEL745: + if_icmpeq LABEL754 + jump LABEL757 +LABEL754: iconst 1 iconst 1 invoke 299 GetTabRange: -LABEL748: +LABEL757: iconst -1 istore 32 iconst -1 @@ -863,43 +872,43 @@ LABEL748: istore 34 iconst 0 istore 35 -LABEL760: +LABEL769: iload 20 iconst 816 - if_icmplt LABEL764 - jump LABEL844 -LABEL764: + if_icmplt LABEL773 + jump LABEL853 +LABEL773: iload 2 iload 20 cc_find iconst 1 - if_icmpeq LABEL770 - jump LABEL839 -LABEL770: + if_icmpeq LABEL779 + jump LABEL848 +LABEL779: iconst 95 iload 20 inv_getobj istore 25 iload 25 iconst -1 - if_icmpne LABEL778 - jump LABEL782 -LABEL778: + if_icmpne LABEL787 + jump LABEL791 +LABEL787: iload 29 iconst 1 add istore 29 -LABEL782: +LABEL791: iload 20 iload 32 - if_icmpge LABEL786 - jump LABEL837 -LABEL786: + if_icmpge LABEL795 + jump LABEL846 +LABEL795: iload 20 iload 33 - if_icmplt LABEL790 - jump LABEL837 -LABEL790: + if_icmplt LABEL799 + jump LABEL846 +LABEL799: iconst 0 cc_sethide iload 25 @@ -933,44 +942,44 @@ LABEL790: istore 28 iload 34 iload 22 - if_icmplt LABEL825 - jump LABEL830 -LABEL825: + if_icmplt LABEL834 + jump LABEL839 +LABEL834: iload 34 iconst 1 add istore 34 - jump LABEL836 -LABEL830: + jump LABEL845 +LABEL839: iconst 0 iload 35 iconst 1 add istore 35 istore 34 -LABEL836: - jump LABEL839 -LABEL837: +LABEL845: + jump LABEL848 +LABEL846: iconst 1 cc_sethide -LABEL839: +LABEL848: iload 20 iconst 1 add istore 20 - jump LABEL760 + jump LABEL769 SetTitle: iconst 0 ; Compare variable iconst 0 ; sconst "isTabMenuActive" - runelite_callback ; skip setting the bank title if the tag tab menu is active + runelite_callback ; skip setting the bank title if the tag tab menu is active if_icmpne FinishBuilding -LABEL844: +LABEL853: get_varbit 4170 iconst 2 - if_icmpeq LABEL848 - jump LABEL858 -LABEL848: + if_icmpeq LABEL857 + jump LABEL867 +LABEL857: sconst "Tab " iconst 105 iconst 115 @@ -982,8 +991,8 @@ LABEL848: runelite_callback ; iload 5 if_settext - jump LABEL864 -LABEL858: + jump LABEL873 +LABEL867: sconst "Tab " get_varbit 4150 tostring @@ -991,9 +1000,9 @@ LABEL858: sconst "setBankTitle" ; runelite_callback ; iload 5 - if_settext + if_settext FinishBuilding: -LABEL864: +LABEL873: iload 0 iload 1 iload 2 diff --git a/runelite-client/src/main/scripts/ResetChatboxInput.hash b/runelite-client/src/main/scripts/ResetChatboxInput.hash index c06fb60970..4f9d1c15c9 100644 --- a/runelite-client/src/main/scripts/ResetChatboxInput.hash +++ b/runelite-client/src/main/scripts/ResetChatboxInput.hash @@ -1 +1 @@ -38654CC2E80C30E1558EFE4A5C64D75F3A28122236A933F9F067084E856FFE58 \ No newline at end of file +55CFDE9983A73FA698E2F3CF4F79C0E62F40BF154E34A4F01112041928B01CB7 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/ResetChatboxInput.rs2asm b/runelite-client/src/main/scripts/ResetChatboxInput.rs2asm index 9a2a3308f4..ba3cb5d788 100644 --- a/runelite-client/src/main/scripts/ResetChatboxInput.rs2asm +++ b/runelite-client/src/main/scripts/ResetChatboxInput.rs2asm @@ -92,6 +92,64 @@ LABEL40: cc_deleteall iconst 10616886 cc_deleteall + iconst 0 + iconst -8 + iconst 1 + iconst 1 + iconst 10616876 + if_setposition + iconst 0 + iconst 40 + iconst 1 + iconst 0 + iconst 10616876 + if_setsize + iconst 1 + iconst 1 + iconst 0 + iconst 10616876 + if_settextalign + iconst 496 + iconst 10616876 + if_settextfont + iconst 496 + iconst 10616877 + if_settextfont + iconst 128 + iconst 10616877 + if_setcolour + iconst -1 + sconst "" + iconst 10616877 + if_setonmouseover + iconst -1 + sconst "" + iconst 10616877 + if_setonmouseleave + sconst "" + iconst 10616877 + if_settext + iconst 0 + iconst 22 + iconst 1 + iconst 1 + iconst 10616877 + if_setposition + iconst -1 + sconst "" + iconst 10616872 + if_setonclick + iconst -1 + sconst "" + iconst 10616877 + if_setonclick + iconst -1 + sconst "" + iconst 10616877 + if_setonkey + iconst 1 + iconst 10616874 + if_sethide iconst -1 sconst "" iconst 10616872 @@ -167,19 +225,19 @@ LABEL40: if_setonclick get_varc_int 41 iconst 1337 - if_icmpeq LABEL157 - jump LABEL161 -LABEL157: + if_icmpeq LABEL215 + jump LABEL219 +LABEL215: invoke 2526 pop_int clientclock set_varc_int 384 -LABEL161: +LABEL219: invoke 1972 iconst 1 - if_icmpeq LABEL165 - jump LABEL166 -LABEL165: + if_icmpeq LABEL223 + jump LABEL224 +LABEL223: invoke 2581 -LABEL166: +LABEL224: return