diff --git a/cache/pom.xml b/cache/pom.xml index e68f43616e7..cbce665f7c3 100644 --- a/cache/pom.xml +++ b/cache/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.18-SNAPSHOT + 1.11.19-SNAPSHOT cache diff --git a/docs/development.md b/docs/development.md index 30d47eb94b5..525e0f8b20c 100644 --- a/docs/development.md +++ b/docs/development.md @@ -135,7 +135,7 @@ import net.runelite.client.plugins.microbot.Microbot; import net.runelite.client.plugins.microbot.Script; import net.runelite.client.plugins.microbot.util.camera.Rs2Camera; import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; -import net.runelite.client.plugins.microbot.util.math.Random; +import net.runelite.client.plugins.microbot.util.math.Rs2Random; import net.runelite.client.plugins.microbot.util.npc.Rs2Npc; import net.runelite.client.plugins.microbot.util.player.Rs2Player; diff --git a/pom.xml b/pom.xml index a2e5c1f10fd..15be0abb50a 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ net.runelite runelite-parent - 1.11.18-SNAPSHOT + 1.11.19-SNAPSHOT pom RuneLite diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml index d9ff537fe4f..d22396109dc 100644 --- a/runelite-api/pom.xml +++ b/runelite-api/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.18-SNAPSHOT + 1.11.19-SNAPSHOT runelite-api diff --git a/runelite-api/src/main/interfaces/interfaces.toml b/runelite-api/src/main/interfaces/interfaces.toml index 67acd1de5a6..7772a723cda 100644 --- a/runelite-api/src/main/interfaces/interfaces.toml +++ b/runelite-api/src/main/interfaces/interfaces.toml @@ -342,10 +342,10 @@ teleport_button=26 [fairy_ring_panel] id=381 header=2 -list=7 -favorites=8 -separator=9 -scrollbar=152 +list=8 +favorites=9 +separator=10 +scrollbar=166 [fixed_viewport] id=548 @@ -563,8 +563,8 @@ run_orb_text=28 spec_orb=33 worldmap_orb=48 wiki_banner_parent=49 -wiki_banner=50 -worldmap_options=53 +wiki_banner=51 +worldmap_options=54 [mlm] id=382 diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java index 0362f30892e..f2ddc1934ad 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -1366,7 +1366,6 @@ public final class NpcID public static final int SMALL_ZOMBIE_MONKEY = 1467; public static final int LARGE_ZOMBIE_MONKEY = 1468; public static final int MONKEY_1469 = 1469; - public static final int RANTZ = 1470; public static final int FYCIE = 1471; public static final int BUGS = 1472; public static final int SWAMP_TOAD = 1473; @@ -4513,7 +4512,7 @@ public final class NpcID public static final int GOBLIN_COOK_4852 = 4852; public static final int SKRACH_UGLOGWEE_4853 = 4853; public static final int SKRACH_UGLOGWEE_4854 = 4854; - public static final int RANTZ_4855 = 4855; + public static final int RANTZ = 4855; public static final int RANTZ_4856 = 4856; public static final int RANTZ_4857 = 4857; public static final int OGRE_BOAT = 4858; @@ -7444,7 +7443,6 @@ public final class NpcID public static final int NYLOCAS_MATOMENOS = 8366; public static final int BLOOD_SPAWN = 8367; public static final int ABIGAILA = 8368; - public static final int VERZIK_VITUR_8369 = 8369; public static final int VERZIK_VITUR_8370 = 8370; public static final int VERZIK_VITUR_8371 = 8371; public static final int VERZIK_VITUR_8372 = 8372; @@ -9088,7 +9086,6 @@ public final class NpcID public static final int NYLOCAS_HAGIOS_10843 = 10843; public static final int NYLOCAS_ATHANATOS_10844 = 10844; public static final int NYLOCAS_MATOMENOS_10845 = 10845; - public static final int VERZIK_VITUR_10847 = 10847; public static final int VERZIK_VITUR_10848 = 10848; public static final int VERZIK_VITUR_10849 = 10849; public static final int VERZIK_VITUR_10850 = 10850; @@ -12355,5 +12352,11 @@ public final class NpcID public static final int HARVESTER = 14790; public static final int HARVESTER_14791 = 14791; public static final int WIZGUARD = 14792; + public static final int RANTZ_14793 = 14793; + public static final int RANTZ_14794 = 14794; + public static final int VERZIK_VITUR_14795 = 14795; + public static final int VERZIK_VITUR_14796 = 14796; + public static final int VERZIK_VITUR_14797 = 14797; + public static final int VERZIK_VITUR_14798 = 14798; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java index 50f06e47510..f92255b91de 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java @@ -113,6 +113,7 @@ public final class NullNpcID public static final int NULL_1457 = 1457; public static final int NULL_1458 = 1458; public static final int NULL_1459 = 1459; + public static final int NULL_1470 = 1470; public static final int NULL_1491 = 1491; public static final int NULL_1492 = 1492; public static final int NULL_1493 = 1493; @@ -918,6 +919,7 @@ public final class NullNpcID public static final int NULL_8319 = 8319; public static final int NULL_8325 = 8325; public static final int NULL_8358 = 8358; + public static final int NULL_8369 = 8369; public static final int NULL_8380 = 8380; public static final int NULL_8386 = 8386; public static final int NULL_8389 = 8389; @@ -1751,6 +1753,7 @@ public final class NullNpcID public static final int NULL_10790 = 10790; public static final int NULL_10811 = 10811; public static final int NULL_10846 = 10846; + public static final int NULL_10847 = 10847; public static final int NULL_10863 = 10863; public static final int NULL_10866 = 10866; public static final int NULL_10869 = 10869; diff --git a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java index aafa103c2aa..b53f172b3d3 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -29852,5 +29852,6 @@ public final class NullObjectID public static final int NULL_57718 = 57718; public static final int NULL_57720 = 57720; public static final int NULL_57721 = 57721; + public static final int NULL_57722 = 57722; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java index 7b803662e5b..719c58e856b 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -27863,5 +27863,6 @@ public final class ObjectID public static final int BRIDGE_57713 = 57713; public static final int BRIDGE_57714 = 57714; public static final int BRIDGE_SUPPORT = 57719; + public static final int ENERGY_BARRIER_57723 = 57723; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java index 198a433a8af..4e3bed8c9c7 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/InterfaceID.java @@ -1252,6 +1252,7 @@ public static final class Bankmain public static final int DEPOSITINV_TOGGLE = 0x000c_003e; public static final int DEPOSITWORN_TOGGLE = 0x000c_003f; public static final int DEPOSITPOTION_TOGGLE = 0x000c_0040; + public static final int CHUGGINGBARREL_TOGGLE = 0x000c_0041; public static final int RELEASE_PLACEHOLDERS = 0x000c_0042; public static final int LOCKS = 0x000c_0043; public static final int BANK_FILLERS = 0x000c_0044; @@ -1408,48 +1409,76 @@ public static final class Bankside public static final int RUNEPOUCH_CONTENTS = 0x000f_0019; public static final int RUNEPOUCH_TOP = 0x000f_001a; public static final int RUNEPOUCH_CONTENTS_TEXT1 = 0x000f_001b; - public static final int RUNEPOUCH_LOADOUT_A = 0x000f_001c; - public static final int RUNEPOUCH_LOAD_A = 0x000f_001d; - public static final int RUNEPOUCH_LOADOUT_B = 0x000f_001e; - public static final int RUNEPOUCH_LOAD_B = 0x000f_001f; - public static final int RUNEPOUCH_LOADOUT_C = 0x000f_0020; - public static final int RUNEPOUCH_LOAD_C = 0x000f_0021; - public static final int RUNEPOUCH_LOADOUT_D = 0x000f_0022; - public static final int RUNEPOUCH_LOAD_D = 0x000f_0023; + public static final int RUNEPOUCH_LOAD_A = 0x000f_001c; + public static final int RUNEPOUCH_LOAD_B = 0x000f_001d; + public static final int RUNEPOUCH_LOAD_C = 0x000f_001e; + public static final int RUNEPOUCH_LOAD_D = 0x000f_001f; + public static final int RUNEPOUCH_LOADOUT_SCROLLBAR = 0x000f_0020; + public static final int RUNEPOUCH_LOADOUT_CONTAINER = 0x000f_0021; + public static final int RUNEPOUCH_LOADOUT_A = 0x000f_0022; + public static final int RUNEPOUCH_NAME_A = 0x000f_0023; public static final int RUNEPOUCH_SELECT_CONTAINER = 0x000f_0024; - public static final int RUNEPOUCH_SELECT_CONTAINER_GRAPHIC0 = 0x000f_0025; - public static final int RUNEPOUCH_SELECT_LIST = 0x000f_0026; - public static final int RUNEPOUCH_SELECT_SCROLLBAR = 0x000f_0027; - public static final int BANKSIDE_HIGHLIGHT = 0x000f_0028; - public static final int PREPOT_DEVICE_CONTAINER = 0x000f_0029; - public static final int PREPOT_DEVICE_BANKALL = 0x000f_002a; - public static final int PREPOT_DEVICE_FILL = 0x000f_002b; - public static final int PREPOT_DEVICE_CONTAINER_TEXT2 = 0x000f_002c; - public static final int PREPOT_DEVICE_DISMISS = 0x000f_002d; - public static final int PREPOT_DEVICE_FRAME = 0x000f_002e; - public static final int PREPOT_DEVICE_FRAME_GRAPHIC0 = 0x000f_002f; - public static final int PREPOT_DEVICE_CONTENTS_CONTAINER = 0x000f_0030; - public static final int PREPOT_DEVICE_CONTENTS_BG = 0x000f_0031; - public static final int PREPOT_DEVICE_CONTENTS = 0x000f_0032; - public static final int PREPOT_DEVICE_CONTENTS_CONTAINER_TEXT2 = 0x000f_0033; - public static final int PREPOT_DEVICE_LOADOUTS_SCROLLBAR = 0x000f_0034; - public static final int PREPOT_DEVICE_LOADOUTS = 0x000f_0035; - public static final int PREPOT_DEVICE_LOADOUT_0 = 0x000f_0036; - public static final int PREPOT_DEVICE_LOADOUT_1 = 0x000f_0037; - public static final int PREPOT_DEVICE_LOADOUT_2 = 0x000f_0038; - public static final int PREPOT_DEVICE_LOADOUT_3 = 0x000f_0039; - public static final int PREPOT_DEVICE_LOADOUT_1_LOAD = 0x000f_003a; - public static final int PREPOT_DEVICE_LOADOUT_1_SAVE = 0x000f_003b; - public static final int PREPOT_DEVICE_LOADOUT_1_CONTENTS = 0x000f_003c; - public static final int PREPOT_DEVICE_LOADOUT_2_LOAD = 0x000f_003d; - public static final int PREPOT_DEVICE_LOADOUT_2_SAVE = 0x000f_003e; - public static final int PREPOT_DEVICE_LOADOUT_2_CONTENTS = 0x000f_003f; - public static final int PREPOT_DEVICE_LOADOUT_3_LOAD = 0x000f_0040; - public static final int PREPOT_DEVICE_LOADOUT_3_SAVE = 0x000f_0041; - public static final int PREPOT_DEVICE_LOADOUT_3_CONTENTS = 0x000f_0042; - public static final int PREPOT_DEVICE_LOADOUT_0_LOAD = 0x000f_0043; - public static final int PREPOT_DEVICE_LOADOUT_0_SAVE = 0x000f_0044; - public static final int PREPOT_DEVICE_LOADOUT_0_CONTENTS = 0x000f_0045; + public static final int RUNEPOUCH_NAME_SELECT_CONTAINER = 0x000f_0025; + public static final int RUNEPOUCH_LOADOUT_B = 0x000f_0026; + public static final int RUNEPOUCH_NAME_B = 0x000f_0027; + public static final int RUNEPOUCH_SELECT_CONTAINER_GRAPHIC0 = 0x000f_0028; + public static final int RUNEPOUCH_LOADOUT_C = 0x000f_0029; + public static final int RUNEPOUCH_NAME_C = 0x000f_002a; + public static final int RUNEPOUCH_SELECT_LIST = 0x000f_002b; + public static final int RUNEPOUCH_LOADOUT_D = 0x000f_002c; + public static final int RUNEPOUCH_NAME_D = 0x000f_002d; + public static final int RUNEPOUCH_LOADOUT_E = 0x000f_002e; + public static final int RUNEPOUCH_NAME_E = 0x000f_002f; + public static final int RUNEPOUCH_LOADOUT_F = 0x000f_0030; + public static final int RUNEPOUCH_NAME_F = 0x000f_0031; + public static final int RUNEPOUCH_LOADOUT_G = 0x000f_0032; + public static final int RUNEPOUCH_NAME_G = 0x000f_0033; + public static final int RUNEPOUCH_LOADOUT_H = 0x000f_0034; + public static final int RUNEPOUCH_NAME_H = 0x000f_0035; + public static final int RUNEPOUCH_LOADOUT_I = 0x000f_0036; + public static final int RUNEPOUCH_NAME_I = 0x000f_0037; + public static final int RUNEPOUCH_LOADOUT_J = 0x000f_0038; + public static final int RUNEPOUCH_NAME_J = 0x000f_0039; + public static final int RUNEPOUCH_SELECT_SCROLLBAR = 0x000f_003a; + public static final int BANKSIDE_HIGHLIGHT = 0x000f_003b; + public static final int PREPOT_DEVICE_CONTAINER = 0x000f_003c; + public static final int PREPOT_DEVICE_BANKALL = 0x000f_003d; + public static final int PREPOT_DEVICE_FILL = 0x000f_003e; + public static final int PREPOT_DEVICE_CONTAINER_TEXT2 = 0x000f_003f; + public static final int PREPOT_DEVICE_DISMISS = 0x000f_0040; + public static final int PREPOT_DEVICE_FRAME = 0x000f_0041; + public static final int PREPOT_DEVICE_FRAME_GRAPHIC0 = 0x000f_0042; + public static final int PREPOT_DEVICE_CONTENTS_CONTAINER = 0x000f_0043; + public static final int PREPOT_DEVICE_CONTENTS_BG = 0x000f_0044; + public static final int PREPOT_DEVICE_CONTENTS = 0x000f_0045; + public static final int PREPOT_DEVICE_CONTENTS_CONTAINER_TEXT2 = 0x000f_0046; + public static final int PREPOT_DEVICE_LOADOUTS_SCROLLBAR = 0x000f_0047; + public static final int PREPOT_DEVICE_LOADOUTS = 0x000f_0048; + public static final int PREPOT_DEVICE_LOADOUT_0 = 0x000f_0049; + public static final int PREPOT_DEVICE_LOADOUT_1 = 0x000f_004a; + public static final int PREPOT_DEVICE_LOADOUT_2 = 0x000f_004b; + public static final int PREPOT_DEVICE_LOADOUT_3 = 0x000f_004c; + public static final int PREPOT_DEVICE_LOADOUT_1_LOAD = 0x000f_004d; + public static final int PREPOT_DEVICE_LOADOUT_1_SAVE = 0x000f_004e; + public static final int PREPOT_DEVICE_LOADOUT_1_CONTENTS = 0x000f_004f; + public static final int PREPOT_DEVICE_LOADOUT_2_LOAD = 0x000f_0050; + public static final int PREPOT_DEVICE_LOADOUT_2_SAVE = 0x000f_0051; + public static final int PREPOT_DEVICE_LOADOUT_2_CONTENTS = 0x000f_0052; + public static final int PREPOT_DEVICE_LOADOUT_3_LOAD = 0x000f_0053; + public static final int PREPOT_DEVICE_LOADOUT_3_SAVE = 0x000f_0054; + public static final int PREPOT_DEVICE_LOADOUT_3_CONTENTS = 0x000f_0055; + public static final int PREPOT_DEVICE_LOADOUT_0_LOAD = 0x000f_0056; + public static final int PREPOT_DEVICE_LOADOUT_0_SAVE = 0x000f_0057; + public static final int PREPOT_DEVICE_LOADOUT_0_CONTENTS = 0x000f_0058; + public static final int RUNEPOUCH_LOAD_E = 0x000f_0059; + public static final int RUNEPOUCH_LOAD_F = 0x000f_005a; + public static final int RUNEPOUCH_LOAD_G = 0x000f_005b; + public static final int RUNEPOUCH_LOAD_H = 0x000f_005c; + public static final int RUNEPOUCH_LOAD_I = 0x000f_005d; + public static final int RUNEPOUCH_LOAD_J = 0x000f_005e; + public static final int RUNEPOUCH_NAME_SELECT_CONTAINER_GRAPHIC0 = 0x000f_005f; + public static final int RUNEPOUCH_NAME_SELECT_LIST = 0x000f_0060; + public static final int RUNEPOUCH_NAME_SELECT_SCROLLBAR = 0x000f_0061; } public static final class Oculus @@ -3072,7 +3101,7 @@ public static final class CanoeStationsMap public static final int CHAMPIONS_CANOE_STATION_TEXT = 0x0039_001a; public static final int BARBARIAN_VILLAGE_CANOE_STATION = 0x0039_001b; public static final int EDGEVILLE_CANOE_STATION_TEXT = 0x0039_001c; - public static final int WILDERNESS_POND_TEXT_ = 0x0039_001d; + public static final int WILDERNESS_POND_TEXT = 0x0039_001d; public static final int CANOEING_DANGER_WILDERNESS_SKUL = 0x0039_001e; public static final int CANOEING_WILDERNESS_LAYER = 0x0039_001f; public static final int CANOEING_LUMBRIDGE_BUTTON = 0x0039_0020; @@ -3674,13 +3703,15 @@ public static final class Grouping public static final int DROPDOWN_SCROLLBAR = 0x004c_0017; public static final int ARROW = 0x004c_0018; public static final int UNIVERSE_TEXT6 = 0x004c_0019; - public static final int SUGGESTEDWORLD = 0x004c_001a; - public static final int JOINLEAVE = 0x004c_001b; - public static final int JOINLEAVE_GRAPHIC0 = 0x004c_001c; - public static final int JOINLEAVE_TEXT = 0x004c_001d; - public static final int TELEPORT = 0x004c_001e; - public static final int TELEPORT_GRAPHIC0 = 0x004c_001f; - public static final int TELEPORT_TEXT1 = 0x004c_0020; + public static final int HOP_BUTTON = 0x004c_001a; + public static final int HOP_BUTTON_BACKGROUND = 0x004c_001b; + public static final int SUGGESTEDWORLD = 0x004c_001c; + public static final int JOINLEAVE = 0x004c_001d; + public static final int JOINLEAVE_GRAPHIC0 = 0x004c_001e; + public static final int JOINLEAVE_TEXT = 0x004c_001f; + public static final int TELEPORT = 0x004c_0020; + public static final int TELEPORT_GRAPHIC0 = 0x004c_0021; + public static final int TELEPORT_TEXT1 = 0x004c_0022; } public static final class Quickprayer @@ -4225,7 +4256,7 @@ public static final class ChatchannelSetup public static final int UNIVERSE_RECT0 = 0x005e_0001; public static final int CONTAINER = 0x005e_0002; public static final int FRAME = 0x005e_0003; - public static final int __ = 0x005e_0004; + public static final int CONTAINER_GRAPHIC1 = 0x005e_0004; public static final int CONTAINER_GRAPHIC2 = 0x005e_0005; public static final int CONTAINER_GRAPHIC3 = 0x005e_0006; public static final int LEFT = 0x005e_0007; @@ -6538,10 +6569,12 @@ public static final class Orbs public static final int ORB_CONTENTRECOM = 0x00a0_002f; public static final int ORB_WORLDMAP = 0x00a0_0030; public static final int WIKI = 0x00a0_0031; - public static final int WIKI_ICON = 0x00a0_0032; - public static final int WIKI_ICON_GRAPHIC = 0x00a0_0033; - public static final int WORLDMAP_BACKING = 0x00a0_0034; - public static final int WORLDMAP = 0x00a0_0035; + public static final int TOOLTIP = 0x00a0_0032; + public static final int WIKI_ICON = 0x00a0_0033; + public static final int WIKI_ICON_GRAPHIC = 0x00a0_0034; + public static final int WORLDMAP_BACKING = 0x00a0_0035; + public static final int WORLDMAP = 0x00a0_0036; + public static final int WORLDMAP_TOOLTIP = 0x00a0_0037; } public static final class ToplevelOsrsStretch @@ -8198,7 +8231,7 @@ public static final class MagictrainingGrave public static final int MAGICTRAIN_GRAVE_BONES3 = 0x00c4_000b; public static final int MAGICTRAIN_GRAVE_BONES4 = 0x00c4_000c; public static final int MAGICTRAIN_BONE_TYPE_4 = 0x00c4_000d; - public static final int _MAGICTRAIN_BONE_TYPE_3 = 0x00c4_000e; + public static final int MAGICTRAIN_BONE_TYPE_3 = 0x00c4_000e; public static final int MAGICTRAIN_BONE_TYPE_2 = 0x00c4_000f; public static final int MAGICTRAIN_BONE_TYPE_1 = 0x00c4_0010; } @@ -9944,18 +9977,28 @@ public static final class Skillmulti public static final int OTHER = 0x010e_000a; public static final int X = 0x010e_000b; public static final int ALL = 0x010e_000c; - public static final int BOTTOM = 0x010e_000d; - public static final int A = 0x010e_000e; - public static final int B = 0x010e_000f; - public static final int C = 0x010e_0010; - public static final int D = 0x010e_0011; - public static final int E = 0x010e_0012; - public static final int F = 0x010e_0013; - public static final int G = 0x010e_0014; - public static final int H = 0x010e_0015; - public static final int I = 0x010e_0016; - public static final int J = 0x010e_0017; - public static final int TOOLTIP = 0x010e_0018; + public static final int BOTTOM_HOLDER = 0x010e_000d; + public static final int BOTTOM = 0x010e_000e; + public static final int A = 0x010e_000f; + public static final int B = 0x010e_0010; + public static final int C = 0x010e_0011; + public static final int D = 0x010e_0012; + public static final int E = 0x010e_0013; + public static final int F = 0x010e_0014; + public static final int G = 0x010e_0015; + public static final int H = 0x010e_0016; + public static final int I = 0x010e_0017; + public static final int J = 0x010e_0018; + public static final int K = 0x010e_0019; + public static final int L = 0x010e_001a; + public static final int M = 0x010e_001b; + public static final int N = 0x010e_001c; + public static final int O = 0x010e_001d; + public static final int P = 0x010e_001e; + public static final int Q = 0x010e_001f; + public static final int R = 0x010e_0020; + public static final int SCROLLBAR = 0x010e_0021; + public static final int TOOLTIP = 0x010e_0022; } public static final class RaidsStoragePrivate @@ -11109,7 +11152,7 @@ public static final class CwsWarning25 public static final int ROOT_GRAPHIC8 = 0x013f_0008; public static final int ROOT_GRAPHIC9 = 0x013f_0009; public static final int ROOT_GRAPHIC10 = 0x013f_000a; - public static final int __ = 0x013f_000b; + public static final int ROOT_GRAPHIC11 = 0x013f_000b; public static final int CWS_CLOSE = 0x013f_000c; public static final int WARNING_TEXT = 0x013f_000d; public static final int CWS_TEST_WARNING = 0x013f_000e; @@ -11620,7 +11663,7 @@ public static final class CwsWarning11 public static final int ROOT_GRAPHIC8 = 0x0147_0008; public static final int ROOT_GRAPHIC9 = 0x0147_0009; public static final int ROOT_GRAPHIC10 = 0x0147_000a; - public static final int __ = 0x0147_000b; + public static final int ROOT_GRAPHIC11 = 0x0147_000b; public static final int CWS_CLOSE = 0x0147_000c; public static final int WARNING_TEXT = 0x0147_000d; public static final int CWS_TEST_WARNING = 0x0147_000e; @@ -11803,7 +11846,7 @@ public static final class Tradeconfirm public static final int UNIVERSE_GRAPHIC9 = 0x014e_000c; public static final int TRADE2ACCEPT = 0x014e_000d; public static final int TRADE2DECLINE = 0x014e_000e; - public static final int __ = 0x014e_000f; + public static final int UNIVERSE_GRAPHIC12 = 0x014e_000f; public static final int UNIVERSE_GRAPHIC13 = 0x014e_0010; public static final int UNIVERSE_GRAPHIC14 = 0x014e_0011; public static final int UNIVERSE_GRAPHIC15 = 0x014e_0012; @@ -14537,152 +14580,171 @@ public static final class FairyringsLog public static final int SORT_1 = 0x017d_0004; public static final int SORT_2 = 0x017d_0005; public static final int TITLEBOX_TEXT1 = 0x017d_0006; - public static final int CONTENTS = 0x017d_0007; - public static final int FAVES = 0x017d_0008; - public static final int DIVIDER = 0x017d_0009; - public static final int FRAME = 0x017d_000a; - public static final int AIP = 0x017d_000b; - public static final int AIP_FAVE = 0x017d_000c; - public static final int AIQ = 0x017d_000d; - public static final int AIQ_FAVE = 0x017d_000e; - public static final int AIR = 0x017d_000f; - public static final int AIR_FAVE = 0x017d_0010; - public static final int AIS = 0x017d_0011; - public static final int AIS_FAVE = 0x017d_0012; - public static final int AJP = 0x017d_0013; - public static final int AJP_FAVE = 0x017d_0014; - public static final int AJQ = 0x017d_0015; - public static final int AJQ_FAVE = 0x017d_0016; - public static final int AJR = 0x017d_0017; - public static final int AJR_FAVE = 0x017d_0018; - public static final int AJS = 0x017d_0019; - public static final int AJS_FAVE = 0x017d_001a; - public static final int AKP = 0x017d_001b; - public static final int AKP_FAVE = 0x017d_001c; - public static final int AKQ = 0x017d_001d; - public static final int AKQ_FAVE = 0x017d_001e; - public static final int AKR = 0x017d_001f; - public static final int AKR_FAVE = 0x017d_0020; - public static final int AKS = 0x017d_0021; - public static final int AKS_FAVE = 0x017d_0022; - public static final int ALP = 0x017d_0023; - public static final int ALP_FAVE = 0x017d_0024; - public static final int ALQ = 0x017d_0025; - public static final int ALQ_FAVE = 0x017d_0026; - public static final int ALR = 0x017d_0027; - public static final int ALR_FAVE = 0x017d_0028; - public static final int ALS = 0x017d_0029; - public static final int ALS_FAVE = 0x017d_002a; - public static final int BIP = 0x017d_002b; - public static final int BIP_FAVE = 0x017d_002c; - public static final int BIQ = 0x017d_002d; - public static final int BIQ_FAVE = 0x017d_002e; - public static final int BIR = 0x017d_002f; - public static final int BIR_FAVE = 0x017d_0030; - public static final int BIS = 0x017d_0031; - public static final int BIS_FAVE = 0x017d_0032; - public static final int BJP = 0x017d_0033; - public static final int BJP_FAVE = 0x017d_0034; - public static final int BJQ = 0x017d_0035; - public static final int BJQ_FAVE = 0x017d_0036; - public static final int BJR = 0x017d_0037; - public static final int BJR_FAVE = 0x017d_0038; - public static final int BJS = 0x017d_0039; - public static final int BJS_FAVE = 0x017d_003a; - public static final int BKP = 0x017d_003b; - public static final int BKP_FAVE = 0x017d_003c; - public static final int BKQ = 0x017d_003d; - public static final int BKQ_FAVE = 0x017d_003e; - public static final int BKR = 0x017d_003f; - public static final int BKR_FAVE = 0x017d_0040; - public static final int BKS = 0x017d_0041; - public static final int BKS_FAVE = 0x017d_0042; - public static final int BLP = 0x017d_0043; - public static final int BLP_FAVE = 0x017d_0044; - public static final int BLQ = 0x017d_0045; - public static final int BLQ_FAVE = 0x017d_0046; - public static final int BLR = 0x017d_0047; - public static final int BLR_FAVE = 0x017d_0048; - public static final int BLS = 0x017d_0049; - public static final int BLS_FAVE = 0x017d_004a; - public static final int CIP = 0x017d_004b; - public static final int CIP_FAVE = 0x017d_004c; - public static final int CIQ = 0x017d_004d; - public static final int CIQ_FAVE = 0x017d_004e; - public static final int CIR = 0x017d_004f; - public static final int CIR_FAVE = 0x017d_0050; - public static final int CIS = 0x017d_0051; - public static final int CIS_FAVE = 0x017d_0052; - public static final int CJP = 0x017d_0053; - public static final int CJP_FAVE = 0x017d_0054; - public static final int CJQ = 0x017d_0055; - public static final int CJQ_FAVE = 0x017d_0056; - public static final int CJR = 0x017d_0057; - public static final int CJR_FAVE = 0x017d_0058; - public static final int CJS = 0x017d_0059; - public static final int CJS_FAVE = 0x017d_005a; - public static final int CKP = 0x017d_005b; - public static final int CKP_FAVE = 0x017d_005c; - public static final int CKQ = 0x017d_005d; - public static final int CKQ_FAVE = 0x017d_005e; - public static final int CKR = 0x017d_005f; - public static final int CKR_FAVE = 0x017d_0060; - public static final int CKS = 0x017d_0061; - public static final int CKS_FAVE = 0x017d_0062; - public static final int CLP = 0x017d_0063; - public static final int CLP_FAVE = 0x017d_0064; - public static final int CLQ = 0x017d_0065; - public static final int CLQ_FAVE = 0x017d_0066; - public static final int CLR = 0x017d_0067; - public static final int CLR_FAVE = 0x017d_0068; - public static final int CLS = 0x017d_0069; - public static final int CLS_FAVE = 0x017d_006a; - public static final int DIP = 0x017d_006b; - public static final int DIP_FAVE = 0x017d_006c; - public static final int DIQ = 0x017d_006d; - public static final int DIQ_FAVE = 0x017d_006e; - public static final int DIR = 0x017d_006f; - public static final int DIR_FAVE = 0x017d_0070; - public static final int DIS = 0x017d_0071; - public static final int DIS_FAVE = 0x017d_0072; - public static final int DJP = 0x017d_0073; - public static final int DJP_FAVE = 0x017d_0074; - public static final int DJQ = 0x017d_0075; - public static final int DJQ_FAVE = 0x017d_0076; - public static final int DJR = 0x017d_0077; - public static final int DJR_FAVE = 0x017d_0078; - public static final int DJS = 0x017d_0079; - public static final int DJS_FAVE = 0x017d_007a; - public static final int DKP = 0x017d_007b; - public static final int DKP_FAVE = 0x017d_007c; - public static final int DKQ = 0x017d_007d; - public static final int DKQ_FAVE = 0x017d_007e; - public static final int DKR = 0x017d_007f; - public static final int DKR_FAVE = 0x017d_0080; - public static final int DKS = 0x017d_0081; - public static final int DKS_FAVE = 0x017d_0082; - public static final int DLP = 0x017d_0083; - public static final int DLP_FAVE = 0x017d_0084; - public static final int DLQ = 0x017d_0085; - public static final int DLQ_FAVE = 0x017d_0086; - public static final int DLR = 0x017d_0087; - public static final int DLR_FAVE = 0x017d_0088; - public static final int DLS = 0x017d_0089; - public static final int DLS_FAVE = 0x017d_008a; - public static final int HIDEOUT = 0x017d_008b; - public static final int FAVE_1 = 0x017d_008c; - public static final int FAVE_2 = 0x017d_008d; - public static final int FAVE_3 = 0x017d_008e; - public static final int FAVE_4 = 0x017d_008f; - public static final int FAVE_CODE_1 = 0x017d_0090; - public static final int FAVE_CODE_2 = 0x017d_0091; - public static final int FAVE_CODE_3 = 0x017d_0092; - public static final int FAVE_CODE_4 = 0x017d_0093; - public static final int FAVE_ICON_1 = 0x017d_0094; - public static final int FAVE_ICON_2 = 0x017d_0095; - public static final int FAVE_ICON_3 = 0x017d_0096; - public static final int FAVE_ICON_4 = 0x017d_0097; - public static final int SCROLLBAR = 0x017d_0098; + public static final int TITLEBOX_GRAPHIC2 = 0x017d_0007; + public static final int CONTENTS = 0x017d_0008; + public static final int FAVES = 0x017d_0009; + public static final int DIVIDER = 0x017d_000a; + public static final int FRAME = 0x017d_000b; + public static final int AIP = 0x017d_000c; + public static final int AIP_FAVE = 0x017d_000d; + public static final int AIQ = 0x017d_000e; + public static final int AIQ_FAVE = 0x017d_000f; + public static final int AIR = 0x017d_0010; + public static final int AIR_FAVE = 0x017d_0011; + public static final int AIS = 0x017d_0012; + public static final int AIS_FAVE = 0x017d_0013; + public static final int AJP = 0x017d_0014; + public static final int AJP_FAVE = 0x017d_0015; + public static final int AJQ = 0x017d_0016; + public static final int AJQ_FAVE = 0x017d_0017; + public static final int AJR = 0x017d_0018; + public static final int AJR_FAVE = 0x017d_0019; + public static final int AJS = 0x017d_001a; + public static final int AJS_FAVE = 0x017d_001b; + public static final int AKP = 0x017d_001c; + public static final int AKP_FAVE = 0x017d_001d; + public static final int AKQ = 0x017d_001e; + public static final int AKQ_FAVE = 0x017d_001f; + public static final int AKR = 0x017d_0020; + public static final int AKR_FAVE = 0x017d_0021; + public static final int AKS = 0x017d_0022; + public static final int AKS_FAVE = 0x017d_0023; + public static final int ALP = 0x017d_0024; + public static final int ALP_FAVE = 0x017d_0025; + public static final int ALQ = 0x017d_0026; + public static final int ALQ_FAVE = 0x017d_0027; + public static final int ALR = 0x017d_0028; + public static final int ALR_FAVE = 0x017d_0029; + public static final int ALS = 0x017d_002a; + public static final int ALS_FAVE = 0x017d_002b; + public static final int BIP = 0x017d_002c; + public static final int BIP_FAVE = 0x017d_002d; + public static final int BIQ = 0x017d_002e; + public static final int BIQ_FAVE = 0x017d_002f; + public static final int BIR = 0x017d_0030; + public static final int BIR_FAVE = 0x017d_0031; + public static final int BIS = 0x017d_0032; + public static final int BIS_FAVE = 0x017d_0033; + public static final int BJP = 0x017d_0034; + public static final int BJP_FAVE = 0x017d_0035; + public static final int BJQ = 0x017d_0036; + public static final int BJQ_FAVE = 0x017d_0037; + public static final int BJR = 0x017d_0038; + public static final int BJR_FAVE = 0x017d_0039; + public static final int BJS = 0x017d_003a; + public static final int BJS_FAVE = 0x017d_003b; + public static final int BKP = 0x017d_003c; + public static final int BKP_FAVE = 0x017d_003d; + public static final int BKQ = 0x017d_003e; + public static final int BKQ_FAVE = 0x017d_003f; + public static final int BKR = 0x017d_0040; + public static final int BKR_FAVE = 0x017d_0041; + public static final int BKS = 0x017d_0042; + public static final int BKS_FAVE = 0x017d_0043; + public static final int BLP = 0x017d_0044; + public static final int BLP_FAVE = 0x017d_0045; + public static final int BLQ = 0x017d_0046; + public static final int BLQ_FAVE = 0x017d_0047; + public static final int BLR = 0x017d_0048; + public static final int BLR_FAVE = 0x017d_0049; + public static final int BLS = 0x017d_004a; + public static final int BLS_FAVE = 0x017d_004b; + public static final int CIP = 0x017d_004c; + public static final int CIP_FAVE = 0x017d_004d; + public static final int CIQ = 0x017d_004e; + public static final int CIQ_FAVE = 0x017d_004f; + public static final int CIR = 0x017d_0050; + public static final int CIR_FAVE = 0x017d_0051; + public static final int CIS = 0x017d_0052; + public static final int CIS_FAVE = 0x017d_0053; + public static final int CJP = 0x017d_0054; + public static final int CJP_FAVE = 0x017d_0055; + public static final int CJQ = 0x017d_0056; + public static final int CJQ_FAVE = 0x017d_0057; + public static final int CJR = 0x017d_0058; + public static final int CJR_FAVE = 0x017d_0059; + public static final int CJS = 0x017d_005a; + public static final int CJS_FAVE = 0x017d_005b; + public static final int CKP = 0x017d_005c; + public static final int CKP_FAVE = 0x017d_005d; + public static final int CKQ = 0x017d_005e; + public static final int CKQ_FAVE = 0x017d_005f; + public static final int CKR = 0x017d_0060; + public static final int CKR_FAVE = 0x017d_0061; + public static final int CKS = 0x017d_0062; + public static final int CKS_FAVE = 0x017d_0063; + public static final int CLP = 0x017d_0064; + public static final int CLP_FAVE = 0x017d_0065; + public static final int CLQ = 0x017d_0066; + public static final int CLQ_FAVE = 0x017d_0067; + public static final int CLR = 0x017d_0068; + public static final int CLR_FAVE = 0x017d_0069; + public static final int CLS = 0x017d_006a; + public static final int CLS_FAVE = 0x017d_006b; + public static final int DIP = 0x017d_006c; + public static final int DIP_FAVE = 0x017d_006d; + public static final int DIQ = 0x017d_006e; + public static final int DIQ_FAVE = 0x017d_006f; + public static final int DIR = 0x017d_0070; + public static final int DIR_FAVE = 0x017d_0071; + public static final int DIS = 0x017d_0072; + public static final int DIS_FAVE = 0x017d_0073; + public static final int DJP = 0x017d_0074; + public static final int DJP_FAVE = 0x017d_0075; + public static final int DJQ = 0x017d_0076; + public static final int DJQ_FAVE = 0x017d_0077; + public static final int DJR = 0x017d_0078; + public static final int DJR_FAVE = 0x017d_0079; + public static final int DJS = 0x017d_007a; + public static final int DJS_FAVE = 0x017d_007b; + public static final int DKP = 0x017d_007c; + public static final int DKP_FAVE = 0x017d_007d; + public static final int DKQ = 0x017d_007e; + public static final int DKQ_FAVE = 0x017d_007f; + public static final int DKR = 0x017d_0080; + public static final int DKR_FAVE = 0x017d_0081; + public static final int DKS = 0x017d_0082; + public static final int DKS_FAVE = 0x017d_0083; + public static final int DLP = 0x017d_0084; + public static final int DLP_FAVE = 0x017d_0085; + public static final int DLQ = 0x017d_0086; + public static final int DLQ_FAVE = 0x017d_0087; + public static final int DLR = 0x017d_0088; + public static final int DLR_FAVE = 0x017d_0089; + public static final int DLS = 0x017d_008a; + public static final int DLS_FAVE = 0x017d_008b; + public static final int HIDEOUT = 0x017d_008c; + public static final int FAVE_1 = 0x017d_008d; + public static final int FAVE_2 = 0x017d_008e; + public static final int FAVE_3 = 0x017d_008f; + public static final int FAVE_4 = 0x017d_0090; + public static final int FAVE_5 = 0x017d_0091; + public static final int FAVE_6 = 0x017d_0092; + public static final int FAVE_7 = 0x017d_0093; + public static final int FAVE_8 = 0x017d_0094; + public static final int FAVE_9 = 0x017d_0095; + public static final int FAVE_10 = 0x017d_0096; + public static final int FAVE_CODE_1 = 0x017d_0097; + public static final int FAVE_CODE_2 = 0x017d_0098; + public static final int FAVE_CODE_3 = 0x017d_0099; + public static final int FAVE_CODE_4 = 0x017d_009a; + public static final int FAVE_CODE_5 = 0x017d_009b; + public static final int FAVE_CODE_6 = 0x017d_009c; + public static final int FAVE_CODE_7 = 0x017d_009d; + public static final int FAVE_CODE_8 = 0x017d_009e; + public static final int FAVE_CODE_9 = 0x017d_009f; + public static final int FAVE_CODE_10 = 0x017d_00a0; + public static final int FAVE_ICON_1 = 0x017d_00a1; + public static final int FAVE_ICON_2 = 0x017d_00a2; + public static final int FAVE_ICON_3 = 0x017d_00a3; + public static final int FAVE_ICON_4 = 0x017d_00a4; + public static final int FAVE_ICON_5 = 0x017d_00a5; + public static final int SCROLLBAR = 0x017d_00a6; + public static final int FAVE_ICON_6 = 0x017d_00a7; + public static final int FAVE_ICON_7 = 0x017d_00a8; + public static final int FAVE_ICON_8 = 0x017d_00a9; + public static final int FAVE_ICON_9 = 0x017d_00aa; + public static final int FAVE_ICON_10 = 0x017d_00ab; } public static final class MotherlodeHud @@ -16764,8 +16826,8 @@ public static final class KingsLetterV2 public static final int KINGS_LETTER_TEXT = 0x01cf_0001; public static final int KINGS_LETTER_SIGNATURE = 0x01cf_0002; public static final int ROOT_GRAPHIC3 = 0x01cf_0003; - public static final int _KINGS_LETTER_CLOSE_GRAPHIC0 = 0x01cf_0004; - public static final int _KINGS_LETTER_CLOSE = 0x01cf_0005; + public static final int KINGS_LETTER_CLOSE_GRAPHIC0 = 0x01cf_0004; + public static final int KINGS_LETTER_CLOSE = 0x01cf_0005; public static final int KINGS_SEAL = 0x01cf_0006; } @@ -17677,7 +17739,7 @@ public static final class BarbassaultPlayerstat public static final int ROOT_MODEL0 = 0x01ea_0000; public static final int ROOT_TEXT1 = 0x01ea_0001; public static final int ROOT_TEXT2 = 0x01ea_0002; - public static final int _______ = 0x01ea_0003; + public static final int ROOT_TEXT3 = 0x01ea_0003; public static final int ROOT_TEXT4 = 0x01ea_0004; public static final int ROOT_TEXT5 = 0x01ea_0005; public static final int ROOT_TEXT6 = 0x01ea_0006; @@ -18032,7 +18094,7 @@ public static final class RaidsSidepanel public static final class QuestFeverGunLocker { - public static final int BACK_GROUND____________ = 0x01f5_0000; + public static final int BACK_GROUND = 0x01f5_0000; public static final int GUN_LOCKER = 0x01f5_0001; public static final int CANNON_BARREL = 0x01f5_0002; public static final int FUSE = 0x01f5_0003; @@ -18067,7 +18129,7 @@ public static final class QuestFeverGunLocker public static final class QuestFeverRepairLocker { - public static final int BACK_GROUND____________ = 0x01f6_0000; + public static final int BACK_GROUND = 0x01f6_0000; public static final int REPAIR_LOCKER = 0x01f6_0001; public static final int ROPE = 0x01f6_0002; public static final int HAMMER = 0x01f6_0003; @@ -19574,6 +19636,12 @@ public static final class RaidsRewards public static final int CONTENT_MODEL0 = 0x021b_0003; public static final int CONTENT_MODEL1 = 0x021b_0004; public static final int ITEMS = 0x021b_0005; + public static final int BANK = 0x021b_0006; + public static final int BANK_ICON = 0x021b_0007; + public static final int INVENTORY = 0x021b_0008; + public static final int INVENTORY_ICON = 0x021b_0009; + public static final int DISCARD = 0x021b_000a; + public static final int DISCARD_ICON = 0x021b_000b; } public static final class IiElnocksExchange @@ -20135,7 +20203,7 @@ public static final class CwsWarning9 public static final int ROOT_GRAPHIC8 = 0x0230_0008; public static final int ROOT_GRAPHIC9 = 0x0230_0009; public static final int ROOT_GRAPHIC10 = 0x0230_000a; - public static final int __ = 0x0230_000b; + public static final int ROOT_GRAPHIC11 = 0x0230_000b; public static final int CWS_CLOSE = 0x0230_000c; public static final int WARNING_TEXT = 0x0230_000d; public static final int CWS_TEST_WARNING = 0x0230_000e; @@ -20161,7 +20229,7 @@ public static final class CwsWarning21 public static final int ROOT_GRAPHIC8 = 0x0231_0008; public static final int ROOT_GRAPHIC9 = 0x0231_0009; public static final int ROOT_GRAPHIC10 = 0x0231_000a; - public static final int __ = 0x0231_000b; + public static final int ROOT_GRAPHIC11 = 0x0231_000b; public static final int CWS_CLOSE = 0x0231_000c; public static final int WARNING_TEXT = 0x0231_000d; public static final int CWS_TEST_WARNING = 0x0231_000e; @@ -20187,7 +20255,7 @@ public static final class CwsWarning2 public static final int ROOT_GRAPHIC8 = 0x0232_0008; public static final int ROOT_GRAPHIC9 = 0x0232_0009; public static final int ROOT_GRAPHIC10 = 0x0232_000a; - public static final int __ = 0x0232_000b; + public static final int ROOT_GRAPHIC11 = 0x0232_000b; public static final int CWS_CLOSE = 0x0232_000c; public static final int WARNING_TEXT = 0x0232_000d; public static final int CWS_TEST_WARNING = 0x0232_000e; @@ -20213,7 +20281,7 @@ public static final class CwsWarning5 public static final int ROOT_GRAPHIC8 = 0x0233_0008; public static final int ROOT_GRAPHIC9 = 0x0233_0009; public static final int ROOT_GRAPHIC10 = 0x0233_000a; - public static final int __ = 0x0233_000b; + public static final int ROOT_GRAPHIC11 = 0x0233_000b; public static final int CWS_CLOSE = 0x0233_000c; public static final int WARNING_TEXT = 0x0233_000d; public static final int CWS_TEST_WARNING = 0x0233_000e; @@ -20239,7 +20307,7 @@ public static final class CwsWarning23 public static final int ROOT_GRAPHIC8 = 0x0234_0008; public static final int ROOT_GRAPHIC9 = 0x0234_0009; public static final int ROOT_GRAPHIC10 = 0x0234_000a; - public static final int __ = 0x0234_000b; + public static final int ROOT_GRAPHIC11 = 0x0234_000b; public static final int CWS_CLOSE = 0x0234_000c; public static final int WARNING_TEXT = 0x0234_000d; public static final int CWS_TEST_WARNING = 0x0234_000e; @@ -20265,7 +20333,7 @@ public static final class CwsWarning10 public static final int ROOT_GRAPHIC8 = 0x0235_0008; public static final int ROOT_GRAPHIC9 = 0x0235_0009; public static final int ROOT_GRAPHIC10 = 0x0235_000a; - public static final int __ = 0x0235_000b; + public static final int ROOT_GRAPHIC11 = 0x0235_000b; public static final int CWS_CLOSE = 0x0235_000c; public static final int WARNING_TEXT = 0x0235_000d; public static final int CWS_TEST_WARNING = 0x0235_000e; @@ -20291,7 +20359,7 @@ public static final class CwsWarning6 public static final int ROOT_GRAPHIC8 = 0x0236_0008; public static final int ROOT_GRAPHIC9 = 0x0236_0009; public static final int ROOT_GRAPHIC10 = 0x0236_000a; - public static final int __ = 0x0236_000b; + public static final int ROOT_GRAPHIC11 = 0x0236_000b; public static final int CWS_CLOSE = 0x0236_000c; public static final int WARNING_TEXT = 0x0236_000d; public static final int CWS_TEST_WARNING = 0x0236_000e; @@ -20317,7 +20385,7 @@ public static final class CwsWarning14 public static final int ROOT_GRAPHIC8 = 0x0237_0008; public static final int ROOT_GRAPHIC9 = 0x0237_0009; public static final int ROOT_GRAPHIC10 = 0x0237_000a; - public static final int __ = 0x0237_000b; + public static final int ROOT_GRAPHIC11 = 0x0237_000b; public static final int CWS_CLOSE = 0x0237_000c; public static final int WARNING_TEXT = 0x0237_000d; public static final int CWS_TEST_WARNING = 0x0237_000e; @@ -20343,7 +20411,7 @@ public static final class CwsWarning3 public static final int ROOT_GRAPHIC8 = 0x0238_0008; public static final int ROOT_GRAPHIC9 = 0x0238_0009; public static final int ROOT_GRAPHIC10 = 0x0238_000a; - public static final int __ = 0x0238_000b; + public static final int ROOT_GRAPHIC11 = 0x0238_000b; public static final int CWS_CLOSE = 0x0238_000c; public static final int WARNING_TEXT = 0x0238_000d; public static final int CWS_TEST_WARNING = 0x0238_000e; @@ -20369,7 +20437,7 @@ public static final class CwsWarning16 public static final int ROOT_GRAPHIC8 = 0x0239_0008; public static final int ROOT_GRAPHIC9 = 0x0239_0009; public static final int ROOT_GRAPHIC10 = 0x0239_000a; - public static final int __ = 0x0239_000b; + public static final int ROOT_GRAPHIC11 = 0x0239_000b; public static final int CWS_CLOSE = 0x0239_000c; public static final int WARNING_TEXT = 0x0239_000d; public static final int CWS_TEST_WARNING = 0x0239_000e; @@ -20395,7 +20463,7 @@ public static final class CwsWarning17 public static final int ROOT_GRAPHIC8 = 0x023a_0008; public static final int ROOT_GRAPHIC9 = 0x023a_0009; public static final int ROOT_GRAPHIC10 = 0x023a_000a; - public static final int __ = 0x023a_000b; + public static final int ROOT_GRAPHIC11 = 0x023a_000b; public static final int CWS_CLOSE = 0x023a_000c; public static final int WARNING_TEXT = 0x023a_000d; public static final int CWS_TEST_WARNING = 0x023a_000e; @@ -20421,7 +20489,7 @@ public static final class CwsWarning19 public static final int ROOT_GRAPHIC8 = 0x023b_0008; public static final int ROOT_GRAPHIC9 = 0x023b_0009; public static final int ROOT_GRAPHIC10 = 0x023b_000a; - public static final int __ = 0x023b_000b; + public static final int ROOT_GRAPHIC11 = 0x023b_000b; public static final int CWS_CLOSE = 0x023b_000c; public static final int WARNING_TEXT = 0x023b_000d; public static final int CWS_TEST_WARNING = 0x023b_000e; @@ -20447,7 +20515,7 @@ public static final class CwsWarning13 public static final int ROOT_GRAPHIC8 = 0x023c_0008; public static final int ROOT_GRAPHIC9 = 0x023c_0009; public static final int ROOT_GRAPHIC10 = 0x023c_000a; - public static final int __ = 0x023c_000b; + public static final int ROOT_GRAPHIC11 = 0x023c_000b; public static final int CWS_CLOSE = 0x023c_000c; public static final int WARNING_TEXT = 0x023c_000d; public static final int CWS_TEST_WARNING = 0x023c_000e; @@ -20473,7 +20541,7 @@ public static final class CwsWarning12 public static final int ROOT_GRAPHIC8 = 0x023d_0008; public static final int ROOT_GRAPHIC9 = 0x023d_0009; public static final int ROOT_GRAPHIC10 = 0x023d_000a; - public static final int __ = 0x023d_000b; + public static final int ROOT_GRAPHIC11 = 0x023d_000b; public static final int CWS_CLOSE = 0x023d_000c; public static final int WARNING_TEXT = 0x023d_000d; public static final int CWS_TEST_WARNING = 0x023d_000e; @@ -20499,7 +20567,7 @@ public static final class CwsWarning1 public static final int ROOT_GRAPHIC8 = 0x023e_0008; public static final int ROOT_GRAPHIC9 = 0x023e_0009; public static final int ROOT_GRAPHIC10 = 0x023e_000a; - public static final int __ = 0x023e_000b; + public static final int ROOT_GRAPHIC11 = 0x023e_000b; public static final int CWS_CLOSE = 0x023e_000c; public static final int WARNING_TEXT = 0x023e_000d; public static final int CWS_TEST_WARNING = 0x023e_000e; @@ -20525,7 +20593,7 @@ public static final class CwsWarning22 public static final int ROOT_GRAPHIC8 = 0x023f_0008; public static final int ROOT_GRAPHIC9 = 0x023f_0009; public static final int ROOT_GRAPHIC10 = 0x023f_000a; - public static final int __ = 0x023f_000b; + public static final int ROOT_GRAPHIC11 = 0x023f_000b; public static final int CWS_CLOSE = 0x023f_000c; public static final int WARNING_TEXT = 0x023f_000d; public static final int CWS_TEST_WARNING = 0x023f_000e; @@ -20551,7 +20619,7 @@ public static final class CwsWarning8 public static final int ROOT_GRAPHIC8 = 0x0240_0008; public static final int ROOT_GRAPHIC9 = 0x0240_0009; public static final int ROOT_GRAPHIC10 = 0x0240_000a; - public static final int __ = 0x0240_000b; + public static final int ROOT_GRAPHIC11 = 0x0240_000b; public static final int CWS_CLOSE = 0x0240_000c; public static final int WARNING_TEXT = 0x0240_000d; public static final int CWS_TEST_WARNING = 0x0240_000e; @@ -20577,7 +20645,7 @@ public static final class CwsWarning18 public static final int ROOT_GRAPHIC8 = 0x0241_0008; public static final int ROOT_GRAPHIC9 = 0x0241_0009; public static final int ROOT_GRAPHIC10 = 0x0241_000a; - public static final int __ = 0x0241_000b; + public static final int ROOT_GRAPHIC11 = 0x0241_000b; public static final int CWS_CLOSE = 0x0241_000c; public static final int WARNING_TEXT = 0x0241_000d; public static final int CWS_TEST_WARNING = 0x0241_000e; @@ -20603,7 +20671,7 @@ public static final class CwsWarning15 public static final int ROOT_GRAPHIC8 = 0x0242_0008; public static final int ROOT_GRAPHIC9 = 0x0242_0009; public static final int ROOT_GRAPHIC10 = 0x0242_000a; - public static final int __ = 0x0242_000b; + public static final int ROOT_GRAPHIC11 = 0x0242_000b; public static final int CWS_CLOSE = 0x0242_000c; public static final int WARNING_TEXT = 0x0242_000d; public static final int CWS_TEST_WARNING = 0x0242_000e; @@ -20629,7 +20697,7 @@ public static final class CwsWarning4 public static final int ROOT_GRAPHIC8 = 0x0243_0008; public static final int ROOT_GRAPHIC9 = 0x0243_0009; public static final int ROOT_GRAPHIC10 = 0x0243_000a; - public static final int __ = 0x0243_000b; + public static final int ROOT_GRAPHIC11 = 0x0243_000b; public static final int CWS_CLOSE = 0x0243_000c; public static final int WARNING_TEXT = 0x0243_000d; public static final int CWS_TEST_WARNING = 0x0243_000e; @@ -20655,7 +20723,7 @@ public static final class CwsWarning20 public static final int ROOT_GRAPHIC8 = 0x0244_0008; public static final int ROOT_GRAPHIC9 = 0x0244_0009; public static final int ROOT_GRAPHIC10 = 0x0244_000a; - public static final int __ = 0x0244_000b; + public static final int ROOT_GRAPHIC11 = 0x0244_000b; public static final int CWS_CLOSE = 0x0244_000c; public static final int WARNING_TEXT = 0x0244_000d; public static final int CWS_TEST_WARNING = 0x0244_000e; @@ -20681,7 +20749,7 @@ public static final class CwsWarning24 public static final int ROOT_GRAPHIC8 = 0x0245_0008; public static final int ROOT_GRAPHIC9 = 0x0245_0009; public static final int ROOT_GRAPHIC10 = 0x0245_000a; - public static final int __ = 0x0245_000b; + public static final int ROOT_GRAPHIC11 = 0x0245_000b; public static final int CWS_CLOSE = 0x0245_000c; public static final int WARNING_TEXT = 0x0245_000d; public static final int CWS_TEST_WARNING = 0x0245_000e; @@ -21407,10 +21475,14 @@ public static final class GravestoneRetrieval public static final int BOTTOM = 0x025a_0005; public static final int BUTTON = 0x025a_0006; public static final int BUTTON_GFX = 0x025a_0007; - public static final int DISCARD = 0x025a_0008; - public static final int DISCARD_GFX = 0x025a_0009; - public static final int INFO = 0x025a_000a; - public static final int FEE = 0x025a_000b; + public static final int BUTTON_BANK = 0x025a_0008; + public static final int BUTTON_BANK_GFX = 0x025a_0009; + public static final int DISCARD = 0x025a_000a; + public static final int DISCARD_GFX = 0x025a_000b; + public static final int BANK = 0x025a_000c; + public static final int BOTTOM_GRAPHIC7 = 0x025a_000d; + public static final int INFO = 0x025a_000e; + public static final int FEE = 0x025a_000f; } public static final class FossilquestSailingOverlay @@ -24485,7 +24557,7 @@ public static final class WildernessCaveMidWarning public static final int ROOT_GRAPHIC8 = 0x02d0_0008; public static final int ROOT_GRAPHIC9 = 0x02d0_0009; public static final int ROOT_GRAPHIC10 = 0x02d0_000a; - public static final int __ = 0x02d0_000b; + public static final int ROOT_GRAPHIC11 = 0x02d0_000b; public static final int CWS_CLOSE = 0x02d0_000c; public static final int WARNING_TEXT = 0x02d0_000d; public static final int CWS_TEST_WARNING = 0x02d0_000e; @@ -29475,59 +29547,61 @@ public static final class OrbsNomap { public static final int UNIVERSE = 0x037f_0000; public static final int CONTENT = 0x037f_0001; - public static final int XP_DROPS = 0x037f_0002; - public static final int ORB_HEALTH = 0x037f_0003; - public static final int HEALTH_BACKING = 0x037f_0004; - public static final int HEALTHBUTTON = 0x037f_0005; - public static final int HEALTH_TEXT = 0x037f_0006; - public static final int HEALTH_INDICATOR = 0x037f_0007; - public static final int HEALTH_EXTRAPOISONHALF = 0x037f_0008; - public static final int HEALTH_EXTRAPOISONHALF_CONTENTS = 0x037f_0009; - public static final int ORB_HEALTH_EMPTY = 0x037f_000a; - public static final int HEALTH_EMPTY_CONTENTS = 0x037f_000b; - public static final int HEALTH_REGEN = 0x037f_000c; - public static final int ORB_HEALTH_HEART_ICON = 0x037f_000d; - public static final int ORB_PRAYER = 0x037f_000e; - public static final int PRAYER_BACKING = 0x037f_000f; - public static final int PRAYERBUTTON = 0x037f_0010; - public static final int PRAYER_TEXT = 0x037f_0011; - public static final int PRAYER_INDICATOR = 0x037f_0012; - public static final int ORB_PRAYER_EMPTY = 0x037f_0013; - public static final int ORB_PRAYER_EMPTY_GRAPHIC0 = 0x037f_0014; - public static final int PRAYER_ICON = 0x037f_0015; - public static final int ORB_RUNENERGY = 0x037f_0016; - public static final int RUNENERGY_BACKING = 0x037f_0017; - public static final int RUNBUTTON = 0x037f_0018; - public static final int RUNENERGY_TEXT = 0x037f_0019; - public static final int RUNENERGY_INDICATOR = 0x037f_001a; - public static final int ORB_RUNENERGY_EMPTY = 0x037f_001b; - public static final int ORB_RUNENERGY_EMPTY_GRAPHIC0 = 0x037f_001c; - public static final int RUNENERGY_ICON = 0x037f_001d; - public static final int ORB_SPECENERGY = 0x037f_001e; - public static final int SPECENERGY_BACKING = 0x037f_001f; - public static final int SPECBUTTON = 0x037f_0020; - public static final int SPECENERGY_TEXT = 0x037f_0021; - public static final int SPECENERGY_INDICATOR = 0x037f_0022; - public static final int ORB_SPECENERGY_EMPTY = 0x037f_0023; - public static final int ORB_SPECENERGY_EMPTY_GRAPHIC0 = 0x037f_0024; - public static final int SPEC_REGEN = 0x037f_0025; - public static final int ORB_SPECENERGY_GRAPHIC6 = 0x037f_0026; - public static final int ORB_STORE = 0x037f_0027; - public static final int STORE_BACKING = 0x037f_0028; - public static final int STORE_INDICATOR = 0x037f_0029; - public static final int STORE_BUTTON = 0x037f_002a; - public static final int STORE_ICON = 0x037f_002b; - public static final int ORB_CONTENTRECOM = 0x037f_002c; - public static final int CR_BACKING = 0x037f_002d; - public static final int CR_INDICATOR = 0x037f_002e; - public static final int CR_BUTTON = 0x037f_002f; - public static final int CR_ICON = 0x037f_0030; - public static final int ORB_WORLDMAP = 0x037f_0031; - public static final int WORLDMAP_BACKING = 0x037f_0032; - public static final int WORLDMAP = 0x037f_0033; - public static final int WIKI = 0x037f_0034; - public static final int WIKI_ICON = 0x037f_0035; - public static final int WIKI_ICON_GRAPHIC = 0x037f_0036; + public static final int TOOLTIP = 0x037f_0002; + public static final int XP_DROPS = 0x037f_0003; + public static final int ORB_HEALTH = 0x037f_0004; + public static final int HEALTH_BACKING = 0x037f_0005; + public static final int HEALTHBUTTON = 0x037f_0006; + public static final int HEALTH_TEXT = 0x037f_0007; + public static final int HEALTH_INDICATOR = 0x037f_0008; + public static final int HEALTH_EXTRAPOISONHALF = 0x037f_0009; + public static final int HEALTH_EXTRAPOISONHALF_CONTENTS = 0x037f_000a; + public static final int ORB_HEALTH_EMPTY = 0x037f_000b; + public static final int HEALTH_EMPTY_CONTENTS = 0x037f_000c; + public static final int HEALTH_REGEN = 0x037f_000d; + public static final int ORB_HEALTH_HEART_ICON = 0x037f_000e; + public static final int ORB_PRAYER = 0x037f_000f; + public static final int PRAYER_BACKING = 0x037f_0010; + public static final int PRAYERBUTTON = 0x037f_0011; + public static final int PRAYER_TEXT = 0x037f_0012; + public static final int PRAYER_INDICATOR = 0x037f_0013; + public static final int ORB_PRAYER_EMPTY = 0x037f_0014; + public static final int ORB_PRAYER_EMPTY_GRAPHIC0 = 0x037f_0015; + public static final int PRAYER_ICON = 0x037f_0016; + public static final int ORB_RUNENERGY = 0x037f_0017; + public static final int RUNENERGY_BACKING = 0x037f_0018; + public static final int RUNBUTTON = 0x037f_0019; + public static final int RUNENERGY_TEXT = 0x037f_001a; + public static final int RUNENERGY_INDICATOR = 0x037f_001b; + public static final int ORB_RUNENERGY_EMPTY = 0x037f_001c; + public static final int ORB_RUNENERGY_EMPTY_GRAPHIC0 = 0x037f_001d; + public static final int RUNENERGY_ICON = 0x037f_001e; + public static final int ORB_SPECENERGY = 0x037f_001f; + public static final int SPECENERGY_BACKING = 0x037f_0020; + public static final int SPECBUTTON = 0x037f_0021; + public static final int SPECENERGY_TEXT = 0x037f_0022; + public static final int SPECENERGY_INDICATOR = 0x037f_0023; + public static final int ORB_SPECENERGY_EMPTY = 0x037f_0024; + public static final int ORB_SPECENERGY_EMPTY_GRAPHIC0 = 0x037f_0025; + public static final int SPEC_REGEN = 0x037f_0026; + public static final int ORB_SPECENERGY_GRAPHIC6 = 0x037f_0027; + public static final int ORB_STORE = 0x037f_0028; + public static final int STORE_BACKING = 0x037f_0029; + public static final int STORE_INDICATOR = 0x037f_002a; + public static final int STORE_BUTTON = 0x037f_002b; + public static final int STORE_ICON = 0x037f_002c; + public static final int ORB_CONTENTRECOM = 0x037f_002d; + public static final int CR_BACKING = 0x037f_002e; + public static final int CR_INDICATOR = 0x037f_002f; + public static final int CR_BUTTON = 0x037f_0030; + public static final int CR_ICON = 0x037f_0031; + public static final int ORB_WORLDMAP = 0x037f_0032; + public static final int WORLDMAP_BACKING = 0x037f_0033; + public static final int WORLDMAP = 0x037f_0034; + public static final int WORLDMAP_TOOLTIP = 0x037f_0035; + public static final int WIKI = 0x037f_0036; + public static final int WIKI_ICON = 0x037f_0037; + public static final int WIKI_ICON_GRAPHIC = 0x037f_0038; } public static final class EhcWorldhop diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java index c76613ed3ee..a70567ed4aa 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/NpcID.java @@ -6934,10 +6934,6 @@ public final class NpcID * Monkey */ public static final int MM_TRANSMOGRIFICATION_NORMAL_MONKEY = 1469; - - /** - * Rantz - */ public static final int RANTZ = 1470; /** @@ -38209,10 +38205,6 @@ public final class NpcID * Abigaila */ public static final int TOB_SPECTATOR_MISTHALIN = 8368; - - /** - * Verzik Vitur - */ public static final int VERZIK_INITIAL = 8369; /** @@ -47267,10 +47259,6 @@ public final class NpcID */ public static final int TOB_VERZIK_PHASE2_BLOODNYLOCAS_STORY = 10845; public static final int TOB_VERZIK_CREEPER_STORY = 10846; - - /** - * Verzik Vitur - */ public static final int VERZIK_INITIAL_HARD = 10847; /** @@ -64277,5 +64265,35 @@ public final class NpcID * Wizguard */ public static final int DEADMAN_GUARD_WIZARD = 14792; + + /** + * Rantz + */ + public static final int RANTZ_PRE_QUEST = 14793; + + /** + * Rantz + */ + public static final int RANTZ_POST_QUEST = 14794; + + /** + * Verzik Vitur + */ + public static final int VERZIK_INITIAL_BASE = 14795; + + /** + * Verzik Vitur + */ + public static final int VERZIK_INITIAL_QUICKSTART = 14796; + + /** + * Verzik Vitur + */ + public static final int VERZIK_INITIAL_HARD_BASE = 14797; + + /** + * Verzik Vitur + */ + public static final int VERZIK_INITIAL_HARD_QUICKSTART = 14798; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java index 745ae59060e..4dae1da313f 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/ObjectID1.java @@ -69354,5 +69354,11 @@ class ObjectID1 public static final int FENK_BRIDGEBROKEN_SUPPORT01 = 57719; public static final int FENK_BRIDGESUPPORT_MULTI_NORTH = 57720; public static final int FENK_BRIDGESUPPORT_MULTI_SOUTH = 57721; + public static final int AHOY_TOWN_BARRIER_MULTI = 57722; + + /** + * Energy Barrier + */ + public static final int AHOY_TOWN_BARRIER_POST_QUEST = 57723; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java index 0146f856e52..393a4e9d239 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarPlayerID.java @@ -2289,5 +2289,24 @@ public final class VarPlayerID public static final int WORN_ITEM_BONUS4 = 4852; public static final int WORN_ITEM_BONUS5 = 4853; public static final int WORN_ITEM_BONUS6 = 4854; + public static final int RUNE_POUCH_LOADOUT_1 = 4857; + public static final int RUNE_POUCH_LOADOUT_2 = 4858; + public static final int RUNE_POUCH_LOADOUT_3 = 4859; + public static final int RUNE_POUCH_LOADOUT_4 = 4860; + public static final int RUNE_POUCH_LOADOUT_5 = 4861; + public static final int RUNE_POUCH_LOADOUT_6 = 4862; + public static final int RUNE_POUCH_LOADOUT_7 = 4863; + public static final int RUNE_POUCH_LOADOUT_8 = 4864; + public static final int RUNE_POUCH_LOADOUT_9 = 4865; + public static final int RUNE_POUCH_LOADOUT_10 = 4866; + public static final int RUNE_POUCH_LOADOUT_11 = 4867; + public static final int RUNE_POUCH_LOADOUT_12 = 4868; + public static final int RUNE_POUCH_LOADOUT_13 = 4869; + public static final int RUNE_POUCH_LOADOUT_14 = 4870; + public static final int RUNE_POUCH_LOADOUT_15 = 4871; + public static final int RUNE_POUCH_LOADOUT_16 = 4872; + public static final int RUNE_POUCH_LOADOUT_NAME_0 = 4873; + public static final int RUNE_POUCH_LOADOUT_NAME_1 = 4874; + public static final int RUNE_POUCH_LOADOUT_NAME_2 = 4875; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java index f246335d5d6..f8036fa9ecc 100644 --- a/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java +++ b/runelite-api/src/main/java/net/runelite/api/gameval/VarbitID.java @@ -12336,5 +12336,77 @@ public final class VarbitID public static final int WORN_ITEMS_RC_BOOTS = 17935; public static final int WORN_ITEMS_LUMBERJACK_FULL_OUTFIT = 17936; public static final int WORN_ITEMS_ROGUE_SET = 17937; + public static final int OPTION_HIDEY_HOLES_EQUIPPED = 17938; + public static final int SETTINGS_CA_OPEN_LAST_INTERFACE_DISABLED = 17939; + public static final int CA_LAST_OPENED_INTERFACE = 17940; + public static final int CA_LAST_REWARD_TIER_SELECTED = 17941; + public static final int WORN_ITEMS_VIRTUS_MASK = 17942; + public static final int WORN_ITEMS_VIRTUS_TOP = 17943; + public static final int WORN_ITEMS_VIRTUS_LEGS = 17944; + public static final int RUNE_POUCH_LOADOUT_E_RUNE3 = 17969; + public static final int RUNE_POUCH_LOADOUT_E_RUNE4 = 17970; + public static final int RUNE_POUCH_LOADOUT_F_RUNE1 = 17971; + public static final int RUNE_POUCH_LOADOUT_E_CAP1 = 17972; + public static final int RUNE_POUCH_LOADOUT_F_RUNE2 = 17973; + public static final int RUNE_POUCH_LOADOUT_F_RUNE3 = 17974; + public static final int RUNE_POUCH_LOADOUT_F_RUNE4 = 17975; + public static final int RUNE_POUCH_LOADOUT_E_CAP2 = 17976; + public static final int RUNE_POUCH_LOADOUT_G_RUNE1 = 17977; + public static final int RUNE_POUCH_LOADOUT_G_RUNE2 = 17978; + public static final int RUNE_POUCH_LOADOUT_G_RUNE3 = 17979; + public static final int RUNE_POUCH_LOADOUT_E_CAP3 = 17980; + public static final int RUNE_POUCH_LOADOUT_G_RUNE4 = 17981; + public static final int RUNE_POUCH_LOADOUT_H_RUNE1 = 17982; + public static final int RUNE_POUCH_LOADOUT_H_RUNE2 = 17983; + public static final int RUNE_POUCH_LOADOUT_E_CAP4 = 17984; + public static final int RUNE_POUCH_LOADOUT_H_RUNE3 = 17985; + public static final int RUNE_POUCH_LOADOUT_H_RUNE4 = 17986; + public static final int RUNE_POUCH_LOADOUT_F_CAP1 = 17987; + public static final int RUNE_POUCH_LOADOUT_H_CAP3_BITSA = 17988; + public static final int RUNE_POUCH_LOADOUT_F_CAP2 = 17989; + public static final int RUNE_POUCH_LOADOUT_F_CAP3 = 17990; + public static final int RUNE_POUCH_LOADOUT_H_CAP3_BITSB = 17991; + public static final int RUNE_POUCH_LOADOUT_F_CAP4 = 17992; + public static final int RUNE_POUCH_LOADOUT_G_CAP1 = 17993; + public static final int RUNE_POUCH_LOADOUT_H_CAP3_BITSC = 17994; + public static final int RUNE_POUCH_LOADOUT_G_CAP2 = 17995; + public static final int RUNE_POUCH_LOADOUT_G_CAP3 = 17996; + public static final int RUNE_POUCH_LOADOUT_E_RUNE1_BITSA = 17997; + public static final int RUNE_POUCH_LOADOUT_G_CAP4 = 17998; + public static final int RUNE_POUCH_LOADOUT_H_CAP1 = 17999; + public static final int RUNE_POUCH_LOADOUT_E_RUNE2_BITSA = 18000; + public static final int RUNE_POUCH_LOADOUT_H_CAP2 = 18001; + public static final int RUNE_POUCH_LOADOUT_H_CAP4 = 18002; + public static final int RUNE_POUCH_LOADOUT_E_RUNE1_BITSB = 18003; + public static final int RUNE_POUCH_LOADOUT_E_RUNE2_BITSB = 18004; + public static final int RUNE_POUCH_LOADOUT_I_RUNE3 = 18005; + public static final int RUNE_POUCH_LOADOUT_I_RUNE4 = 18006; + public static final int RUNE_POUCH_LOADOUT_J_RUNE1 = 18007; + public static final int RUNE_POUCH_LOADOUT_I_CAP1 = 18008; + public static final int RUNE_POUCH_LOADOUT_J_RUNE2 = 18009; + public static final int RUNE_POUCH_LOADOUT_J_RUNE3 = 18010; + public static final int RUNE_POUCH_LOADOUT_J_RUNE4 = 18011; + public static final int RUNE_POUCH_LOADOUT_I_CAP2 = 18012; + public static final int RUNE_POUCH_LOADOUT_I_CAP3 = 18013; + public static final int RUNE_POUCH_LOADOUT_I_CAP4 = 18014; + public static final int RUNE_POUCH_LOADOUT_J_CAP2 = 18015; + public static final int RUNE_POUCH_LOADOUT_J_CAP3 = 18016; + public static final int RUNE_POUCH_LOADOUT_J_CAP4 = 18017; + public static final int RUNE_POUCH_LOADOUT_J_CAP1 = 18018; + public static final int RUNE_POUCH_LOADOUT_I_RUNE2_BITSA = 18019; + public static final int RUNE_POUCH_LOADOUT_I_RUNE1_BITSA = 18020; + public static final int RUNE_POUCH_LOADOUT_I_RUNE1_BITSB = 18021; + public static final int RUNE_POUCH_LOADOUT_I_RUNE2_BITSB = 18022; + public static final int RUNE_POUCH_LOADOUT_NAME_SELECTED = 18023; + public static final int RUNE_POUCH_LOADOUT_NAME_A = 18024; + public static final int RUNE_POUCH_LOADOUT_NAME_B = 18025; + public static final int RUNE_POUCH_LOADOUT_NAME_C = 18026; + public static final int RUNE_POUCH_LOADOUT_NAME_D = 18027; + public static final int RUNE_POUCH_LOADOUT_NAME_E = 18028; + public static final int RUNE_POUCH_LOADOUT_NAME_F = 18029; + public static final int RUNE_POUCH_LOADOUT_NAME_G = 18030; + public static final int RUNE_POUCH_LOADOUT_NAME_H = 18031; + public static final int RUNE_POUCH_LOADOUT_NAME_I = 18032; + public static final int RUNE_POUCH_LOADOUT_NAME_J = 18033; /* This file is automatically generated. Do not edit. */ } diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml index 8a186657ffe..26e8fb717aa 100644 --- a/runelite-client/pom.xml +++ b/runelite-client/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.18-SNAPSHOT + 1.11.19-SNAPSHOT client @@ -41,7 +41,7 @@ nogit false false - 2.0.15 + 2.0.16 nogit @@ -70,11 +70,6 @@ cfr 0.152 - - com.microsoft.signalr - signalr - 7.0.4 - com.fasterxml.jackson.core jackson-core diff --git a/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java b/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java index 88a0417a057..5ff96890ef2 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/ClientThread.java @@ -58,35 +58,6 @@ public void invoke(Runnable r) }); } - /** - * Run a method on the client thread, returning the result. - * @param method - * @return - * @param - */ - @SneakyThrows - @Deprecated(since = "1.7.9", forRemoval = true) - public T runOnClientThread(Callable method) { - if (client.isClientThread()) { - return method.call(); - } - final FutureTask task = new FutureTask<>(method); - invoke(task); - try { - return task.get(10000, TimeUnit.MILLISECONDS); - } catch (InterruptedException | TimeoutException | ExecutionException e) { - if (e instanceof InterruptedException) { - Thread.currentThread().interrupt(); - return null; - } - task.cancel(true); - if (!Microbot.isDebug()) { - log.error("Exception during task execution: {}: {}\n{}", e.getClass().getSimpleName(), e.getMessage(),e); - } - return null; - } - } - /** * Run a method on the client thread, returning an optional of the result. * @param method diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java index 626328c0887..6efed4fe416 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java @@ -40,7 +40,6 @@ import javax.inject.Inject; import javax.inject.Named; import lombok.Getter; -import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.ItemComposition; import net.runelite.api.MenuAction; @@ -76,7 +75,6 @@ description = "Enable tagging of bank items and searching of bank tags", tags = {"searching", "tagging"} ) -@Slf4j public class BankTagsPlugin extends Plugin implements BankTagsService { // banktags:item_=tag,tag,tag,... diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 6ce39752836..3f2733d8f4b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -30,7 +30,6 @@ import java.util.List; import javax.inject.Inject; import lombok.Getter; -import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GameState; @@ -60,7 +59,6 @@ description = "Show information about cannon placement and/or amount of cannonballs", tags = {"combat", "notifications", "ranged", "overlay"} ) -@Slf4j public class CannonPlugin extends Plugin { static final int MAX_OVERLAY_DISTANCE = 4100; 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 9b284a5727d..e8152fb4dbf 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 @@ -967,7 +967,7 @@ public class CoordinateClue extends ClueScroll implements LocationClueScroll .itemId(ItemID.TRAIL_CLUE_MASTER) .location(new WorldPoint(2090, 3863, 0)) .directions("South of Lunar Isle, west of Astral altar.") - .enemy(ANCIENT_WIZARDS) + .enemy(BRASSICAN_MAGE) .build(), CoordinateClue.builder() .itemId(ItemID.TRAIL_CLUE_MASTER) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java index bd9d2bda420..b3166559c7b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/SkillChallengeClue.java @@ -217,7 +217,7 @@ enum ChallengeType // Elite Sherlock Tasks new SkillChallengeClue("Equip a Dragon Scimitar.", true, any("Any Dragon Scimitar", item(ItemID.DRAGON_SCIMITAR), item(ItemID.DRAGON_SCIMITAR_ORNAMENT))), new SkillChallengeClue("Enchant some Dragonstone Jewellery.", "enchant a piece of dragonstone jewellery.", - xOfItem(ItemID.COSMICRUNE, 1), + any("Cosmic Rune x1", xOfItem(ItemID.COSMICRUNE, 1), xOfItem(ItemID.AETHERRUNE, 1)), any("Water Rune x15", xOfItem(ItemID.WATERRUNE, 15), xOfItem(ItemID.MISTRUNE, 15), xOfItem(ItemID.MUDRUNE, 15), xOfItem(ItemID.STEAMRUNE, 15), item(ItemID.STAFF_OF_WATER), item(ItemID.WATER_BATTLESTAFF), item(ItemID.MYSTIC_WATER_STAFF), item(ItemID.MUD_BATTLESTAFF), item(ItemID.MYSTIC_MUD_STAFF), item(ItemID.MIST_BATTLESTAFF), item(ItemID.MYSTIC_MIST_BATTLESTAFF), item(ItemID.STEAM_BATTLESTAFF), item(ItemID.MYSTIC_STEAM_BATTLESTAFF), item(ItemID.STEAM_BATTLESTAFF_PRETTY), item(ItemID.MYSTIC_STEAM_BATTLESTAFF_PRETTY), item(ItemID.KODAI_WAND), item(ItemID.TOME_OF_WATER)), any("Earth Rune x15", xOfItem(ItemID.EARTHRUNE, 15), xOfItem(ItemID.DUSTRUNE, 15), xOfItem(ItemID.MUDRUNE, 15), xOfItem(ItemID.LAVARUNE, 15), item(ItemID.STAFF_OF_EARTH), item(ItemID.EARTH_BATTLESTAFF), item(ItemID.MYSTIC_EARTH_STAFF), item(ItemID.MUD_BATTLESTAFF), item(ItemID.MYSTIC_MUD_STAFF), item(ItemID.DUST_BATTLESTAFF), item(ItemID.MYSTIC_DUST_BATTLESTAFF), item(ItemID.LAVA_BATTLESTAFF), item(ItemID.MYSTIC_LAVA_STAFF), item(ItemID.LAVA_BATTLESTAFF_PRETTY), item(ItemID.MYSTIC_LAVA_STAFF_PRETTY)), any("Unenchanted Dragonstone Jewellery", item(ItemID.DRAGONSTONE_RING), item(ItemID.DRAGONSTONE_NECKLACE), item(ItemID.JEWL_DRAGONSTONE_BRACELET), item(ItemID.STRUNG_DRAGONSTONE_AMULET))), @@ -255,7 +255,7 @@ enum ChallengeType new SkillChallengeClue("Equip an abyssal whip in front of the abyssal demons of the Slayer Tower.", true, any("Abyssal Whip", item(ItemID.ABYSSAL_WHIP), item(ItemID.ABYSSAL_WHIP_ICE), item(ItemID.ABYSSAL_WHIP_LAVA), item(ItemID.LEAGUE_3_WHIP), item(ItemID.ABYSSAL_TENTACLE), item(ItemID.LEAGUE_3_WHIP_TENTACLE))), new SkillChallengeClue("Smith a runite med helm.", ANY_HAMMER, item(ItemID.RUNITE_BAR)), new SkillChallengeClue("Teleport to a spirit tree you planted yourself."), - new SkillChallengeClue("Create a Barrows teleport tablet.", item(ItemID.ARCEUUS_ESSENCE_BLOCK_DARK), xOfItem(ItemID.BLOODRUNE, 1), xOfItem(ItemID.LAWRUNE, 2), xOfItem(ItemID.SOULRUNE, 2)), + new SkillChallengeClue("Create a Barrows teleport tablet.", item(ItemID.ARCEUUS_ESSENCE_BLOCK_DARK), xOfItem(ItemID.BLOODRUNE, 1), xOfItem(ItemID.LAWRUNE, 2), any("Soul Rune x2", xOfItem(ItemID.SOULRUNE, 2), xOfItem(ItemID.AETHERRUNE, 2))), new SkillChallengeClue("Kill a Nechryael in the Slayer Tower.", "slay a nechryael in the slayer tower."), new SkillChallengeClue("Kill a Spiritual Mage while wearing something from their god.", "kill the spiritual, magic and godly whilst representing their own god."), new SkillChallengeClue("Create an unstrung dragonstone amulet at a furnace.", item(ItemID.GOLD_BAR), item(ItemID.DRAGONSTONE), item(ItemID.AMULET_MOULD)), @@ -292,7 +292,7 @@ enum ChallengeType any("", item(ItemID.RAMBLE_LUMBERJACK_LEGS), item(ItemID.FORESTRY_LUMBERJACK_LEGS)), any("", item(ItemID.RAMBLE_LUMBERJACK_BOOTS), item(ItemID.FORESTRY_LUMBERJACK_BOOTS)))), new SkillChallengeClue("Craft a light orb in the Dorgesh-Kaan bank.", item(ItemID.DORGESH_WIRE), item(ItemID.DORGESH_LIGHTBULB_NOFILAMENT)), - new SkillChallengeClue("Kill a reanimated Abyssal Demon.", "kill a reanimated abyssal.", xOfItem(ItemID.SOULRUNE, 4), xOfItem(ItemID.BLOODRUNE, 2), any("Nature Rune x4", xOfItem(ItemID.NATURERUNE, 4), item(ItemID.NATURE_STAFF_CHARGED)), range("Ensouled abyssal head", ItemID.ARCEUUS_CORPSE_ABYSSAL_INITIAL, ItemID.ARCEUUS_CORPSE_ABYSSAL)), + new SkillChallengeClue("Kill a reanimated Abyssal Demon.", "kill a reanimated abyssal.", any("Soul Rune x4", xOfItem(ItemID.SOULRUNE, 4), xOfItem(ItemID.AETHERRUNE, 4)), xOfItem(ItemID.BLOODRUNE, 2), any("Nature Rune x4", xOfItem(ItemID.NATURERUNE, 4), item(ItemID.NATURE_STAFF_CHARGED)), range("Ensouled abyssal head", ItemID.ARCEUUS_CORPSE_ABYSSAL_INITIAL, ItemID.ARCEUUS_CORPSE_ABYSSAL)), new SkillChallengeClue("Kill a Fiyr shade inside Mort'tons shade catacombs.", any("Any Gold or Silver Shade Key", item(ItemID.SHADEKEY_GOLD_BLOODRED), item(ItemID.SHADEKEY_GOLD_BROWN), item(ItemID.SHADEKEY_GOLD_CRIMSON), item(ItemID.SHADEKEY_GOLD_BLACK), item(ItemID.SHADEKEY_GOLD_PURPLE), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java index defc90c4da2..30d45cb96aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/hotcold/HotColdLocation.java @@ -187,7 +187,6 @@ public enum HotColdLocation ZEAH_HOUSECHURCH(MASTER, new WorldPoint(1681, 3794, 0), ZEAH, "By the entrance to the Arceuus church.", ANCIENT_WIZARDS), ZEAH_DARK_ALTAR(MASTER, new WorldPoint(1698, 3880, 0), ZEAH, "West of the Dark Altar.", BRASSICAN_MAGE), ZEAH_ARCEUUS_HOUSE(MASTER, new WorldPoint(1710, 3700, 0), ZEAH, "By the south-eastern entrance to Arceuus.", BRASSICAN_MAGE), - ZEAH_ESSENCE_MINE(MASTER, new WorldPoint(1762, 3852, 0), ZEAH, "By the Arceuus essence mine.", BRASSICAN_MAGE), ZEAH_ESSENCE_MINE_NE(MASTER, new WorldPoint(1773, 3867, 0), ZEAH, "North-east of the Arceuus essence mine.", BRASSICAN_MAGE), ZEAH_PISCARILUS_MINE(MASTER, new WorldPoint(1768, 3705, 0), ZEAH, "South of the Piscarilius mine.", ANCIENT_WIZARDS), ZEAH_GOLDEN_FIELD_TAVERN(MASTER, new WorldPoint(1718, 3643, 0), ZEAH, "South of the gravestone in Kingstown.", BRASSICAN_MAGE), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java index 2ecbd09ca97..be0408e6fe9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/VarInspector.java @@ -45,7 +45,6 @@ import javax.swing.SwingUtilities; import javax.swing.border.CompoundBorder; import lombok.Getter; -import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.IndexDataBase; import net.runelite.api.VarbitComposition; @@ -62,7 +61,6 @@ import net.runelite.client.ui.DynamicGridLayout; import net.runelite.client.ui.FontManager; -@Slf4j class VarInspector extends DevToolsFrame { @Getter diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java similarity index 88% rename from runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java rename to runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java index bfd58e8d969..76b19ee07da 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRings.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRing.java @@ -26,9 +26,13 @@ package net.runelite.client.plugins.fairyring; +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; +import javax.annotation.Nullable; import lombok.Getter; -public enum FairyRings +public enum FairyRing { // A AIQ("Mudskipper Point"), @@ -91,21 +95,29 @@ public enum FairyRings DLR("(Island) Poison Waste south of Isafdar"), DLS("Myreque hideout under The Hollows"); + private static final Map BY_CODE = Arrays.stream(FairyRing.values()) + .collect(Collectors.toUnmodifiableMap(v -> v.name(), v -> v)); + @Getter private final String destination; @Getter private final String tags; - FairyRings(String destination) + FairyRing(String destination) { this(destination, ""); } - FairyRings(String destination, String tags) + FairyRing(String destination, String tags) { this.destination = destination; this.tags = tags.toLowerCase() + " " + destination.toLowerCase(); } + @Nullable + public static FairyRing forCode(String code) + { + return BY_CODE.get(code); + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java index 56184c5f646..5220418c27a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fairyring/FairyRingPlugin.java @@ -30,31 +30,23 @@ import com.google.common.base.Strings; import com.google.inject.Provides; -import java.util.Collection; import java.util.List; -import java.util.Map; import java.util.Optional; -import java.util.TreeMap; -import javax.annotation.Nullable; import javax.inject.Inject; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.MenuAction; import net.runelite.api.MenuEntry; -import net.runelite.api.ScriptEvent; -import net.runelite.api.ScriptID; import net.runelite.api.SoundEffectID; import net.runelite.api.events.MenuEntryAdded; -import net.runelite.api.events.ScriptPostFired; +import net.runelite.api.events.ScriptCallbackEvent; +import net.runelite.api.gameval.DBTableID; import net.runelite.api.gameval.InterfaceID; -import net.runelite.api.gameval.SpriteID; +import net.runelite.api.gameval.VarClientID; import net.runelite.api.gameval.VarbitID; -import net.runelite.api.widgets.WidgetType; import net.runelite.api.events.GameTick; import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.WidgetLoaded; -import net.runelite.api.widgets.JavaScriptCallback; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetUtil; import net.runelite.client.callback.ClientThread; @@ -78,10 +70,6 @@ public class FairyRingPlugin extends Plugin private static final String[] middleDial = {"I", "L", "K", "J"}; private static final String[] rightDial = {"P", "S", "R", "Q"}; - private static final int ENTRY_PADDING = 3; - - private static final String MENU_OPEN = "Open"; - private static final String MENU_CLOSE = "Close"; private static final String EDIT_TAGS_MENU_OPTION = "Edit Tags"; @Inject @@ -99,23 +87,7 @@ public class FairyRingPlugin extends Plugin @Inject private ConfigManager configManager; - private ChatboxTextInput searchInput = null; private ChatboxTextInput tagInput; - private Widget searchBtn; - private Collection codes = null; - - @Data - private static class CodeWidgets - { - // The fairy hideout has both of these null, because its not the same as the rest of them - @Nullable - private Widget favorite; - - @Nullable - private Widget code; - - private Widget description; - } @Provides FairyRingConfig getConfig(ConfigManager configManager) @@ -154,44 +126,13 @@ public void onWidgetLoaded(WidgetLoaded widgetLoaded) { setWidgetTextToDestination(); - Widget header = client.getWidget(InterfaceID.FairyringsLog.TITLEBOX); - if (header != null) + if (config.autoOpen()) { - searchBtn = header.createChild(-1, WidgetType.GRAPHIC); - searchBtn.setSpriteId(SpriteID.GeSmallicons.SEARCH); - searchBtn.setOriginalWidth(17); - searchBtn.setOriginalHeight(17); - searchBtn.setOriginalX(11); - searchBtn.setOriginalY(11); - searchBtn.setHasListener(true); - searchBtn.setAction(1, MENU_OPEN); - searchBtn.setOnOpListener((JavaScriptCallback) this::menuOpen); - searchBtn.setName("Search"); - searchBtn.revalidate(); - - codes = null; - - if (config.autoOpen()) - { - openSearch(); - } + clientThread.invokeLater(() -> openSearch()); } } } - private void menuOpen(ScriptEvent e) - { - openSearch(); - client.playSoundEffect(SoundEffectID.UI_BOOP); - } - - private void menuClose(ScriptEvent e) - { - updateFilter(""); - chatboxPanelManager.close(); - client.playSoundEffect(SoundEffectID.UI_BOOP); - } - private void setWidgetTextToDestination() { Widget fairyRingTeleportButton = client.getWidget(InterfaceID.Fairyrings.CONFIRM); @@ -200,7 +141,7 @@ private void setWidgetTextToDestination() String destination; try { - FairyRings fairyRingDestination = getFairyRingDestination(client.getVarbitValue(VarbitID.FAIRYRING_1), + FairyRing fairyRingDestination = getFairyRingDestination(client.getVarbitValue(VarbitID.FAIRYRING_1), client.getVarbitValue(VarbitID.FAIRYRING_2), client.getVarbitValue(VarbitID.FAIRYRING_3)); destination = fairyRingDestination.getDestination(); } @@ -213,248 +154,82 @@ private void setWidgetTextToDestination() } } - private FairyRings getFairyRingDestination(int varbitValueDialLeft, int varbitValueDialMiddle, int varbitValueDialRight) - { - return FairyRings.valueOf(leftDial[varbitValueDialLeft] + middleDial[varbitValueDialMiddle] + rightDial[varbitValueDialRight]); - } - private void openSearch() { - updateFilter(""); - searchBtn.setAction(1, MENU_CLOSE); - searchBtn.setOnOpListener((JavaScriptCallback) this::menuClose); - searchInput = chatboxPanelManager.openTextInput("Filter fairy rings") - .onChanged(s -> clientThread.invokeLater(() -> updateFilter(s))) - .onDone(s -> false) - .onClose(() -> - { - clientThread.invokeLater(() -> updateFilter("")); - searchBtn.setOnOpListener((JavaScriptCallback) this::menuOpen); - searchBtn.setAction(1, MENU_OPEN); - }) - .build(); - } - - @Subscribe - public void onGameTick(GameTick t) - { - // This has to happen because the only widget that gets hidden is the tli one - Widget fairyRingTeleportButton = client.getWidget(InterfaceID.Fairyrings.CONFIRM); - boolean fairyRingWidgetOpen = fairyRingTeleportButton != null && !fairyRingTeleportButton.isHidden(); - boolean searchInputBoxOpen = searchInput != null && chatboxPanelManager.getCurrentInput() == searchInput; - boolean tagInputBoxOpen = tagInput != null && chatboxPanelManager.getCurrentInput() == tagInput; - - if (!fairyRingWidgetOpen && (searchInputBoxOpen || tagInputBoxOpen)) + var widget = client.getWidget(InterfaceID.FairyringsLog.TITLEBOX_GRAPHIC2); + if (widget != null) { - chatboxPanelManager.close(); + client.createScriptEvent(widget.getOnOpListener()) + .setOp(1) + .run(); } } - private void updateFilter(String input) + @Subscribe + private void onScriptCallbackEvent(ScriptCallbackEvent ev) { - final String filter = input.toLowerCase(); - final Widget list = client.getWidget(InterfaceID.FairyringsLog.CONTENTS); - final Widget favorites = client.getWidget(InterfaceID.FairyringsLog.FAVES); - - if (list == null) + String code = null; + if ("fairyringFilterFavorite".equals(ev.getEventName())) { - return; - } - - if (codes != null) - { - // Check to make sure the list hasn't been rebuild since we were last her - // Do this by making sure the list's dynamic children are the same as when we last saw them - if (codes.stream().noneMatch(w -> + var widget = client.getWidget(client.getIntStack()[client.getIntStackSize() - 2]); + if (widget != null) { - Widget codeWidget = w.getCode(); - if (codeWidget == null) - { - return false; - } - return list.getChild(codeWidget.getIndex()) == codeWidget; - })) - { - codes = null; + code = widget.getText(); } } - - if (codes == null) + else if ("fairyringFilterDbrow".equals(ev.getEventName())) { - // Find all of the widgets that we care about, grouping by their Y value - Map codeMap = new TreeMap<>(); - - for (Widget w : list.getStaticChildren()) - { - if (w.isSelfHidden()) - { - continue; - } - - if (w.getSpriteId() != -1) - { - codeMap.computeIfAbsent(w.getRelativeY(), k -> new CodeWidgets()).setFavorite(w); - } - else if (!Strings.isNullOrEmpty(w.getText())) - { - codeMap.computeIfAbsent(w.getRelativeY(), k -> new CodeWidgets()).setDescription(w); - } - } - - for (Widget w : list.getDynamicChildren()) - { - if (w.isSelfHidden()) - { - continue; - } - - CodeWidgets c = codeMap.computeIfAbsent(w.getRelativeY(), k -> new CodeWidgets()); - c.setCode(w); - } - - if (favorites != null) - { - for (Widget w : favorites.getStaticChildren()) - { - if (w.getId() == InterfaceID.FairyringsLog.DIVIDER) - { - continue; - } - - // Favorites widgets are pre-allocated and hidden if the max of 4 favorites isn't reached - if (w.getSpriteId() != -1 && !w.isSelfHidden()) - { - codeMap.computeIfAbsent(w.getRelativeY(), k -> new CodeWidgets()).setFavorite(w); - } - else if (!Strings.isNullOrEmpty(w.getName()) && !w.isSelfHidden()) - { - codeMap.computeIfAbsent(w.getRelativeY(), k -> new CodeWidgets()).setDescription(w); - } - else if (!Strings.isNullOrEmpty(w.getText()) && !w.isSelfHidden()) - { - codeMap.computeIfAbsent(w.getRelativeY(), k -> new CodeWidgets()).setCode(w); - } - } - } - - codes = codeMap.values(); - } - - // reset the separator widget - Widget separator = client.getWidget(InterfaceID.FairyringsLog.DIVIDER); - if (separator != null) - { - separator.setHidden(true); - separator.setOriginalY(3); + code = (String) client.getDBTableField(client.getIntStack()[client.getIntStackSize() - 2], DBTableID.Fairyring.COL_CODE, 0)[0]; } - // Relayout the panel - int y = 0; - CodeWidgets lastFavorite = null; - boolean hasFavorites = false; - boolean hasNormal = false; - for (CodeWidgets c : codes) + if (code != null && !code.isEmpty()) { - String code = Text.removeTags(c.getDescription().getName()).replace(" ", ""); + code = code.replace(" ", ""); String tags = null; - if (!code.isEmpty()) + var ring = FairyRing.forCode(code); + if (ring != null) { - try - { - FairyRings ring = FairyRings.valueOf(code); - tags = ring.getTags(); - } - catch (IllegalArgumentException e) - { - log.warn("Unable to find ring with code '{}'", code, e); - } - } - - boolean hidden = !(filter.isEmpty() - || Text.removeTags(c.getDescription().getText()).toLowerCase().contains(filter) - || code.toLowerCase().contains(filter) - || tags != null && tags.contains(filter) - || getConfigTags(code).stream().anyMatch(s -> s.contains(filter) - )); - - // add padding to the first widget after the separator - if (!hidden && lastFavorite != null && (c.getFavorite() == null || c.getFavorite().getSpriteId() == SpriteID.FavouriteIcons.ADD)) - { - y += ENTRY_PADDING; - lastFavorite = null; - } - - if (c.getCode() != null) - { - c.getCode().setHidden(hidden); - c.getCode().setOriginalY(y); + tags = ring.getTags(); } - if (c.getFavorite() != null) - { - c.getFavorite().setHidden(hidden); - c.getFavorite().setOriginalY(y); - } - - c.getDescription().setHidden(hidden); - c.getDescription().setOriginalY(y); - - if (!hidden) - { - y += c.getDescription().getHeight() + ENTRY_PADDING; - - if (c.getFavorite() != null && c.getFavorite().getSpriteId() == SpriteID.FavouriteIcons.REMOVE) - { - hasFavorites = true; - lastFavorite = c; - } - else - { - hasNormal = true; - } + var filter = client.getVarcStrValue(VarClientID.MESLAYERINPUT); - // if we have both favorites and standard items in the search results, show the separator - if (hasFavorites && hasNormal) - { - separator.setHidden(false); - } - } - else if (c.getFavorite() != null && c.getFavorite().getSpriteId() == SpriteID.FavouriteIcons.REMOVE) + if (code.toLowerCase().contains(filter) + || tags != null && tags.contains(filter) + || getConfigTags(code).stream().anyMatch(s -> s.contains(filter)) + ) { - // separator widget layouts from the bottom of the favorites container - separator.setOriginalY(separator.getOriginalY() + c.getDescription().getHeight() + ENTRY_PADDING); + client.getIntStack()[client.getIntStackSize() - 1] = 1; } } + } - y -= ENTRY_PADDING; - - if (y < 0) - { - y = 0; - } + @Subscribe + public void onGameTick(GameTick t) + { + // This has to happen because the only widget that gets hidden is the tli one + Widget fairyRingTeleportButton = client.getWidget(InterfaceID.Fairyrings.CONFIRM); + boolean fairyRingWidgetOpen = fairyRingTeleportButton != null && !fairyRingTeleportButton.isHidden(); + boolean tagInputBoxOpen = tagInput != null && chatboxPanelManager.getCurrentInput() == tagInput; - int newHeight = 0; - if (list.getScrollHeight() > 0) + if (!fairyRingWidgetOpen && tagInputBoxOpen) { - newHeight = (list.getScrollY() * y) / list.getScrollHeight(); + chatboxPanelManager.close(); } + } - list.setScrollHeight(y); - list.revalidateScroll(); - client.runScript( - ScriptID.UPDATE_SCROLLBAR, - InterfaceID.FairyringsLog.SCROLLBAR, - InterfaceID.FairyringsLog.CONTENTS, - newHeight - ); + private FairyRing getFairyRingDestination(int varbitValueDialLeft, int varbitValueDialMiddle, int varbitValueDialRight) + { + return FairyRing.valueOf(leftDial[varbitValueDialLeft] + middleDial[varbitValueDialMiddle] + rightDial[varbitValueDialRight]); } @Subscribe public void onMenuEntryAdded(MenuEntryAdded event) { - if (WidgetUtil.componentToInterface(event.getActionParam1()) == InterfaceID.FAIRYRINGS_LOG && - event.getOption().equals("Use code")) + if (WidgetUtil.componentToInterface(event.getActionParam1()) == InterfaceID.FAIRYRINGS_LOG + && event.getOption().equals("Use code") + && !event.getTarget().isEmpty()) { client.getMenu().createMenuEntry(-1) .setParam0(event.getActionParam0()) @@ -467,15 +242,6 @@ public void onMenuEntryAdded(MenuEntryAdded event) } } - @Subscribe - public void onScriptPostFired(ScriptPostFired event) - { - if (event.getScriptId() == ScriptID.FAIRYRINGS_SORT_UPDATE && searchInput != null && tagInput == null) - { - clientThread.invokeLater(() -> updateFilter(searchInput.getValue())); - } - } - private List getConfigTags(String fairyRingCode) { String config = Optional.ofNullable(configManager.getConfiguration(FairyRingConfig.CONFIG_GROUP + '.' + FairyRingConfig.CONFIG_GROUP_TAGS, fairyRingCode)).orElse("").toLowerCase(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java index d7a277b6bd5..5570f081e28 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java @@ -714,11 +714,6 @@ private static boolean isPluginEnabled(String name) { return isPluginEnabled(getPlugin(name)); } - @Deprecated(since = "1.6.2 - Use Rs2Player variant") - public static QuestState getQuestState(Quest quest) { - return getClientThread().runOnClientThreadOptional(() -> quest.getState(client)).orElse(null); - } - public static void writeVersionToFile(String version) throws IOException { try (BufferedWriter writer = new BufferedWriter(new FileWriter(VERSION_FILE_PATH))) { writer.write(version); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/VoxPlugins/schedulable/example/SchedulableExamplePrePostScheduleRequirements.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/VoxPlugins/schedulable/example/SchedulableExamplePrePostScheduleRequirements.java index 1644a8d90c9..58183a098a6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/VoxPlugins/schedulable/example/SchedulableExamplePrePostScheduleRequirements.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/VoxPlugins/schedulable/example/SchedulableExamplePrePostScheduleRequirements.java @@ -1,48 +1,46 @@ package net.runelite.client.plugins.microbot.VoxPlugins.schedulable.example; -import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; -import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; -import net.runelite.client.plugins.microbot.util.magic.Runes; - -import java.time.Duration; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import io.reactivex.rxjava3.functions.BooleanSupplier; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import net.runelite.api.EquipmentInventorySlot; +import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; import net.runelite.api.gameval.ItemID; - import net.runelite.client.plugins.microbot.VoxPlugins.schedulable.example.enums.UnifiedLocation; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.PrePostScheduleRequirements; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.data.ItemRequirementCollection; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.enums.RequirementPriority; +import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.enums.RequirementType; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.enums.TaskContext; +import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.SpellbookRequirement; +import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.collection.LootRequirement; +import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.conditional.ConditionalRequirement; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.item.ItemRequirement; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.location.LocationRequirement; -import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.collection.LootRequirement; -import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.SpellbookRequirement; +import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.logical.OrRequirement; +import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.shop.ShopItemRequirement; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.shop.ShopRequirement; import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.shop.models.ShopOperation; -import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.shop.ShopItemRequirement; -import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.enums.RequirementType; -import net.runelite.client.plugins.microbot.util.shop.models.Rs2ShopItem; -import net.runelite.client.plugins.microbot.util.shop.models.Rs2ShopType; -import net.runelite.client.plugins.microbot.util.shop.StoreLocations; -import net.runelite.api.coords.WorldArea; +import net.runelite.client.plugins.microbot.util.bank.Rs2Bank; import net.runelite.client.plugins.microbot.util.bank.enums.BankLocation; import net.runelite.client.plugins.microbot.util.equipment.Rs2Equipment; import net.runelite.client.plugins.microbot.util.grandexchange.models.TimeSeriesInterval; import net.runelite.client.plugins.microbot.util.grounditem.models.Rs2SpawnLocation; -import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.logical.OrRequirement; -import net.runelite.client.plugins.microbot.pluginscheduler.tasks.requirements.requirement.conditional.ConditionalRequirement; -import net.runelite.client.plugins.microbot.util.magic.Rs2Staff; +import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; import net.runelite.client.plugins.microbot.util.magic.Rs2Spellbook; +import net.runelite.client.plugins.microbot.util.magic.Rs2Staff; +import net.runelite.client.plugins.microbot.util.magic.Runes; +import net.runelite.client.plugins.microbot.util.shop.StoreLocations; +import net.runelite.client.plugins.microbot.util.shop.models.Rs2ShopItem; +import net.runelite.client.plugins.microbot.util.shop.models.Rs2ShopType; + +import java.time.Duration; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.function.BooleanSupplier; /** * Example implementation of PrePostScheduleRequirements for the SchedulableExample plugin. diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java index 6563ceeb06e..ca9d5c7569b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/configs/SpecialAttackConfigs.java @@ -85,7 +85,7 @@ public boolean useSpecWeapon() { public boolean useSpecWeapon(String name, int specEnergy, boolean is2H) { if (name.isEmpty()) return false; - if (Rs2Equipment.isWearingShield() && is2H && Rs2Inventory.isFull()) return false; + if (Rs2Equipment.isWearing(EquipmentInventorySlot.SHIELD) && is2H && Rs2Inventory.isFull()) return false; if (currentEquipment == null) { currentEquipment = new ArrayList<>(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/InventorySetupsSlotID.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/InventorySetupsSlotID.java index a3d2b6ba147..e8a379cce8e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/InventorySetupsSlotID.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/InventorySetupsSlotID.java @@ -26,6 +26,9 @@ import net.runelite.api.InventoryID; +import static net.runelite.api.gameval.InventoryID.INV; +import static net.runelite.api.gameval.InventoryID.WORN; + public enum InventorySetupsSlotID { @@ -55,18 +58,18 @@ public int getId() return id; } - public static InventorySetupsSlotID fromInventoryID(final InventoryID inventoryId) + public static InventorySetupsSlotID fromInventoryID(final int inventoryId) { - if (inventoryId == null) + if (inventoryId == 0) { return null; } switch (inventoryId) { - case INVENTORY: + case INV: return INVENTORY; - case EQUIPMENT: + case WORN: return EQUIPMENT; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/MInventorySetupsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/MInventorySetupsPlugin.java index 41a4bece972..443f57ae82a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/MInventorySetupsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/MInventorySetupsPlugin.java @@ -33,8 +33,8 @@ import net.runelite.api.Menu; import net.runelite.api.*; import net.runelite.api.events.*; +import net.runelite.api.gameval.InterfaceID; import net.runelite.api.widgets.ComponentID; -import net.runelite.api.widgets.InterfaceID; import net.runelite.api.widgets.Widget; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; @@ -426,7 +426,7 @@ else if (event.getKey().equals(CONFIG_KEY_PERSIST_HOTKEYS)) { clientThread.invokeLater(() -> { - boolean bankOpen = client.getItemContainer(InventoryID.BANK) != null; + boolean bankOpen = client.getItemContainer(net.runelite.api.gameval.InventoryID.BANK) != null; if (config.persistHotKeysOutsideBank()) { registerHotkeys(); @@ -546,7 +546,7 @@ public void onPostMenuSort(PostMenuSort postMenuSort) public void onMenuEntryAdded(MenuEntryAdded event) { - Widget bankWidget = client.getWidget(ComponentID.BANK_TITLE_BAR); + Widget bankWidget = client.getWidget(net.runelite.api.gameval.InterfaceID.Bankmain.TITLE); if (bankWidget == null || bankWidget.isHidden()) { return; @@ -561,7 +561,7 @@ public void onMenuEntryAdded(MenuEntryAdded event) // add item to additional filtered items else if (panel.getCurrentSelectedSetup() != null && bankTagsService.getActiveLayout() == null // If there is an active layout, then the real item behind the fake layout item may be added. So just disallow this menu. - && event.getActionParam1() == ComponentID.BANK_ITEM_CONTAINER + && event.getActionParam1() == net.runelite.api.gameval.InterfaceID.Bankmain.UNIVERSE && client.isKeyPressed(KeyCode.KC_SHIFT) && event.getOption().equals("Examine")) { @@ -865,7 +865,7 @@ private Item retrieveItemFromBankMenuEntry(int inventoryIndex) @Subscribe private void onWidgetClosed(WidgetClosed event) { - if (event.getGroupId() == InterfaceID.BANK ) + if (event.getGroupId() == net.runelite.api.gameval.InterfaceID.BANKMAIN ) { if (!config.persistHotKeysOutsideBank()) { @@ -883,7 +883,7 @@ private void onWidgetClosed(WidgetClosed event) @Subscribe public void onWidgetLoaded(WidgetLoaded event) { - if (event.getGroupId() == InterfaceID.BANK) + if (event.getGroupId() == InterfaceID.BANKMAIN) { if (!config.persistHotKeysOutsideBank()) { @@ -954,7 +954,7 @@ public void addInventorySetup() clientThread.invokeLater(() -> { - List inv = getNormalizedContainer(InventoryID.INVENTORY); + List inv = getNormalizedContainer(InterfaceID.INVENTORY); for (int i = 0; i < inv.size(); i++) { InventorySetupsItem item = inv.get(i); @@ -962,7 +962,7 @@ public void addInventorySetup() item.setLocked(isLocked); } - List eqp = getNormalizedContainer(InventoryID.EQUIPMENT); + List eqp = getNormalizedContainer(net.runelite.api.gameval.InventoryID.WORN); List runePouchData = ammoHandler.getRunePouchDataIfInContainer(inv); List boltPouchData = ammoHandler.getBoltPouchDataIfInContainer(inv); List quiverData = ammoHandler.getQuiverDataIfInSetup(inv, eqp); @@ -1014,8 +1014,8 @@ public void addInventorySetup(String name) { clientThread.invokeLater(() -> { - List inv = getNormalizedContainer(InventoryID.INVENTORY); - List eqp = getNormalizedContainer(InventoryID.EQUIPMENT); + List inv = getNormalizedContainer(net.runelite.api.gameval.InventoryID.INV); + List eqp = getNormalizedContainer(net.runelite.api.gameval.InventoryID.WORN); List runePouchData = ammoHandler.getRunePouchDataIfInContainer(inv); List boltPouchData = ammoHandler.getBoltPouchDataIfInContainer(inv); @@ -1418,8 +1418,8 @@ public void updateCurrentSetup(InventorySetup setup, boolean showConfirmDialog) // must be on client thread to get names clientThread.invokeLater(() -> { - List inv = getNormalizedContainer(InventoryID.INVENTORY); - List eqp = getNormalizedContainer(InventoryID.EQUIPMENT); + List inv = getNormalizedContainer(net.runelite.api.gameval.InventoryID.INV); + List eqp = getNormalizedContainer(net.runelite.api.gameval.InventoryID.WORN); // copy over fuzzy attributes for (int i = 0; i < inv.size(); i++) @@ -2058,17 +2058,17 @@ public List getNormalizedContainer(final InventorySetupsSlo switch (id) { case INVENTORY: - return getNormalizedContainer(InventoryID.INVENTORY); + return getNormalizedContainer(net.runelite.api.gameval.InventoryID.INV); case EQUIPMENT: - return getNormalizedContainer(InventoryID.EQUIPMENT); + return getNormalizedContainer(net.runelite.api.gameval.InventoryID.WORN); default: return ammoHandler.getNormalizedSpecialContainer(id); } } - public List getNormalizedContainer(final InventoryID id) + public List getNormalizedContainer(final int id) { - assert id == InventoryID.INVENTORY || id == InventoryID.EQUIPMENT : "invalid inventory ID"; + assert id == net.runelite.api.gameval.InventoryID.INV || id == net.runelite.api.gameval.InventoryID.WORN : "invalid inventory ID"; final ItemContainer container = client.getItemContainer(id); @@ -2080,7 +2080,7 @@ public List getNormalizedContainer(final InventoryID id) items = container.getItems(); } - int size = id == InventoryID.INVENTORY ? NUM_INVENTORY_ITEMS : NUM_EQUIPMENT_ITEMS; + int size = id == net.runelite.api.gameval.InventoryID.INV ? NUM_INVENTORY_ITEMS : NUM_EQUIPMENT_ITEMS; for (int i = 0; i < size; i++) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/ui/InventorySetupsPluginPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/ui/InventorySetupsPluginPanel.java index 9fbf6006704..88ab265e515 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/ui/InventorySetupsPluginPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/inventorysetups/ui/InventorySetupsPluginPanel.java @@ -24,33 +24,11 @@ */ package net.runelite.client.plugins.microbot.inventorysetups.ui; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetupUtilities; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetup; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetupsItem; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetupsPanelViewID; -import net.runelite.client.plugins.microbot.inventorysetups.MInventorySetupsPlugin; -import static net.runelite.client.plugins.microbot.inventorysetups.MInventorySetupsPlugin.CONFIG_KEY_PANEL_VIEW; -import static net.runelite.client.plugins.microbot.inventorysetups.MInventorySetupsPlugin.CONFIG_KEY_SECTION_MODE; -import static net.runelite.client.plugins.microbot.inventorysetups.MInventorySetupsPlugin.CONFIG_KEY_UNASSIGNED_MAXIMIZED; -import static net.runelite.client.plugins.microbot.inventorysetups.MInventorySetupsPlugin.TUTORIAL_LINK; - -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetupsSection; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetupsSlotID; -import net.runelite.client.plugins.microbot.inventorysetups.InventorySetupsSortingID; - -import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.runelite.client.plugins.microbot.inventorysetups.serialization.InventorySetupPortable; import lombok.Getter; import lombok.Setter; -import net.runelite.api.InventoryID; import net.runelite.client.game.ItemManager; +import net.runelite.client.plugins.microbot.inventorysetups.*; +import net.runelite.client.plugins.microbot.inventorysetups.serialization.InventorySetupPortable; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.PluginPanel; import net.runelite.client.ui.components.IconTextField; @@ -58,23 +36,22 @@ import net.runelite.client.util.ImageUtil; import net.runelite.client.util.LinkBrowser; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.ImageIcon; -import javax.swing.JLabel; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.border.EmptyBorder; +import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; +import java.util.List; +import java.util.*; import java.util.stream.Collectors; +import static net.runelite.api.gameval.InventoryID.INV; +import static net.runelite.api.gameval.InventoryID.WORN; +import static net.runelite.client.plugins.microbot.inventorysetups.MInventorySetupsPlugin.*; + // The main panel of the plugin that contains all viewing components public class InventorySetupsPluginPanel extends PluginPanel { @@ -804,8 +781,8 @@ public void doHighlighting() return; } - final List inv = plugin.getNormalizedContainer(InventoryID.INVENTORY); - final List eqp = plugin.getNormalizedContainer(InventoryID.EQUIPMENT); + final List inv = plugin.getNormalizedContainer(INV); + final List eqp = plugin.getNormalizedContainer(WORN); highlightContainerPanel(inv, inventoryPanel); highlightContainerPanel(eqp, equipmentPanel); @@ -830,13 +807,13 @@ public void highlightContainerPanel(final List container, f public void highlightInventory() { - final List inv = plugin.getNormalizedContainer(InventoryID.INVENTORY); + final List inv = plugin.getNormalizedContainer(INV); highlightContainerPanel(inv, inventoryPanel); } public void highlightEquipment() { - final List eqp = plugin.getNormalizedContainer(InventoryID.EQUIPMENT); + final List eqp = plugin.getNormalizedContainer(WORN); highlightContainerPanel(eqp, equipmentPanel); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/examples/ExamplePrePostScheduleTasks.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/examples/ExamplePrePostScheduleTasks.java index d1696ca711c..e56b64c7829 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/examples/ExamplePrePostScheduleTasks.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/examples/ExamplePrePostScheduleTasks.java @@ -12,11 +12,9 @@ import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory; import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; -import static net.runelite.client.plugins.microbot.util.Global.sleepUntil; - import java.util.concurrent.CompletableFuture; -import javax.net.ssl.KeyManager; +import static net.runelite.client.plugins.microbot.util.Global.sleepUntil; /** * Example implementation showing how to extend {@link AbstractPrePostScheduleTasks} @@ -164,7 +162,7 @@ private boolean prepareBasicSetup() { Rs2Bank.depositAll(); sleepUntil(() -> Rs2Inventory.isEmpty(), 5000); Rs2Bank.depositEquipment(); - sleepUntil(() -> Rs2Equipment.isNaked(), 5000); + sleepUntil(() -> !Rs2Equipment.isWearing(), 5000); // TODO: Add your plugin's specific equipment and item withdrawal logic here // Example: diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/PrePostScheduleRequirements.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/PrePostScheduleRequirements.java index 2a3e1d4433b..31a69ed5889 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/PrePostScheduleRequirements.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/PrePostScheduleRequirements.java @@ -1339,7 +1339,7 @@ private InventorySetupPlanner analyzeRequirementsAndCreateLayoutPlan(Completable for (Rs2ItemModel item : itemNotInItemReqsEquipment) { EquipmentInventorySlot itemSlot = EquipmentInventorySlot.values()[item.getSlot()]; Rs2Bank.depositEquippedItem(itemSlot); - boolean individualDeposited = sleepUntil(()->!Rs2Equipment.hasEquipped(item.getId()), Constants.GAME_TICK_LENGTH*2); + boolean individualDeposited = sleepUntil(()->!Rs2Equipment.isWearing(item.getId()), Constants.GAME_TICK_LENGTH*2); if (individualDeposited) { log.info("\\tDeposited individual equipment item: {} x{}", item.getName(), item.getQuantity()); } else { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/requirement/SpellbookRequirement.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/requirement/SpellbookRequirement.java index 07a9a548b37..fd990e07028 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/requirement/SpellbookRequirement.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/pluginscheduler/tasks/requirements/requirement/SpellbookRequirement.java @@ -346,7 +346,7 @@ private static boolean ensureLunarIsleAccess() { log.info("Seal of passage in inventory, equipping it for Lunar Isle access"); // equip the seal of passage if (Rs2Inventory.interact(ItemID.LUNAR_SEAL_OF_PASSAGE, "Wear")) { - boolean equipped = sleepUntil(() -> Rs2Equipment.hasEquipped(ItemID.LUNAR_SEAL_OF_PASSAGE), 3000); + boolean equipped = sleepUntil(() -> Rs2Equipment.isWearing(ItemID.LUNAR_SEAL_OF_PASSAGE), 3000); if (equipped) { log.info("Successfully equipped seal of passage for Lunar Isle access"); return true; @@ -407,7 +407,7 @@ private static boolean ensureLunarIsleAccess() { // equip the seal of passage if (Rs2Inventory.interact(ItemID.LUNAR_SEAL_OF_PASSAGE, "Wear")) { - boolean equipped = sleepUntil(() -> Rs2Equipment.hasEquipped(ItemID.LUNAR_SEAL_OF_PASSAGE), 3000); + boolean equipped = sleepUntil(() -> Rs2Equipment.isWearing(ItemID.LUNAR_SEAL_OF_PASSAGE), 3000); if (equipped) { log.info("Successfully equipped seal of passage for Lunar Isle access"); return true; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/tools/Icon.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/tools/Icon.java index 609726a9816..f1faa301a00 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/tools/Icon.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/tools/Icon.java @@ -46,6 +46,8 @@ public enum Icon EXPANDED("expanded.png"), ICON_BACKGROUND("icon_background.png"), INFO_ICON("info_icon.png"), + QUEST_ICON_OFF("quest_icon_off.png"), + QUEST_ICON_ON("quest_icon_on.png"), QUEST_ICON("quest_icon.png"), QUEST_STEP_ARROW("quest_step_arrow.png"), QUEST_STEP_ARROW_45("quest_step_arrow_45.png"), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java index bc1ad49572c..0c46b26335c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/bank/Rs2Bank.java @@ -3,27 +3,13 @@ import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import lombok.extern.slf4j.Slf4j; -import net.runelite.api.EquipmentInventorySlot; - -import java.util.List; -import java.util.stream.Collectors; -import net.runelite.api.GameObject; -import net.runelite.api.InventoryID; -import net.runelite.api.ItemComposition; -import net.runelite.api.MenuAction; -import net.runelite.api.NPC; -import net.runelite.api.Player; -import net.runelite.api.ScriptID; -import net.runelite.api.SpriteID; -import net.runelite.api.TileObject; -import net.runelite.api.VarClientInt; -import net.runelite.api.WallObject; +import net.runelite.api.*; import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; import net.runelite.api.events.ItemContainerChanged; +import net.runelite.api.gameval.InterfaceID; import net.runelite.api.gameval.ItemID; import net.runelite.api.gameval.VarbitID; -import net.runelite.api.gameval.InterfaceID; import net.runelite.api.widgets.ComponentID; import net.runelite.api.widgets.Widget; import net.runelite.client.config.RuneScapeProfileType; @@ -35,6 +21,7 @@ import net.runelite.client.plugins.microbot.shortestpath.pathfinder.Pathfinder; import net.runelite.client.plugins.microbot.util.antiban.Rs2AntibanSettings; import net.runelite.client.plugins.microbot.util.bank.enums.BankLocation; +import net.runelite.client.plugins.microbot.util.cache.serialization.CacheSerializationManager; import net.runelite.client.plugins.microbot.util.coords.Rs2WorldPoint; import net.runelite.client.plugins.microbot.util.equipment.Rs2Equipment; import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject; @@ -50,7 +37,6 @@ import net.runelite.client.plugins.microbot.util.npc.Rs2NpcModel; import net.runelite.client.plugins.microbot.util.player.Rs2Player; import net.runelite.client.plugins.microbot.util.player.Rs2PlayerModel; -import net.runelite.client.plugins.microbot.util.cache.serialization.CacheSerializationManager; import net.runelite.client.plugins.microbot.util.security.Encryption; import net.runelite.client.plugins.microbot.util.security.Login; import net.runelite.client.plugins.microbot.util.settings.Rs2Settings; @@ -1208,13 +1194,6 @@ public static boolean withdrawOne(String name) { return withdrawOne(name, false); } - @Deprecated(since="Use withdrawOne & sleep") - public static boolean withdrawOne(String name, int sleepTime) { - final boolean success = withdrawOne(name, false); - sleep(sleepTime); - return success; - } - /** * withdraw one item identified by its id. * @@ -2163,16 +2142,6 @@ public static boolean walkToBankAndUseBank(BankLocation bankLocation, boolean to return Rs2Bank.openBank(); } - /** - * Use bank or chest - * - * @return true if bank is opened - */ - @Deprecated(since="Use openBank") - public static boolean useBank() { - return openBank(); - } - /** * Updates the bank items in memory based on the provided event. * Thread-safe method called from the client thread via event handler. @@ -2827,7 +2796,7 @@ public static boolean depositLootingBag(){ public static boolean withdrawLootItems(String npcName, List itemsToNotSell) { boolean isAtGe = Rs2GrandExchange.walkToGrandExchange(); if (isAtGe) { - boolean isBankOpen = Rs2Bank.useBank(); + boolean isBankOpen = Rs2Bank.openBank(); if (!isBankOpen) return false; } Rs2Bank.depositAll(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/depositbox/DepositBoxLocation.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/depositbox/DepositBoxLocation.java index 11043198dd7..7afa520f039 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/depositbox/DepositBoxLocation.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/depositbox/DepositBoxLocation.java @@ -169,7 +169,7 @@ public boolean hasRequirements() { if (!isMember()) return false; // Requires Lunar Diplomacy & Seal of passage OR Dream Mentor if (Rs2Player.getQuestState(Quest.DREAM_MENTOR) != QuestState.FINISHED) { - return Rs2Player.getQuestState(Quest.LUNAR_DIPLOMACY) == QuestState.FINISHED && Rs2Equipment.hasEquipped(ItemID.SEAL_OF_PASSAGE); + return Rs2Player.getQuestState(Quest.LUNAR_DIPLOMACY) == QuestState.FINISHED && Rs2Equipment.isWearing(ItemID.SEAL_OF_PASSAGE); } else { return Rs2Player.getQuestState(Quest.DREAM_MENTOR) == QuestState.FINISHED; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/equipment/Rs2Equipment.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/equipment/Rs2Equipment.java index 26ab5dc7392..580362819fe 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/equipment/Rs2Equipment.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/equipment/Rs2Equipment.java @@ -52,40 +52,6 @@ public static void storeEquipmentItemsInMemory(ItemContainerChanged e) { equipmentItems = Collections.unmodifiableList(_equipmentItems); } - @Deprecated(since = "Use interact", forRemoval = true) - public static boolean useCapeAction(int itemId, String action) { - Rs2ItemModel item = get(itemId); - if (item == null) { - Microbot.status = "Cape is missing in the equipment slot"; - return false; - } - - invokeMenu(item, action); - return true; - } - - @Deprecated(since = "Use interact", forRemoval = true) - public static boolean useRingAction(JewelleryLocationEnum jewelleryLocationEnum) { - if (!isWearing(EquipmentInventorySlot.RING)) { - Microbot.status = "Amulet is missing in the equipment slot"; - return false; - } - Microbot.doInvoke(new NewMenuEntry(-1, 25362456, MenuAction.CC_OP.getId(), jewelleryLocationEnum.getIdentifier(), -1, "Equip"), - new Rectangle(1, 1, Microbot.getClient().getCanvasWidth(), Microbot.getClient().getCanvasHeight())); - return true; - } - - @Deprecated(since = "Use interact", forRemoval = true) - public static boolean useAmuletAction(JewelleryLocationEnum jewelleryLocationEnum) { - if (!isWearing(EquipmentInventorySlot.AMULET) || !hasEquippedContains(jewelleryLocationEnum.getTooltip())) { - Microbot.status = "Amulet is missing in the equipment slot"; - return false; - } - Microbot.doInvoke(new NewMenuEntry(-1, 25362449, MenuAction.CC_OP.getId(), jewelleryLocationEnum.getIdentifier(), -1, "Equip"), - new Rectangle(1, 1, Microbot.getClient().getCanvasWidth(), Microbot.getClient().getCanvasHeight())); - return true; - } - public static Stream all() { final List items = items(); if (items == null) return Stream.empty(); @@ -150,81 +116,6 @@ public static Rs2ItemModel get(String... names) { return all(names).findFirst().orElse(null); } - /** - * Checks if the equipment contains an item that matches the specified predicate. - * - * @param predicate The predicate to apply. - * @return True if the equipment contains an item that matches the predicate, false otherwise. - */ - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean contains(Predicate predicate) { - return get(predicate) != null; - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasEquipped(String itemName) { - return isWearing(itemName,true); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasEquippedContains(String itemName) { - return isWearing(itemName,false); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasEquipped(int id) { - return isWearing(id); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasEquippedSlot(EquipmentInventorySlot slot) { - return isWearing(slot); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isEquipped(String name, EquipmentInventorySlot slot) { - return isEquipped(name, slot, false); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isEquipped(int id, EquipmentInventorySlot slot) { - final Rs2ItemModel item = get(slot); - return item != null && item.getId() == id; - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isEquipped(String name, EquipmentInventorySlot slot, boolean exact) { - final Rs2ItemModel item = get(slot); - if (item == null) return false; - return exact ? item.getName().equalsIgnoreCase(name) : item.getName().toLowerCase().contains(name.toLowerCase()); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasGuthanWeaponEquiped() { - return isEquipped("guthan's warspear", EquipmentInventorySlot.WEAPON); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasGuthanBodyEquiped() { - return isEquipped("guthan's platebody", EquipmentInventorySlot.BODY); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasGuthanLegsEquiped() { - return isEquipped("guthan's chainskirt", EquipmentInventorySlot.LEGS); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean hasGuthanHelmEquiped() { - return isEquipped("guthan's helm", EquipmentInventorySlot.HEAD); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isWearingFullGuthan() { - return hasGuthanBodyEquiped() && hasGuthanWeaponEquiped() && - hasGuthanHelmEquiped() && hasGuthanLegsEquiped(); - } - public static boolean isWearing() { return get() != null; } @@ -278,11 +169,6 @@ public static boolean isWearing(String[] names, EquipmentInventorySlot[] searchS return isWearing(names, false, searchSlots); } - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isWearing(List names, boolean exact, List ignoreSlots) { - return isWearing(names.toArray(String[]::new), exact, ignoreSlots.toArray(EquipmentInventorySlot[]::new), false); - } - private static boolean unEquip(Rs2ItemModel item) { return interact(item, "remove"); } @@ -414,16 +300,6 @@ public static boolean interact(String[] names, String action) { return interact(names, action, false); } - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isWearingShield() { - return isWearing(EquipmentInventorySlot.SHIELD); - } - - @Deprecated(since = "Use isWearing", forRemoval = true) - public static boolean isNaked() { - return !isWearing(); - } - public static void invokeMenu(Rs2ItemModel rs2Item, String action) { if (action == null || action.isEmpty()) return; if (rs2Item == null) return; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/item/Rs2ExplorersRing.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/item/Rs2ExplorersRing.java index ce65f3cfd54..a3368b02215 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/item/Rs2ExplorersRing.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/item/Rs2ExplorersRing.java @@ -109,10 +109,10 @@ public static boolean highAlch(Rs2ItemModel item) { } // Check if any Explorer's Ring is equipped - if ((Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_EASY) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_MEDIUM) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_HARD) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_ELITE))) { + if ((Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_EASY) || + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_MEDIUM) || + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_HARD) || + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_ELITE))) { return interact(item); } return false; @@ -147,10 +147,10 @@ public static boolean hasRing() { Rs2Inventory.hasItem(ItemID.LUMBRIDGE_RING_MEDIUM) || Rs2Inventory.hasItem(ItemID.LUMBRIDGE_RING_HARD) || Rs2Inventory.hasItem(ItemID.LUMBRIDGE_RING_ELITE) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_EASY) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_MEDIUM) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_HARD) || - Rs2Equipment.hasEquipped(ItemID.LUMBRIDGE_RING_ELITE); + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_EASY) || + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_MEDIUM) || + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_HARD) || + Rs2Equipment.isWearing(ItemID.LUMBRIDGE_RING_ELITE); } /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/math/Random.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/math/Random.java deleted file mode 100644 index 21549f5a0e9..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/math/Random.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.runelite.client.plugins.microbot.util.math; - -import java.util.concurrent.ThreadLocalRandom; -@Deprecated(since = "1.6.0 - Please use Rs2Random", forRemoval = true) -public class Random { - public static int random(final int min, final int max) { - final int n = Math.abs(max - min); - return Math.min(min, max) + (n == 0 ? 0 : new java.util.Random().nextInt(n)); - } - public static double randomDouble(final int min, final int max) { - return min + (max - min) * new java.util.Random().nextDouble(); - } - - public static double clamp(double val) { - return Math.max(1.0, Math.min(13000.0, val)); - } - - public static long randomDelay() { - return (long)clamp(Math.round(new java.util.Random().nextGaussian() * 8000.0)); - } - - /** - * A Gaussian distribution (bell curve) generates values clustered around the mean but with random variations. - * This approach mimics more natural randomness than a uniform random value. - * @param mean - * @param stddev - * @return - */ - @Deprecated(since="1.6.5 - please use Rs2Random", forRemoval = true) - public static int randomGaussian(double mean, double stddev) { - double u, v, s; - do { - u = 2.0 * ThreadLocalRandom.current().nextDouble() - 1.0; - v = 2.0 * ThreadLocalRandom.current().nextDouble() - 1.0; - s = u * u + v * v; - } while (s >= 1 || s == 0); - double multiplier = Math.sqrt(-2.0 * Math.log(s) / s); - int value = (int) (mean + stddev * u * multiplier); - if (value < 0) - { - value = 0; - } - return value; - } - - public static int randomWithNoise(int base, int noise) { - return base + ThreadLocalRandom.current().nextInt(-noise / 2, noise / 2 + 1); - } - - public static int randomExponential(int base, double factor) { - return (int) (base * Math.pow(2, ThreadLocalRandom.current().nextDouble() * factor)); - } -} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/npc/Rs2NpcModel.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/npc/Rs2NpcModel.java index 3e213260a48..0f3245c9767 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/npc/Rs2NpcModel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/npc/Rs2NpcModel.java @@ -2,6 +2,7 @@ import lombok.EqualsAndHashCode; import lombok.Getter; +import net.runelite.api.HeadIcon; import net.runelite.api.NPC; import net.runelite.api.NPCComposition; import net.runelite.api.NpcOverrides; @@ -11,8 +12,6 @@ import org.jetbrains.annotations.Nullable; import java.util.Arrays; -import java.util.Objects; -import java.util.function.BiPredicate; import java.util.function.Predicate; @Getter @@ -164,4 +163,31 @@ public static Predicate matches(boolean exact, String... names) { Arrays.stream(names).anyMatch(s -> name.contains(s.toLowerCase())); }; } + + /** + * Gets the overhead prayer icon of the NPC, if any. + * @return + */ + public HeadIcon getHeadIcon() { + if (runeliteNpc == null) { + return null; + } + + if (runeliteNpc.getOverheadSpriteIds() == null) { + Microbot.log("Failed to find the correct overhead prayer."); + return null; + } + + for (int i = 0; i < runeliteNpc.getOverheadSpriteIds().length; i++) { + int overheadSpriteId = runeliteNpc.getOverheadSpriteIds()[i]; + + if (overheadSpriteId == -1) continue; + + return HeadIcon.values()[overheadSpriteId]; + } + + Microbot.log("Found overheadSpriteIds: " + Arrays.toString(runeliteNpc.getOverheadSpriteIds()) + " but failed to find valid overhead prayer."); + + return null; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java index bf027a5ca09..471059be142 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java @@ -226,9 +226,9 @@ public static void handleAnimationChanged(AnimationChanged event) { * Wait for walking */ public static void waitForWalking() { - boolean result = sleepUntilTrue(Rs2Player::isWalking, 100, 5000); + boolean result = sleepUntilTrue(Rs2Player::isMoving, 100, 5000); if (!result) return; - sleepUntil(() -> !Rs2Player.isWalking()); + sleepUntil(() -> !Rs2Player.isMoving()); } /** @@ -239,9 +239,9 @@ public static void waitForWalking() { * If the player does not start walking within this time, the method exits early. */ public static void waitForWalking(int time) { - boolean result = sleepUntilTrue(Rs2Player::isWalking, 100, time); + boolean result = sleepUntilTrue(Rs2Player::isMoving, 100, time); if (!result) return; - sleepUntil(() -> !Rs2Player.isWalking(), time); + sleepUntil(() -> !Rs2Player.isMoving(), time); } /** @@ -337,17 +337,6 @@ public static boolean isAnimating() { return isAnimating(600); } - /** - * Checks if the player is currently walking. - * - * @return {@code true} if the player is moving, {@code false} otherwise. - * @deprecated Since version 1.7.2, use {@link #isMoving()} instead. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean isWalking() { - return Rs2Player.isMoving(); - } - /** * Checks if the player is currently moving based on their pose animation. * A player is considered moving if their pose animation is different from their idle pose animation. @@ -417,15 +406,6 @@ public static boolean isInMemberWorld() { return false; } - - @Deprecated(since = "Use the Rs2Combat.specState method", forRemoval = true) - public static void toggleSpecialAttack(int energyRequired) { - int currentSpecEnergy = Microbot.getClient().getVarpValue(VarPlayer.SPECIAL_ATTACK_PERCENT); - if (currentSpecEnergy >= energyRequired && (Microbot.getClient().getVarpValue(VarPlayer.SPECIAL_ATTACK_ENABLED) == 0)) { - Rs2Widget.clickWidget("special attack"); - } - } - /** * Toggles the player's run energy on or off. * @@ -460,10 +440,8 @@ public static boolean isRunEnabled() { */ public static void logout() { if (!Microbot.isLoggedIn()) return; - if (Rs2Tab.getCurrentTab() != InterfaceTab.LOGOUT) { - Rs2Tab.switchToLogout(); - sleepUntil(() -> Rs2Tab.getCurrentTab() == InterfaceTab.LOGOUT); - } + + Rs2Tab.switchTo(InterfaceTab.LOGOUT); Widget currentWorldWidget = Rs2Widget.getWidget(69, 3); if (currentWorldWidget != null) { @@ -683,22 +661,6 @@ public static double getHealthPercentage() { return (double) (getBoostedSkillLevel(Skill.HITPOINTS) * 100) / getRealSkillLevel(Skill.HITPOINTS); } - /** - * Retrieves a list of players around the player. - * - * @return A list of {@code Rs2PlayerModel} objects representing nearby players, excluding the local player. - * @deprecated Since 1.7.2, use {@link #getPlayers(Predicate)} for better filtering support. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static List getPlayers() { - return Microbot.getClient() - .getTopLevelWorldView() - .players() - .stream() - .filter(Objects::nonNull) - .collect(Collectors.toList()); - } - /** * Get a stream of players around you, optionally filtered by a predicate. * @@ -790,21 +752,6 @@ public static int calculateHealthPercentage(Rs2PlayerModel rs2Player) { return (int) ((healthRatio / (double) healthScale) * 100); } - /** - * Calculates the player's health as a percentage. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} - * before calculating health percentage.

- * - * @param player The {@link Player} to calculate health for. - * @return The health percentage (0-100), or {@code -1} if health information is unavailable. - * @deprecated Since 1.7.2, use {@link #calculateHealthPercentage(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static int calculateHealthPercentage(Player player) { - return calculateHealthPercentage(new Rs2PlayerModel(player)); - } - /** * Retrieves a map of the player's equipped items, mapping {@link KitType} to their corresponding item IDs. * @@ -822,18 +769,6 @@ public static Map getPlayerEquipmentIds(Rs2PlayerModel rs2Play return equipmentMap; } - /** - * Retrieves a map of the player's equipped items by converting a {@link Player} object into an {@link Rs2PlayerModel}. - * - * @param player The {@link Player} whose equipment is to be retrieved. - * @return A {@code Map} containing the equipment slot types as keys and the corresponding item IDs as values. - * @deprecated Since 1.7.2, use {@link #getPlayerEquipmentIds(Rs2PlayerModel)} for consistency and better type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static Map getPlayerEquipmentIds(Player player) { - return getPlayerEquipmentIds(new Rs2PlayerModel(player)); - } - /** * Retrieves a map of the player's equipped items, mapping {@link KitType} to their corresponding item names. @@ -856,18 +791,6 @@ public static Map getPlayerEquipmentNames(Rs2PlayerModel rs2Pla return equipmentMap; } - /** - * Retrieves a map of the player's equipped items by converting a {@link Player} object into an {@link Rs2PlayerModel}. - * - * @param player The {@link Player} whose equipment names are to be retrieved. - * @return A {@code Map} containing the equipment slot types as keys and the corresponding item names as values. - * @deprecated Since 1.7.2, use {@link #getPlayerEquipmentNames(Rs2PlayerModel)} for consistency and better type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static Map getPlayerEquipmentNames(Player player) { - return getPlayerEquipmentNames(new Rs2PlayerModel(player)); - } - /** * Checks if a player has a specific item equipped by its item ID. @@ -882,20 +805,6 @@ public static boolean hasPlayerEquippedItem(Rs2PlayerModel rs2Player, int itemId return equipment.values().stream() .anyMatch(equippedItemId -> equippedItemId == itemId); } - - /** - * Checks if a player has a specific item equipped by its item ID. - * Converts a {@link Player} object into an {@link Rs2PlayerModel} before performing the check. - * - * @param player The {@link Player} whose equipment is being checked. - * @param itemId The ID of the item to check for. - * @return {@code true} if the player has the specified item equipped, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #hasPlayerEquippedItem(Rs2PlayerModel, int)} for consistency and better type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean hasPlayerEquippedItem(Player player, int itemId) { - return hasPlayerEquippedItem(new Rs2PlayerModel(player), itemId); - } /** * Checks if a player has any of the specified items equipped by their item IDs. @@ -911,20 +820,6 @@ public static boolean hasPlayerEquippedItem(Rs2PlayerModel rs2Player, int[] item .anyMatch(equippedItemId -> Arrays.stream(itemIds).anyMatch(id -> id == equippedItemId)); } - /** - * Checks if a player has any of the specified items equipped by their item IDs. - * Converts a {@link Player} object into an {@link Rs2PlayerModel} before performing the check. - * - * @param player The {@link Player} whose equipment is being checked. - * @param itemIds An array of item IDs to check for. - * @return {@code true} if the player has any of the specified items equipped, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #hasPlayerEquippedItem(Rs2PlayerModel, int[])} for consistency and better type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean hasPlayerEquippedItem(Player player, int[] itemIds) { - return hasPlayerEquippedItem(new Rs2PlayerModel(player), itemIds); - } - /** * Checks if a player has a specific item equipped by its name. @@ -940,20 +835,6 @@ public static boolean hasPlayerEquippedItem(Rs2PlayerModel rs2Player, String ite .anyMatch(equippedItem -> equippedItem.equalsIgnoreCase(itemName)); } - /** - * Checks if a player has a specific item equipped by its name. - * Converts a {@link Player} object into an {@link Rs2PlayerModel} before performing the check. - * - * @param player The {@link Player} whose equipment is being checked. - * @param itemName The name of the item to check for. - * @return {@code true} if the player has the specified item equipped, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #hasPlayerEquippedItem(Rs2PlayerModel, String)} for consistency and better type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean hasPlayerEquippedItem(Player player, String itemName) { - return hasPlayerEquippedItem(new Rs2PlayerModel(player), itemName); - } - /** * Checks if a player has any of the specified items equipped by their names. @@ -969,20 +850,6 @@ public static boolean hasPlayerEquippedItem(Rs2PlayerModel rs2Player, List itemNames.stream().anyMatch(equippedItem::equalsIgnoreCase)); } - /** - * Checks if a player has any of the specified items equipped by their names. - * Converts a {@link Player} object into an {@link Rs2PlayerModel} before performing the check. - * - * @param player The {@link Player} whose equipment is being checked. - * @param itemNames A list of item names to check for. - * @return {@code true} if the player has any of the specified items equipped, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #hasPlayerEquippedItem(Rs2PlayerModel, List)} for consistency and better type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean hasPlayerEquippedItem(Player player, List itemNames) { - return hasPlayerEquippedItem(new Rs2PlayerModel(player), itemNames); - } - /** * Retrieves the combat level of the local player. @@ -1016,17 +883,6 @@ public static Rs2PlayerModel getLocalPlayer() { return getPlayers(player -> player.getId() == Microbot.getClient().getLocalPlayer().getId(), true).findFirst().orElse(null); } - /** - * Get the raw local player instance. - * - * @return The raw {@link Player} object. - * @deprecated Since 1.7.2, use {@link #getLocalPlayer()} instead. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static Player getLocalPlayer(boolean raw) { - return Microbot.getClient().getLocalPlayer(); - } - /** * Checks if the player is in combat based on recent activity. * @@ -1046,21 +902,6 @@ public static List getPlayersInCombatLevelRange() { return getPlayersMatchingCombatCriteria().collect(Collectors.toList()); } - /** - * Gets a list of Player objects around the local player within the combat level range - * and wilderness level where they can attack and be attacked. - * - * @param raw If true, returns a list of raw Player objects instead of Rs2PlayerModel. - * @return A list of Player objects within the combat range and attackable wilderness levels. - * @deprecated Since 1.7.2, use {@link #getPlayersInCombatLevelRange()} instead. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static List getPlayersInCombatLevelRange(boolean raw) { - return getPlayersMatchingCombatCriteria() - .map(Rs2PlayerModel::getPlayer) - .collect(Collectors.toList()); - } - /** * Helper method that applies the combat level filtering and returns a Stream of Rs2PlayerModel. * @@ -1123,19 +964,6 @@ public static Rs2WorldPoint getRs2WorldPoint() { return new Rs2WorldPoint(getWorldLocation()); } - /** - * Checks if the player is within a specified distance of a given {@link WorldPoint}. - * - * @param worldPoint The {@link WorldPoint} to check proximity to. - * @param radius The radius (in tiles) around the {@code worldPoint} to check. - * @return {@code true} if the player is within the specified distance, {@code false} otherwise. - * @deprecated Since 1.9.6, use {@link #isInArea(WorldPoint, int)} for better naming consistency. - */ - @Deprecated(since = "1.9.6", forRemoval = true) - public static boolean isNearArea(WorldPoint worldPoint, int radius) { - return isInArea(worldPoint, radius); - } - /** * Checks if the player is within a specified distance of a given {@link WorldPoint}. * @@ -1817,20 +1645,6 @@ public static boolean attack(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "attack"); } - /** - * Invokes the "attack" action on the specified player. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the attack action.

- * - * @param player The {@link Player} to attack. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #attack(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean attack(Player player) { - return attack(new Rs2PlayerModel(player)); - } - /** * Invokes the "walk here" action to move to the same location as the specified player. * @@ -1843,20 +1657,6 @@ public static boolean walkUnder(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "walk here"); } - /** - * Invokes the "walk here" action to move to the same location as the specified player. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the movement action.

- * - * @param player The {@link Player} under whose position to walk. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #walkUnder(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean walkUnder(Player player) { - return walkUnder(new Rs2PlayerModel(player)); - } - /** * Invokes the "trade with" action on the specified player. * @@ -1869,20 +1669,6 @@ public static boolean trade(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "trade with"); } - /** - * Invokes the "trade with" action on the specified player. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the trade action.

- * - * @param player The {@link Player} to trade with. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #trade(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean trade(Player player) { - return trade(new Rs2PlayerModel(player)); - } - /** * Invokes the "follow" action on the specified player. * @@ -1895,20 +1681,6 @@ public static boolean follow(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "follow"); } - /** - * Invokes the "follow" action on the specified player. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the follow action.

- * - * @param player The {@link Player} to follow. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #follow(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean follow(Player player) { - return follow(new Rs2PlayerModel(player)); - } - /** * Invokes the "cast" action on the specified player. * @@ -1921,20 +1693,6 @@ public static boolean cast(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "cast"); } - /** - * Invokes the "cast" action on the specified player. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the cast action.

- * - * @param player The {@link Player} to cast on. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #cast(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean cast(Player player) { - return cast(new Rs2PlayerModel(player)); - } - /** * Selects the "USE" option on a player for an item that is already selected via {@code Rs2Inventory.use(item)}. * @@ -1946,20 +1704,6 @@ public static boolean cast(Player player) { public static boolean use(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "use"); } - - /** - * Selects the "USE" option on a player for an item that is already selected via {@code Rs2Inventory.use(item)}. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the use action.

- * - * @param player The {@link Player} to use the item on. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #use(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean use(Player player) { - return use(new Rs2PlayerModel(player)); - } /** * Selects the "CHALLENGE" option on a player for Soul Wars. @@ -1973,20 +1717,6 @@ public static boolean challenge(Rs2PlayerModel rs2Player) { return invokeMenu(rs2Player, "challenge"); } - /** - * Selects the "CHALLENGE" option on a player for Soul Wars. - * - *

This method converts a {@link Player} object into an {@link Rs2PlayerModel} before invoking the challenge action.

- * - * @param player The {@link Player} to challenge. - * @return {@code true} if the action was invoked successfully, {@code false} otherwise. - * @deprecated Since 1.7.2, use {@link #challenge(Rs2PlayerModel)} for consistency and improved type handling. - */ - @Deprecated(since = "1.7.2", forRemoval = true) - public static boolean challenge(Player player) { - return challenge(new Rs2PlayerModel(player)); - } - /** * Executes a specific menu action on a given player. * diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/reflection/Rs2Reflection.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/reflection/Rs2Reflection.java index 1fb448d910d..96cf07c1dfd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/reflection/Rs2Reflection.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/reflection/Rs2Reflection.java @@ -1,11 +1,12 @@ package net.runelite.client.plugins.microbot.util.reflection; import lombok.SneakyThrows; -import net.runelite.api.*; +import net.runelite.api.ItemComposition; +import net.runelite.api.MenuAction; +import net.runelite.api.MenuEntry; import net.runelite.client.plugins.microbot.Microbot; import net.runelite.client.plugins.microbot.util.keyboard.Rs2Keyboard; import net.runelite.client.plugins.microbot.util.math.Rs2Random; -import net.runelite.client.plugins.microbot.util.npc.Rs2NpcModel; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Opcodes; import org.objectweb.asm.tree.*; @@ -103,50 +104,6 @@ else if (insnNode.getOpcode() == Opcodes.SIPUSH) System.out.println("[INVOKE] => param0: " + param0 + " param1: " + param1 + " opcode: " + opcode + " id: " + identifier + " itemid: " + itemId); } - /** - * Gets the animation of an NPC by using reflection. - * @param npc - * @return - */ - @SneakyThrows - @Deprecated(since="1.9.8.7 - Runelite exposes all animations", forRemoval=true) - public static int getAnimation(NPC npc) { - if (npc == null) { - return -1; - } - return npc.getAnimation(); - } - - /** - * Gets the head icons of an NPC by using reflection. - * @param npc - * @return - */ - @SneakyThrows - @Deprecated(since="1.9.8.7 - Runelite exposes overheads on npcs", forRemoval = true) - public static HeadIcon getHeadIcon(Rs2NpcModel npc) { - if (npc == null) { - return null; - } - - if (npc.getOverheadSpriteIds() == null) { - Microbot.log("Failed to find the correct overhead prayer."); - return null; - } - - for (int i = 0; i < npc.getOverheadSpriteIds().length; i++) { - int overheadSpriteId = npc.getOverheadSpriteIds()[i]; - - if (overheadSpriteId == -1) continue; - - return HeadIcon.values()[overheadSpriteId]; - } - - Microbot.log("Found overheadSpriteIds: " + Arrays.toString(npc.getOverheadSpriteIds()) + " but failed to find valid overhead prayer."); - - return null; - } - @SneakyThrows public static String[] getGroundItemActions(ItemComposition item) { List fields = Arrays.stream(item.getClass().getFields()).filter(x -> x.getType().isArray()).collect(Collectors.toList()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/tabs/Rs2Tab.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/tabs/Rs2Tab.java index c6310339058..44a53147f47 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/tabs/Rs2Tab.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/tabs/Rs2Tab.java @@ -64,7 +64,13 @@ public static boolean switchTo(InterfaceTab tab) { if (tab == InterfaceTab.NOTHING_SELECTED && Microbot.getVarbitValue(VarbitID.RESIZABLE_STONE_ARRANGEMENT) == 0) return false; - Rs2Keyboard.keyPress(tab.getHotkey()); + int hotkey = tab.getHotkey(); + if (hotkey == -1) { + log.warn("Tab {} does not have a hotkey assigned, cannot switch to it.", tab.getName()); + return false; + } else { + Rs2Keyboard.keyPress(hotkey); + } return sleepUntil(() -> isCurrentTab(tab)); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/world/Rs2WorldUtil.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/world/Rs2WorldUtil.java index 5d8d80099d5..631e5150035 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/world/Rs2WorldUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/world/Rs2WorldUtil.java @@ -18,7 +18,6 @@ import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; -import io.reactivex.rxjava3.annotations.Nullable; import static net.runelite.client.plugins.microbot.util.Global.sleepGaussian; import static net.runelite.client.plugins.microbot.util.Global.sleepUntil; @@ -50,7 +49,6 @@ public class Rs2WorldUtil { * @param worldId The world ID to check accessibility for * @return true if the player can access the world, false otherwise */ - @Nullable public static boolean canAccessWorld(int worldId) { try { if (worldId == -1){ diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverConfig.java index 86ae02c4027..2c1591a9d68 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverConfig.java @@ -25,9 +25,11 @@ */ package net.runelite.client.plugins.puzzlesolver; +import java.awt.Color; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; +import net.runelite.client.config.Range; @ConfigGroup("puzzlesolver") public interface PuzzleSolverConfig extends Config @@ -35,7 +37,8 @@ public interface PuzzleSolverConfig extends Config @ConfigItem( keyName = "displaySolution", name = "Display solution", - description = "Display a solution to the puzzle." + description = "Display a solution to the puzzle.", + position = 0 ) default boolean displaySolution() { @@ -45,7 +48,8 @@ default boolean displaySolution() @ConfigItem( keyName = "displayRemainingMoves", name = "Display remaining moves", - description = "Add a text line above puzzle boxes displaying the amount of remaining moves." + description = "Add a text line above puzzle boxes displaying the amount of remaining moves.", + position = 1 ) default boolean displayRemainingMoves() { @@ -55,10 +59,48 @@ default boolean displayRemainingMoves() @ConfigItem( keyName = "drawDots", name = "Draw dots instead of arrows", - description = "Draw dots increasing in size instead of arrows for the solution." + description = "Draw dots increasing in size instead of arrows for the solution.", + position = 2 ) default boolean drawDots() { - return false; + return true; + } + + @ConfigItem( + keyName = "movesToShow", + name = "Number of dots", + description = "The number of moves as dots to show for the puzzle.", + position = 3 + ) + @Range( + min = 4, + max = 8 + ) + default int movesToShow() + { + return 4; + } + + @ConfigItem( + keyName = "dotColor", + name = "Dot start color", + description = "Dot color for the first solution dot.", + position = 4 + ) + default Color dotColor() + { + return Color.YELLOW; + } + + @ConfigItem( + keyName = "dotEndColor", + name = "Dot end color", + description = "Dot color of the last solution dot that dots blend towards.", + position = 5 + ) + default Color dotEndColor() + { + return Color.RED; } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java index 4dc20c698aa..c92ac5461b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java @@ -59,6 +59,7 @@ import net.runelite.client.ui.overlay.OverlayUtil; import net.runelite.client.ui.overlay.components.BackgroundComponent; import net.runelite.client.ui.overlay.components.TextComponent; +import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ImageUtil; public class PuzzleSolverOverlay extends Overlay @@ -69,7 +70,8 @@ public class PuzzleSolverOverlay extends Overlay private static final int INFO_BOX_BOTTOM_BORDER = 2; private static final int PUZZLE_TILE_SIZE = 39; - private static final int DOT_MARKER_SIZE = 16; + private static final int DOT_MARKER_MAX_SIZE = 24; + private static final int DOT_MARKER_MIN_SIZE = 4; private final Client client; private final PuzzleSolverConfig config; @@ -216,10 +218,9 @@ else if (config.displayRemainingMoves()) { if (config.drawDots()) { - graphics.setColor(Color.YELLOW); - - // Display the next 4 steps - for (int i = 1; i < 5; i++) + int movesToShow = config.movesToShow(); + // Display the next movesToShow steps + for (int i = 1; i <= movesToShow; i++) { int j = solver.getPosition() + i; @@ -238,7 +239,9 @@ else if (config.displayRemainingMoves()) int blankX = futureMove.getEmptyPiece() % DIMENSION; int blankY = futureMove.getEmptyPiece() / DIMENSION; - int markerSize = DOT_MARKER_SIZE - i * 3; + int numerator = (i - 1) * (DOT_MARKER_MAX_SIZE - DOT_MARKER_MIN_SIZE); + double denominator = movesToShow - 1; + int markerSize = (int) Math.round(DOT_MARKER_MAX_SIZE - numerator / denominator); int x = puzzleBoxLocation.getX() + blankX * PUZZLE_TILE_SIZE + PUZZLE_TILE_SIZE / 2 - markerSize / 2; @@ -246,7 +249,13 @@ else if (config.displayRemainingMoves()) int y = puzzleBoxLocation.getY() + blankY * PUZZLE_TILE_SIZE + PUZZLE_TILE_SIZE / 2 - markerSize / 2; + Color color = ColorUtil.colorLerp(config.dotColor(), config.dotEndColor(), + (double) (i - 1) / (movesToShow - 1)); + graphics.setColor(color); graphics.fillOval(x, y, markerSize, markerSize); + + graphics.setColor(Color.BLACK); + graphics.drawOval(x - 1, y - 1, markerSize + 1, markerSize + 1); } } else diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotOverlay.java deleted file mode 100644 index 284a7103c71..00000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotOverlay.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 2018, Lotto - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.client.plugins.screenshot; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FontMetrics; -import java.awt.Graphics2D; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.function.Consumer; -import javax.inject.Inject; -import net.runelite.api.Client; -import net.runelite.api.MainBufferProvider; -import net.runelite.client.ui.DrawManager; -import net.runelite.client.ui.FontManager; -import net.runelite.client.ui.overlay.Overlay; -import net.runelite.client.ui.overlay.OverlayLayer; -import net.runelite.client.ui.overlay.OverlayPosition; - -class ScreenshotOverlay extends Overlay -{ - private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MMM. dd, yyyy"); - private static final int REPORT_BUTTON_X_OFFSET = 437; - - private final Client client; - private final DrawManager drawManager; - private final ScreenshotPlugin plugin; - - private final Queue> consumers = new ConcurrentLinkedQueue<>(); - - @Inject - private ScreenshotOverlay(Client client, DrawManager drawManager, ScreenshotPlugin plugin) - { - setPosition(OverlayPosition.DYNAMIC); - setPriority(PRIORITY_HIGH); - setLayer(OverlayLayer.ABOVE_WIDGETS); - this.client = client; - this.drawManager = drawManager; - this.plugin = plugin; - } - - @Override - public Dimension render(Graphics2D graphics) - { - if (consumers.isEmpty()) - { - return null; - } - - final MainBufferProvider bufferProvider = (MainBufferProvider) client.getBufferProvider(); - final int imageHeight = ((BufferedImage) bufferProvider.getImage()).getHeight(); - final int y = imageHeight - plugin.getReportButton().getHeight() - 1; - - graphics.drawImage(plugin.getReportButton(), REPORT_BUTTON_X_OFFSET, y, null); - - graphics.setFont(FontManager.getRunescapeSmallFont()); - FontMetrics fontMetrics = graphics.getFontMetrics(); - - String date = DATE_FORMAT.format(new Date()); - final int dateWidth = fontMetrics.stringWidth(date); - final int dateHeight = fontMetrics.getHeight(); - - final int textX = REPORT_BUTTON_X_OFFSET + plugin.getReportButton().getWidth() / 2 - dateWidth / 2; - final int textY = y + plugin.getReportButton().getHeight() / 2 + dateHeight / 2; - - graphics.setColor(Color.BLACK); - graphics.drawString(date, textX + 1, textY + 1); - - graphics.setColor(Color.WHITE); - graphics.drawString(date, textX, textY); - - // Request the queued screenshots to be taken, - // now that the timestamp is visible. - Consumer consumer; - while ((consumer = consumers.poll()) != null) - { - drawManager.requestNextFrameListener(consumer); - } - - return null; - } - - void queueForTimestamp(Consumer screenshotConsumer) - { - if (plugin.getReportButton() == null) - { - return; - } - - consumers.add(screenshotConsumer); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index a139a16d144..16cf5c887c1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -29,45 +29,19 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.inject.Provides; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.time.LocalDate; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ScheduledExecutorService; -import java.util.function.Consumer; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import javax.inject.Inject; -import lombok.AccessLevel; -import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import net.runelite.api.Actor; -import net.runelite.api.ChatMessageType; -import net.runelite.api.Client; -import net.runelite.api.GameState; -import net.runelite.api.Player; -import net.runelite.api.ScriptID; +import net.runelite.api.*; import net.runelite.api.annotations.Component; -import net.runelite.api.events.ActorDeath; -import net.runelite.api.events.AnimationChanged; -import net.runelite.api.events.ChatMessage; -import net.runelite.api.events.GameTick; -import net.runelite.api.events.ScriptCallbackEvent; -import net.runelite.api.events.ScriptPreFired; -import net.runelite.api.events.WidgetLoaded; +import net.runelite.api.events.*; import net.runelite.api.gameval.AnimationID; import net.runelite.api.gameval.InterfaceID; -import net.runelite.api.gameval.SpriteID; import net.runelite.api.gameval.VarClientID; import net.runelite.api.gameval.VarbitID; import net.runelite.api.widgets.Widget; -import static net.runelite.client.RuneLite.SCREENSHOT_DIR; +import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.PlayerLootReceived; -import net.runelite.client.game.SpriteManager; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @@ -77,13 +51,28 @@ import net.runelite.client.ui.NavigationButton; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.util.HotkeyListener; -import net.runelite.client.util.ImageCapture; -import net.runelite.client.util.ImageUtil; -import net.runelite.client.util.LinkBrowser; -import net.runelite.client.util.Text; +import net.runelite.client.util.*; import org.apache.commons.lang3.StringUtils; +import javax.inject.Inject; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.Date; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.ScheduledExecutorService; +import java.util.function.Consumer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import static net.runelite.client.RuneLite.SCREENSHOT_DIR; + @PluginDescriptor( name = "Screenshot", description = "Enable the manual and automatic taking of screenshots", @@ -92,6 +81,7 @@ @Slf4j public class ScreenshotPlugin extends Plugin { + private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MMM. dd, yyyy"); private static final String COLLECTION_LOG_TEXT = "New item added to your collection log: "; private static final String CHEST_LOOTED_MESSAGE = "You find some treasure in the chest!"; private static final Map CHEST_LOOT_EVENTS = ImmutableMap.of(12127, "The Gauntlet"); @@ -161,15 +151,10 @@ enum KillType @Inject private ScreenshotConfig config; - @Inject - private OverlayManager overlayManager; - - @Inject - private ScreenshotOverlay screenshotOverlay; - @Inject private Client client; - + @Inject + private OverlayManager overlayManager; @Inject private ClientUI clientUi; @@ -185,19 +170,19 @@ enum KillType @Inject private KeyManager keyManager; - @Inject - private SpriteManager spriteManager; - @Inject private ImageCapture imageCapture; - @Getter(AccessLevel.PACKAGE) - private BufferedImage reportButton; + @Inject + private ClientThread clientThread; private NavigationButton titleBarButton; private String kickPlayerName; + final Queue> consumers = new ConcurrentLinkedQueue<>(); + private String reportButtonText; + private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.hotkey()) { @Override @@ -216,7 +201,6 @@ ScreenshotConfig getConfig(ConfigManager configManager) @Override protected void startUp() throws Exception { - overlayManager.add(screenshotOverlay); SCREENSHOT_DIR.mkdirs(); keyManager.registerKeyListener(hotkeyListener); @@ -236,14 +220,11 @@ protected void startUp() throws Exception .build(); clientToolbar.addNavigation(titleBarButton); - - spriteManager.getSpriteAsync(SpriteID.ReportButton.BUTTON, 0, s -> reportButton = s); } @Override protected void shutDown() throws Exception { - overlayManager.remove(screenshotOverlay); clientToolbar.removeNavigation(titleBarButton); keyManager.unregisterKeyListener(hotkeyListener); kickPlayerName = null; @@ -809,6 +790,30 @@ public void onScriptPreFired(ScriptPreFired scriptPreFired) } } + @Subscribe + private void onPostClientTick(PostClientTick e) + { + if (!consumers.isEmpty()) + { + final Widget reportButtonTextWidget = client.getWidget(InterfaceID.Chatbox.REPORTABUSE_TEXT1); + if (reportButtonTextWidget != null) + { + if (reportButtonText == null) + { + reportButtonText = reportButtonTextWidget.getText(); + } + + reportButtonTextWidget.setText(DATE_FORMAT.format(new Date())); + } + + Consumer consumer; + while ((consumer = consumers.poll()) != null) + { + drawManager.requestNextFrameListener(consumer); + } + } + } + private void manualScreenshot() { takeScreenshot("", null); @@ -939,12 +944,29 @@ void takeScreenshot(String fileName, String subDir) Consumer imageCallback = (img) -> { // This callback is on the game thread, move to executor thread - executor.submit(() -> saveScreenshot(fileName, subDir, img)); + executor.submit(() -> + { + saveScreenshot(fileName, subDir, img); + + if (reportButtonText != null) + { + clientThread.invokeLater(() -> + { + final Widget reportButtonTextWidget = client.getWidget(InterfaceID.Chatbox.REPORTABUSE_TEXT1); + if (reportButtonTextWidget != null) + { + reportButtonTextWidget.setText(reportButtonText); + } + + reportButtonText = null; + }); + } + }); }; if (config.displayDate() && REPORT_BUTTON_TLIS.contains(client.getTopLevelInterfaceId())) { - screenshotOverlay.queueForTimestamp(imageCallback); + queueForTimestamp(imageCallback); } else { @@ -952,6 +974,11 @@ void takeScreenshot(String fileName, String subDir) } } + void queueForTimestamp(Consumer screenshotConsumer) + { + consumers.add(screenshotConsumer); + } + private void saveScreenshot(String fileName, String subDir, Image image) { final BufferedImage screenshot; diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 620ad7232bf..3d55ddfec25 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -55,6 +55,8 @@ import net.runelite.client.input.MouseListener; import net.runelite.client.input.MouseManager; import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.questhelper.QuestHelperConfig; +import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; import net.runelite.client.ui.laf.RuneLiteLAF; import net.runelite.client.ui.laf.RuneLiteRootPaneUI; import net.runelite.client.util.*; @@ -124,6 +126,9 @@ public class ClientUI private Dimension lastClientSize; private Cursor defaultCursor; + private JButton questHelperNavBtn; + private BufferedImage questIconOn; + private BufferedImage questIconOff; private String lastNormalBounds; private final Timer normalBoundsTimer; @@ -560,6 +565,23 @@ else if (OSType.getOSType() == OSType.MacOS && SystemInfo.isMacFullWindowContent toolbarPanel.createSidebarPanel()); } + questIconOn = net.runelite.client.plugins.microbot.questhelper.tools.Icon.QUEST_ICON_ON.getImage(); + questIconOff = net.runelite.client.plugins.microbot.questhelper.tools.Icon.QUEST_ICON_OFF.getImage(); + questHelperNavBtn = toolbarPanel.add( + NavigationButton.builder() + .icon(configManager.getConfiguration(QuestHelperConfig.QUEST_HELPER_GROUP, "TurnOn", Boolean.class) ? questIconOff : questIconOn) + .tooltip(configManager.getConfiguration(QuestHelperConfig.QUEST_HELPER_GROUP, "TurnOn", Boolean.class) ? "Disable 'Semi-Auto' Questing" : "Enable 'Semi-Auto' Questing") + .onClick(() -> + { + boolean isEnabled = configManager.getConfiguration(QuestHelperConfig.QUEST_HELPER_GROUP, "TurnOn", Boolean.class); + configManager.setConfiguration(QuestHelperConfig.QUEST_HELPER_GROUP, "TurnOn", !isEnabled); + questHelperNavBtn.setIcon(new ImageIcon(!isEnabled ? questIconOff : questIconOn )); + questHelperNavBtn.setToolTipText(!isEnabled ? "Disable 'Semi-Auto' Questing" : "Enable 'Semi-Auto' Questing"); + if (isEnabled) Rs2Walker.setTarget(null); + }) + .build(), false + ); + // Update config updateFrameConfig(false); diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json index ac9f15261f1..26b3886c6e8 100644 --- a/runelite-client/src/main/resources/item_variations.json +++ b/runelite-client/src/main/resources/item_variations.json @@ -9777,16 +9777,23 @@ ], "sanguinesti staff": [ 22323, - 22481 + 22481, + 25731, + 25733 ], "ghrazi rapier": [ 22324, - 23628 + 23628, + 25734 ], "scythe of vitur": [ 22325, 22486, - 22664 + 22664, + 25736, + 25738, + 25739, + 25741 ], "starter sword": [ 22331, @@ -10876,18 +10883,6 @@ 25728, 25729 ], - "holy sanguinesti staff": [ - 25731, - 25733 - ], - "holy scythe of vitur": [ - 25736, - 25738 - ], - "sanguine scythe of vitur": [ - 25739, - 25741 - ], "antipoison potion": [ 25758, 25759, diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/questhelper/quest_icon_off.png b/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/questhelper/quest_icon_off.png new file mode 100644 index 00000000000..b629f9f9edb Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/questhelper/quest_icon_off.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/questhelper/quest_icon_on.png b/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/questhelper/quest_icon_on.png new file mode 100644 index 00000000000..33fe205b1a3 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/microbot/questhelper/quest_icon_on.png differ diff --git a/runelite-client/src/main/scripts/LayoutResizableStones.hash b/runelite-client/src/main/scripts/LayoutResizableStones.hash index 7e9026f733f..55154a18ba5 100644 --- a/runelite-client/src/main/scripts/LayoutResizableStones.hash +++ b/runelite-client/src/main/scripts/LayoutResizableStones.hash @@ -1 +1 @@ -27CB6A6C2D44270EB5134AD9DDF5A423DB08A62275DB231CCF45A241BA6E4E32 \ No newline at end of file +F447EDB4DB9B01E29C62C0F9242746DD97FD99315DFDB0D0C608B2482794FC82 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm b/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm index 03264ea9922..511e46d16ac 100644 --- a/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm +++ b/runelite-client/src/main/scripts/LayoutResizableStones.rs2asm @@ -13,10 +13,10 @@ iload 1 switch 1131: LABEL9 - 1130: LABEL107 - 1129: LABEL149 - 1745: LABEL169 - jump LABEL178 + 1130: LABEL103 + 1129: LABEL141 + 1745: LABEL161 + jump LABEL170 LABEL9: iconst 10747998 if_getwidth @@ -120,23 +120,17 @@ LABEL89: LABEL96: clientclock set_varc_int 384 - invoke 1445 - iconst 1 - if_icmpeq LABEL102 - jump LABEL106 -LABEL102: get_varbit 12986 invoke 633 iconst 10747926 if_sethide -LABEL106: - jump LABEL178 -LABEL107: + jump LABEL170 +LABEL103: get_varbit 4084 iconst 1 - if_icmpeq LABEL111 - jump LABEL119 -LABEL111: + if_icmpeq LABEL107 + jump LABEL115 +LABEL107: iconst 1178 iconst 73 iconst 73 @@ -144,13 +138,13 @@ LABEL111: iconst 10551326 enum 2122 - jump LABEL138 -LABEL119: + jump LABEL134 +LABEL115: get_varbit 13037 iconst 1 - if_icmpeq LABEL123 - jump LABEL131 -LABEL123: + if_icmpeq LABEL119 + jump LABEL127 +LABEL119: iconst 3513 iconst 73 iconst 73 @@ -158,8 +152,8 @@ LABEL123: iconst 10551326 enum 2122 - jump LABEL138 -LABEL131: + jump LABEL134 +LABEL127: iconst 2154 iconst 73 iconst 73 @@ -167,26 +161,20 @@ LABEL131: iconst 10551326 enum 2122 -LABEL138: +LABEL134: clientclock set_varc_int 384 - invoke 1445 - iconst 1 - if_icmpeq LABEL144 - jump LABEL148 -LABEL144: get_varbit 12986 invoke 633 iconst 10551318 if_sethide -LABEL148: - jump LABEL178 -LABEL149: + jump LABEL170 +LABEL141: invoke 3297 iconst 1 - if_icmpeq LABEL153 - jump LABEL161 -LABEL153: + if_icmpeq LABEL145 + jump LABEL153 +LABEL145: iconst 2422 iconst 73 iconst 73 @@ -194,8 +182,8 @@ LABEL153: iconst 10551326 enum 2122 - jump LABEL168 -LABEL161: + jump LABEL160 +LABEL153: iconst 1200 iconst 73 iconst 73 @@ -203,9 +191,9 @@ LABEL161: iconst 10551326 enum 2122 -LABEL168: - jump LABEL178 -LABEL169: +LABEL160: + jump LABEL170 +LABEL161: invoke 2581 get_varbit 6254 invoke 633 @@ -215,5 +203,5 @@ LABEL169: pop_int clientclock set_varc_int 384 -LABEL178: +LABEL170: return diff --git a/runelite-client/src/main/scripts/fairyrings_sort_update.hash b/runelite-client/src/main/scripts/fairyrings_sort_update.hash new file mode 100644 index 00000000000..68dda177ddc --- /dev/null +++ b/runelite-client/src/main/scripts/fairyrings_sort_update.hash @@ -0,0 +1 @@ +7245804424EB949F248D65FB11DDA8AB75D26B7390D2F7C4BD8FABB15F2FCF62 \ No newline at end of file diff --git a/runelite-client/src/main/scripts/fairyrings_sort_update.rs2asm b/runelite-client/src/main/scripts/fairyrings_sort_update.rs2asm new file mode 100644 index 00000000000..be44b65293e --- /dev/null +++ b/runelite-client/src/main/scripts/fairyrings_sort_update.rs2asm @@ -0,0 +1,763 @@ +.id 8080 +.int_arg_count 6 +.obj_arg_count 0 + iload 2 + iconst 1 + if_icmpeq LABEL4 + jump LABEL32 +LABEL4: + get_varc_int 54 + iconst 1 + if_icmpeq LABEL11 + get_varc_int 54 + iconst 0 + if_icmpeq LABEL11 + jump LABEL14 +LABEL11: + get_varc_int 54 + set_varc_int 54 + jump LABEL16 +LABEL14: + iconst 0 + set_varc_int 54 +LABEL16: + get_varc_int + iconst 0 + if_icmplt LABEL20 + jump LABEL22 +LABEL20: + iconst 0 + set_varc_int +LABEL22: + iload 1 + iload 0 + iconst 792 + iconst 789 + iconst 790 + iconst 791 + iconst 773 + iconst 788 + invoke 31 + jump LABEL45 +LABEL32: + iconst 2266 + iconst 1 + iconst 0 + sound_synth + get_varc_int 54 + iconst 1 + if_icmpeq LABEL40 + jump LABEL43 +LABEL40: + iconst 0 + set_varc_int 54 + jump LABEL45 +LABEL43: + iconst 1 + set_varc_int 54 +LABEL45: + iconst -1 + istore 6 + iconst -1 + istore 7 + iconst -1 + istore 8 + iload 0 + if_getwidth + iconst 20 + sub + istore 9 + iload 9 + iconst 0 + if_icmple LABEL60 + jump LABEL62 +LABEL60: + iconst 143 + istore 9 +LABEL62: + iload 0 + cc_deleteall + iload 4 + cc_deleteall + iconst 17 + istore 10 + iconst 0 + istore 11 + iconst 0 + istore 12 + iconst 1 + istore 13 + iconst 1 + istore 14 + invoke 8081 + ostore 0 +LABEL78: + iload 12 + iconst 10 + if_icmplt LABEL82 + jump LABEL241 +LABEL82: + iconst 105 + iconst 73 + iconst 1297 + iload 12 + enum + istore 6 + iconst 105 + iconst 73 + iconst 1298 + iload 12 + enum + istore 8 + iconst 105 + iconst 73 + iconst 1299 + iload 12 + enum + istore 7 + iload 5 + iconst 1 + if_icmpeq LABEL104 + jump LABEL126 +LABEL104: + oload 0 + string_length + iconst 0 + if_icmpgt LABEL109 + jump LABEL125 +LABEL109: + iload 6 + if_gettext + lowercase + sconst ":" + invoke 7125 + oload 0 + iconst 0 + string_indexof_string + iconst -1 + if_icmpne LABEL120 + jump LABEL123 +LABEL120: + iconst 1 + istore 14 + jump LABEL125 +LABEL123: + iconst 0 + istore 14 +LABEL125: + iload 8 ; + iload 14 ; + sconst "fairyringFilterFavorite" ; + runelite_callback ; + istore 14 ; + pop_int ; + jump LABEL128 +LABEL126: + iconst 1 + istore 14 +LABEL128: + iload 6 + iconst -1 + if_icmpne LABEL132 + jump LABEL236 +LABEL132: + iload 7 + iconst -1 + if_icmpne LABEL136 + jump LABEL236 +LABEL136: + iload 8 + iconst -1 + if_icmpne LABEL140 + jump LABEL236 +LABEL140: + iload 6 + if_gettext + string_length + iconst 0 + if_icmpgt LABEL146 + jump LABEL227 +LABEL146: + iload 14 + iconst 1 + if_icmpeq LABEL150 + jump LABEL227 +LABEL150: + iload 6 + if_gettext + iload 9 + iconst 495 + paraheight + iconst 12 + multiply + iconst 5 + add + istore 10 + iconst 0 + iload 6 + if_sethide + iconst 0 + iload 8 + if_sethide + iconst 0 + iload 7 + if_sethide + iload 9 + iload 10 + iconst 0 + iconst 0 + iload 6 + if_setsize + iload 9 + iload 10 + iconst 0 + iconst 0 + iload 8 + if_setsize + iconst 20 + iload 11 + iconst 0 + iconst 0 + iload 6 + if_setposition + iconst 2 + iload 11 + iconst 0 + iconst 0 + iload 7 + if_setposition + iconst 20 + iload 11 + iconst 0 + iconst 0 + iload 8 + if_setposition + sconst "" + iload 8 + if_gettext + sconst "" + join_string 3 + iload 6 + if_setopbase + iconst 45 + iload 8 + iconst 16744319 + sconst "ii" + iload 6 + if_setonmouseover + iconst 45 + iload 8 + iconst 16727871 + sconst "ii" + iload 6 + if_setonmouseleave + iconst 0 + istore 13 + iload 11 + iload 10 + add + iconst 3 + add + istore 11 + jump LABEL236 +LABEL227: + iconst 1 + iload 6 + if_sethide + iconst 1 + iload 7 + if_sethide + iconst 1 + iload 8 + if_sethide +LABEL236: + iload 12 + iconst 1 + add + istore 12 + jump LABEL78 +LABEL241: + iload 13 + iconst 0 + if_icmpeq LABEL245 + jump LABEL249 +LABEL245: + iload 11 + iconst 3 + add + istore 11 +LABEL249: + iload 13 + iload 3 + if_sethide + iconst 0 + iload 11 + iconst 1 + iconst 0 + iload 4 + if_setsize + iconst -1 + istore 15 + iconst 64 + define_array 65609 + iconst 0 + istore 16 + sconst "" + ostore 2 + iconst 89 + db_findall_with_count + pop_int + db_findnext + istore 17 + iconst 0 + istore 18 +LABEL273: + iload 17 + iconst -1 + if_icmpne LABEL277 + jump LABEL360 +LABEL277: + iload 17 + iconst 364608 + iconst 0 + db_getfield + istore 15 + iload 15 + iconst -1 + if_icmpne LABEL286 + jump LABEL357 +LABEL286: + iload 5 + iconst 1 + if_icmpeq LABEL290 + jump LABEL312 +LABEL290: + oload 0 + string_length + iconst 0 + if_icmpgt LABEL295 + jump LABEL311 +LABEL295: + iload 15 + if_gettext + lowercase + sconst ":" + invoke 7125 + oload 0 + iconst 0 + string_indexof_string + iconst -1 + if_icmpne LABEL306 + jump LABEL309 +LABEL306: + iconst 1 + istore 14 + jump LABEL311 +LABEL309: + iconst 0 + istore 14 +LABEL311: + iload 17 ; + iload 14 ; + sconst "fairyringFilterDbrow" ; + runelite_callback ; + istore 14 ; + pop_int ; + jump LABEL314 +LABEL312: + iconst 1 + istore 14 +LABEL314: + iload 17 + iconst 364624 + iconst 0 + db_getfield + istore 7 + iload 15 + if_gettext + string_length + iconst 0 + if_icmpgt LABEL325 + jump LABEL347 +LABEL325: + iload 14 + iconst 1 + if_icmpeq LABEL329 + jump LABEL347 +LABEL329: + iconst 0 + iload 15 + if_sethide + iload 7 + iconst -1 + if_icmpne LABEL336 + jump LABEL339 +LABEL336: + iconst 0 + iload 7 + if_sethide +LABEL339: + iload 16 + iload 15 + set_array_int 1 + iload 16 + iconst 1 + add + istore 16 + jump LABEL357 +LABEL347: + iconst 1 + iload 15 + if_sethide + iload 7 + iconst -1 + if_icmpne LABEL354 + jump LABEL357 +LABEL354: + iconst 1 + iload 7 + if_sethide +LABEL357: + db_findnext + istore 17 + jump LABEL273 +LABEL360: + iload 16 + iconst 0 + if_icmpgt LABEL364 + jump LABEL382 +LABEL364: + get_varc_int 54 + iconst 1 + if_icmpeq LABEL368 + jump LABEL375 +LABEL368: + oload 1 + iconst 0 + iload 16 + iconst 1 + sub + invoke 1341 + jump LABEL382 +LABEL375: + oload 1 + iconst 0 + iload 16 + iconst 1 + sub + iconst 823 + invoke 1342 +LABEL382: + iload 0 + cc_deleteall +LABEL384: + iload 18 + iload 16 + if_icmplt LABEL388 + jump LABEL508 +LABEL388: + iconst 364608 + iload 18 + get_array_int 1 + iconst 0 + db_find_with_count + pop_int + db_findnext + istore 17 + iload 17 + iconst -1 + if_icmpne LABEL400 + jump LABEL410 +LABEL400: + iload 17 + iconst 364624 + iconst 0 + db_getfield + istore 7 + iload 17 + iconst 364592 + iconst 0 + db_getfield + ostore 2 +LABEL410: + iload 18 + get_array_int 1 + if_gettext + iload 9 + iconst 495 + paraheight + iconst 12 + multiply + iconst 5 + add + istore 10 + iload 7 + iconst -1 + if_icmpne LABEL425 + jump LABEL431 +LABEL425: + iconst 2 + iload 11 + iconst 0 + iconst 0 + iload 7 + if_setposition +LABEL431: + iload 9 + iload 10 + iconst 0 + iconst 0 + iload 18 + get_array_int 1 + if_setsize + iconst 20 + iload 11 + iconst 0 + iconst 0 + iload 18 + get_array_int 1 + if_setposition + iload 0 + iconst 4 + iload 18 + iconst 0 + cc_create + iload 9 + iload 10 + iconst 0 + iconst 0 + cc_setsize + iconst 20 + iload 18 + get_array_int 1 + if_gety + iconst 0 + iconst 0 + cc_setposition + iconst 495 + cc_settextfont + iconst 16727871 + cc_setcolour + iconst 1 + cc_settextshadow + iconst 0 + iconst 0 + iconst 0 + cc_settextalign + oload 2 + cc_settext + sconst "" + oload 2 + sconst "" + join_string 3 + iload 18 + get_array_int 1 + if_setopbase + iconst 85 + iload 0 + cc_getid + iconst 16744319 + sconst "iii" + iload 18 + get_array_int 1 + if_setonmouseover + iconst 85 + iload 0 + cc_getid + iconst 16727871 + sconst "iii" + iload 18 + get_array_int 1 + if_setonmouseleave + iload 11 + iload 10 + add + iconst 3 + add + istore 11 + iload 18 + iconst 1 + add + istore 18 + jump LABEL384 +LABEL508: + iconst 24969356 + if_gettext + ostore 2 + iload 5 + iconst 1 + if_icmpeq LABEL515 + jump LABEL536 +LABEL515: + oload 0 + string_length + iconst 0 + if_icmpgt LABEL520 + jump LABEL536 +LABEL520: + iconst 24969356 + if_gettext + lowercase + sconst ":" + invoke 7125 + oload 0 + iconst 0 + string_indexof_string + iconst -1 + if_icmpne LABEL531 + jump LABEL534 +LABEL531: + iconst 1 + istore 14 + jump LABEL536 +LABEL534: + iconst 0 + istore 14 +LABEL536: + oload 2 + string_length + iconst 0 + if_icmpgt LABEL541 + jump LABEL591 +LABEL541: + iload 14 + iconst 1 + if_icmpeq LABEL545 + jump LABEL591 +LABEL545: + iconst 0 + iconst 24969356 + if_sethide + oload 2 + iload 9 + iconst 495 + paraheight + iconst 12 + multiply + iconst 5 + add + istore 10 + iload 9 + iload 10 + iconst 0 + iconst 0 + iconst 24969356 + if_setsize + iconst 20 + iload 11 + iconst 0 + iconst 0 + iconst 24969356 + if_setposition + iconst 16727871 + iconst 24969356 + if_setcolour + iconst 45 + iconst -2147483645 + iconst 16744319 + sconst "ii" + iconst 24969356 + if_setonmouseover + iconst 45 + iconst -2147483645 + iconst 16727871 + sconst "ii" + iconst 24969356 + if_setonmouseleave + iload 11 + iload 10 + add + iconst 3 + add + istore 11 + jump LABEL594 +LABEL591: + iconst 1 + iconst 24969356 + if_sethide +LABEL594: + iload 11 + iconst 0 + if_icmpgt LABEL598 + jump LABEL602 +LABEL598: + iload 11 + iconst 3 + sub + istore 11 +LABEL602: + iload 0 + if_getheight + istore 10 + iload 11 + iconst 0 + if_icmple LABEL609 + jump LABEL640 +LABEL609: + iload 0 + iconst 4 + iload 18 + iconst 0 + cc_create + iconst 0 + iconst 0 + iconst 0 + iconst 0 + cc_setposition + iconst 0 + iconst 0 + iconst 1 + iconst 1 + cc_setsize + iconst 495 + cc_settextfont + iconst 16750623 + cc_setcolour + iconst 1 + cc_settextshadow + iconst 1 + iconst 1 + iconst 0 + cc_settextalign + sconst "There are no fairy rings which go to that destination which you have access to." + cc_settext + iload 18 + iconst 1 + add + istore 18 +LABEL640: + iload 11 + iload 10 + if_icmpgt LABEL644 + jump LABEL659 +LABEL644: + iconst 0 + iload 11 + iload 0 + if_setscrollsize + iload 11 + iload 10 + sub + istore 10 + get_varc_int + iload 10 + if_icmpgt LABEL656 + jump LABEL658 +LABEL656: + iload 10 + set_varc_int +LABEL658: + jump LABEL665 +LABEL659: + iconst 0 + iconst 0 + iload 0 + if_setscrollsize + iconst 0 + set_varc_int +LABEL665: + iload 1 + iload 0 + get_varc_int + invoke 72 + return diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/fairyring/FairyRingTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/fairyring/FairyRingTest.java index 2a3fee94464..893ab5e3290 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/fairyring/FairyRingTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/fairyring/FairyRingTest.java @@ -35,6 +35,6 @@ public class FairyRingTest @Test public void testFairyRingsAlphabetized() { - assertTrue(isSorted(Stream.of(FairyRings.values()).map(FairyRings::name).toArray(String[]::new))); + assertTrue(isSorted(Stream.of(FairyRing.values()).map(FairyRing::name).toArray(String[]::new))); } } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java index 1c98f7ec33b..e8904b6c2a2 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/screenshot/ScreenshotPluginTest.java @@ -44,12 +44,9 @@ import net.runelite.api.gameval.VarClientID; import net.runelite.api.gameval.VarbitID; import net.runelite.api.widgets.Widget; -import net.runelite.client.Notifier; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.DrawManager; -import net.runelite.client.ui.overlay.OverlayManager; -import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.ImageCapture; import static org.junit.Assert.assertEquals; import org.junit.Before; @@ -94,10 +91,6 @@ public class ScreenshotPluginTest @Bind private ScreenshotConfig screenshotConfig; - @Mock - @Bind - Notifier notifier; - @Mock @Bind ClientUI clientUi; @@ -114,14 +107,6 @@ public class ScreenshotPluginTest @Bind ScheduledExecutorService service; - @Mock - @Bind - private OverlayManager overlayManager; - - @Mock - @Bind - private InfoBoxManager infoBoxManager; - @Mock @Bind private ImageCapture imageCapture; diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/FairyRingLocationTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/FairyRingLocationTest.java index 55905036f73..005d3c74ca7 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/FairyRingLocationTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/worldmap/FairyRingLocationTest.java @@ -28,7 +28,7 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import net.runelite.client.plugins.fairyring.FairyRings; +import net.runelite.client.plugins.fairyring.FairyRing; import static org.apache.commons.lang3.ArrayUtils.isSorted; import static org.junit.Assert.assertTrue; import org.junit.Test; @@ -44,7 +44,7 @@ public void testFairyRingsAlphabetized() @Test public void testFairyRingsInFairyRingPlugin() { - Set fairyRings = Stream.of(FairyRings.values()).map(FairyRings::name).collect(Collectors.toSet()); + Set fairyRings = Stream.of(FairyRing.values()).map(FairyRing::name).collect(Collectors.toSet()); for (FairyRingLocation r : FairyRingLocation.values()) { diff --git a/runelite-jshell/pom.xml b/runelite-jshell/pom.xml index 84616d69b23..0bc5ac60d45 100644 --- a/runelite-jshell/pom.xml +++ b/runelite-jshell/pom.xml @@ -30,7 +30,7 @@ net.runelite runelite-parent - 1.11.18-SNAPSHOT + 1.11.19-SNAPSHOT jshell diff --git a/runelite-maven-plugin/pom.xml b/runelite-maven-plugin/pom.xml index 15f8dc79dcc..96ec21fae17 100644 --- a/runelite-maven-plugin/pom.xml +++ b/runelite-maven-plugin/pom.xml @@ -29,7 +29,7 @@ net.runelite runelite-parent - 1.11.18-SNAPSHOT + 1.11.19-SNAPSHOT runelite-maven-plugin