diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt
index 05c6d1ca37..2d07fdd28b 100644
--- a/buildSrc/src/main/kotlin/Dependencies.kt
+++ b/buildSrc/src/main/kotlin/Dependencies.kt
@@ -25,9 +25,9 @@
object ProjectVersions {
const val launcherVersion = "2.2.0"
- const val rlVersion = "1.6.30"
+ const val rlVersion = "1.6.31"
- const val openosrsVersion = "3.5.2"
+ const val openosrsVersion = "3.5.3"
const val rsversion = 192
const val cacheversion = 165
diff --git a/runelite-api/src/main/java/net/runelite/api/AnimationID.java b/runelite-api/src/main/java/net/runelite/api/AnimationID.java
index 51f8e58852..7366032c67 100644
--- a/runelite-api/src/main/java/net/runelite/api/AnimationID.java
+++ b/runelite-api/src/main/java/net/runelite/api/AnimationID.java
@@ -46,6 +46,7 @@ public final class AnimationID
public static final int WOODCUTTING_INFERNAL = 2117;
public static final int WOODCUTTING_3A_AXE = 7264;
public static final int WOODCUTTING_CRYSTAL = 8324;
+ public static final int WOODCUTTING_TRAILBLAZER = 8778;
public static final int CONSUMING = 829; // consuming consumables
public static final int FIREMAKING = 733;
public static final int DEATH = 836;
@@ -116,6 +117,8 @@ public final class AnimationID
public static final int CRYSTALLINE_BEAR_DEATH = 4929;
public static final int CRYSTALLINE_DARK_BEAST_DEATH = 2733;
public static final int CORRUPTED_SCORPION_DEATH = 6256;
+ public static final int FISHING_TRAILBLAZER_HARPOON = 8784;
+ public static final int FISHING_TRAILBLAZER_HARPOON_2 = 8785;
public static final int FISHING_OILY_ROD = 622;
public static final int FISHING_KARAMBWAN = 1193;
public static final int FISHING_CRUSHING_INFERNAL_EELS = 7553;
@@ -150,6 +153,9 @@ public final class AnimationID
public static final int MINING_INFERNAL_PICKAXE = 4482;
public static final int MINING_3A_PICKAXE = 7283;
public static final int MINING_CRYSTAL_PICKAXE = 8347;
+ public static final int MINING_TRAILBLAZER_PICKAXE = 8787;
+ public static final int MINING_TRAILBLAZER_PICKAXE_2 = 8788;
+ public static final int MINING_TRAILBLAZER_PICKAXE_3 = 8789;
public static final int MINING_MOTHERLODE_BRONZE = 6753;
public static final int MINING_MOTHERLODE_IRON = 6754;
public static final int MINING_MOTHERLODE_STEEL = 6755;
@@ -164,6 +170,7 @@ public final class AnimationID
public static final int MINING_MOTHERLODE_INFERNAL = 4481;
public static final int MINING_MOTHERLODE_3A = 7282;
public static final int MINING_MOTHERLODE_CRYSTAL = 8345;
+ public static final int MINING_MOTHERLODE_TRAILBLAZER = 8786;
public static final int DENSE_ESSENCE_CHIPPING = 7201;
public static final int DENSE_ESSENCE_CHISELING = 7202;
public static final int HERBLORE_POTIONMAKING = 363; //used for both herb and secondary
@@ -195,6 +202,13 @@ public final class AnimationID
public static final int COW_HOME_TELEPORT_4 = 1699;
public static final int COW_HOME_TELEPORT_5 = 1700;
public static final int COW_HOME_TELEPORT_6 = 1701;
+ public static final int LEAGUE_HOME_TELEPORT_1 = 8798;
+ public static final int LEAGUE_HOME_TELEPORT_2 = 8799;
+ public static final int LEAGUE_HOME_TELEPORT_3 = 8801;
+ public static final int LEAGUE_HOME_TELEPORT_4 = 8803;
+ public static final int LEAGUE_HOME_TELEPORT_5 = 8805;
+ public static final int LEAGUE_HOME_TELEPORT_6 = 8807;
+
public static final int CONSTRUCTION = 3676;
public static final int SAND_COLLECTION = 895;
public static final int PISCARILIUS_CRANE_REPAIR = 7199;
diff --git a/runelite-api/src/main/java/net/runelite/api/IconID.java b/runelite-api/src/main/java/net/runelite/api/IconID.java
index 1f0247b556..b4f9b13c82 100644
--- a/runelite-api/src/main/java/net/runelite/api/IconID.java
+++ b/runelite-api/src/main/java/net/runelite/api/IconID.java
@@ -47,7 +47,8 @@ public enum IconID
HARDCORE_IRONMAN(10),
NO_ENTRY(11),
CHAIN_LINK(12),
- BOUNTY_HUNTER_EMBLEM(20);
+ BOUNTY_HUNTER_EMBLEM(20),
+ LEAGUE(22);
private final int index;
diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java
index aeb575f0c1..dd3a89a394 100644
--- a/runelite-api/src/main/java/net/runelite/api/ItemID.java
+++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java
@@ -10176,7 +10176,6 @@ public final class ItemID
public static final int CHAOTIC_HANDEGG = 22361;
public static final int OCULUS_ORB = 22364;
public static final int SHAYZIEN_FAVOUR_CERTIFICATE = 22365;
- public static final int CYAN_CRYSTAL_22366 = 22366;
public static final int KOUREND_FAVOUR_CERTIFICATE = 22367;
public static final int BRYOPHYTAS_STAFF_UNCHARGED = 22368;
public static final int BRYOPHYTAS_STAFF = 22370;
@@ -10375,7 +10374,6 @@ public final class ItemID
public static final int OLD_NOTES_22774 = 22774;
public static final int ANCIENT_LETTER = 22775;
public static final int ARCEUUS_FAVOUR_CERTIFICATE = 22777;
- public static final int DARK_ALTAR_22778 = 22778;
public static final int WYRM_BONES = 22780;
public static final int DRAKE_BONES = 22783;
public static final int HYDRA_BONES = 22786;
@@ -11520,7 +11518,7 @@ public final class ItemID
public static final int TRAILBLAZER_TROPHY = 25040;
public static final int TRAILBLAZER_DRAGON_TROPHY = 25042;
public static final int TRAILBLAZER_RUNE_TROPHY = 25044;
- public static final int TWISTED_ADAMANT_TROPHY_25046 = 25046;
+ public static final int TRAILBLAZER_ADAMANT_TROPHY = 25046;
public static final int TRAILBLAZER_MITHRIL_TROPHY = 25048;
public static final int TRAILBLAZER_STEEL_TROPHY = 25050;
public static final int TRAILBLAZER_IRON_TROPHY = 25052;
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 962a248a1f..61f8fec18d 100644
--- a/runelite-api/src/main/java/net/runelite/api/NpcID.java
+++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java
@@ -368,8 +368,8 @@ public final class NpcID
public static final int PHEASANT_374 = 374;
public static final int RICK_TURPENTINE = 375;
public static final int RICK_TURPENTINE_376 = 376;
- public static final int RICK_377 = 377;
- public static final int RICK_378 = 378;
+ public static final int PHOSANIS_NIGHTMARE = 377;
+ public static final int THE_NIGHTMARE = 378;
public static final int QUIZ_MASTER = 379;
public static final int PILLORY_GUARD = 380;
public static final int TRAMP = 381;
@@ -5547,6 +5547,7 @@ public final class NpcID
public static final int AGILITY_TRAINER_5927 = 5927;
public static final int WEREWOLF_5928 = 5928;
public static final int KNIGHT_5929 = 5929;
+ public static final int RICK_5931 = 5931;
public static final int EGG_5932 = 5932;
public static final int EGG_5933 = 5933;
public static final int EGG_5934 = 5934;
@@ -8398,7 +8399,7 @@ public final class NpcID
public static final int SHURA = 9413;
public static final int SHURA_9414 = 9414;
public static final int ACORN = 9415;
- public static final int PHOSANIS_NIGHTMARE = 9416;
+ public static final int PHOSANIS_NIGHTMARE_9416 = 9416;
public static final int PHOSANIS_NIGHTMARE_9417 = 9417;
public static final int PHOSANIS_NIGHTMARE_9418 = 9418;
public static final int PHOSANIS_NIGHTMARE_9419 = 9419;
@@ -8407,7 +8408,7 @@ public final class NpcID
public static final int PHOSANIS_NIGHTMARE_9422 = 9422;
public static final int PHOSANIS_NIGHTMARE_9423 = 9423;
public static final int PHOSANIS_NIGHTMARE_9424 = 9424;
- public static final int THE_NIGHTMARE = 9425;
+ public static final int THE_NIGHTMARE_9425 = 9425;
public static final int THE_NIGHTMARE_9426 = 9426;
public static final int THE_NIGHTMARE_9427 = 9427;
public static final int THE_NIGHTMARE_9428 = 9428;
@@ -8827,25 +8828,8 @@ public final class NpcID
public static final int SPIDER_10442 = 10442;
public static final int SPIDER_10443 = 10443;
public static final int BEES = 10444;
- public static final int RICK_10445 = 10445;
- public static final int RICK_10446 = 10446;
- public static final int RICK_10447 = 10447;
- public static final int EVE_10448 = 10448;
public static final int EVE_10449 = 10449;
- public static final int YELDIVE = 10450;
- public static final int YELDIVE_10451 = 10451;
- public static final int YANES = 10452;
- public static final int YANES_10453 = 10453;
- public static final int HOGST = 10454;
- public static final int HOGST_10455 = 10455;
- public static final int POUNCER = 10456;
- public static final int POUNCER_10457 = 10457;
- public static final int GHOSTLY_FIGURE = 10458;
- public static final int GHOSTLY_FIGURE_10459 = 10459;
public static final int JACKOLANTERN = 10460;
- public static final int RICK_10461 = 10461;
- public static final int RICK_10462 = 10462;
- public static final int RICK_10463 = 10463;
public static final int LEAGUES_ASSISTANT = 10476;
public static final int THESSALIA = 10477;
public static final int THESSALIA_10478 = 10478;
diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java
index fb20591bfa..c9f155f9a7 100644
--- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java
+++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java
@@ -12003,6 +12003,7 @@ public final class NullItemID
public static final int NULL_22360 = 22360;
public static final int NULL_22362 = 22362;
public static final int NULL_22363 = 22363;
+ public static final int NULL_22366 = 22366;
public static final int NULL_22369 = 22369;
public static final int NULL_22371 = 22371;
public static final int NULL_22373 = 22373;
@@ -12216,6 +12217,7 @@ public final class NullItemID
public static final int NULL_22757 = 22757;
public static final int NULL_22759 = 22759;
public static final int NULL_22776 = 22776;
+ public static final int NULL_22778 = 22778;
public static final int NULL_22779 = 22779;
public static final int NULL_22781 = 22781;
public static final int NULL_22782 = 22782;
@@ -13355,5 +13357,16 @@ public final class NullItemID
public static final int NULL_25113 = 25113;
public static final int NULL_25115 = 25115;
public static final int NULL_25116 = 25116;
+ public static final int NULL_25118 = 25118;
+ public static final int NULL_25119 = 25119;
+ public static final int NULL_25120 = 25120;
+ public static final int NULL_25121 = 25121;
+ public static final int NULL_25122 = 25122;
+ public static final int NULL_25123 = 25123;
+ public static final int NULL_25124 = 25124;
+ public static final int NULL_25125 = 25125;
+ public static final int NULL_25126 = 25126;
+ public static final int NULL_25127 = 25127;
+ public static final int NULL_25128 = 25128;
/* 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 bfb27b5a2c..d01e542110 100644
--- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java
+++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java
@@ -1600,16 +1600,6 @@ public final class NullNpcID
public static final int NULL_10431 = 10431;
public static final int NULL_10440 = 10440;
public static final int NULL_10441 = 10441;
- public static final int NULL_10464 = 10464;
- public static final int NULL_10465 = 10465;
- public static final int NULL_10466 = 10466;
- public static final int NULL_10467 = 10467;
- public static final int NULL_10468 = 10468;
- public static final int NULL_10469 = 10469;
- public static final int NULL_10470 = 10470;
- public static final int NULL_10471 = 10471;
- public static final int NULL_10472 = 10472;
- public static final int NULL_10473 = 10473;
public static final int NULL_10474 = 10474;
public static final int NULL_10475 = 10475;
/* This file is automatically generated. Do not edit. */
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 47bae609ef..f3c11e2598 100644
--- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java
+++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java
@@ -9385,7 +9385,6 @@ public final class NullObjectID
public static final int NULL_20841 = 20841;
public static final int NULL_20842 = 20842;
public static final int NULL_20846 = 20846;
- public static final int NULL_20853 = 20853;
public static final int NULL_20857 = 20857;
public static final int NULL_20859 = 20859;
public static final int NULL_20860 = 20860;
@@ -19726,14 +19725,6 @@ public final class NullObjectID
public static final int NULL_40352 = 40352;
public static final int NULL_40353 = 40353;
public static final int NULL_40354 = 40354;
- public static final int NULL_40360 = 40360;
- public static final int NULL_40364 = 40364;
- public static final int NULL_40368 = 40368;
- public static final int NULL_40378 = 40378;
- public static final int NULL_40379 = 40379;
- public static final int NULL_40380 = 40380;
- public static final int NULL_40381 = 40381;
- public static final int NULL_40382 = 40382;
public static final int NULL_40392 = 40392;
public static final int NULL_40393 = 40393;
public static final int NULL_40394 = 40394;
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 b43d877ab4..0ad9e0d818 100644
--- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java
+++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java
@@ -11465,16 +11465,6 @@ public final class ObjectID
public static final int EXIT_PORTAL_20843 = 20843;
public static final int TREE_20844 = 20844;
public static final int TREE_20845 = 20845;
- public static final int WARDROBE_20847 = 20847;
- public static final int WEB_20848 = 20848;
- public static final int JACKOLANTERN = 20849;
- public static final int JACKOLANTERN_20850 = 20850;
- public static final int PORTAL_TO_RICKS_ROOM = 20851;
- public static final int PORTAL_TO_WIZARDS_TOWER = 20852;
- public static final int BONFIRE = 20854;
- public static final int BONFIRE_20855 = 20855;
- public static final int BONFIRE_20856 = 20856;
- public static final int BED_20858 = 20858;
public static final int COMPOST_BIN_20870 = 20870;
public static final int COMPOST_BIN_20871 = 20871;
public static final int COMPOST_BIN_20872 = 20872;
@@ -15460,7 +15450,7 @@ public final class ObjectID
public static final int MARBLE_BENCH_29275 = 29275;
public static final int OBSIDIAN_BENCH_29276 = 29276;
public static final int OBSIDIAN_BENCH_29277 = 29277;
- public static final int BONFIRE_29300 = 29300;
+ public static final int BONFIRE = 29300;
public static final int CRATE_29301 = 29301;
public static final int CRATE_29302 = 29302;
public static final int CRATE_29303 = 29303;
@@ -20620,21 +20610,6 @@ public final class ObjectID
public static final int LECTERN_40357 = 40357;
public static final int LECTERN_40358 = 40358;
public static final int PICTURE_40359 = 40359;
- public static final int MUSHROOM_40361 = 40361;
- public static final int BARREL_OF_SPIDERS = 40362;
- public static final int BARREL_OF_SPIDERS_40363 = 40363;
- public static final int TREE_STUMP_40365 = 40365;
- public static final int CAULDRON_OF_BREW = 40366;
- public static final int CAULDRON_OF_BREW_40367 = 40367;
- public static final int PLANT_40369 = 40369;
- public static final int GRAMOPHONE_40370 = 40370;
- public static final int WARDROBE_40371 = 40371;
- public static final int WARDROBE_40372 = 40372;
- public static final int BOOKSHELF_40373 = 40373;
- public static final int CRATE_40374 = 40374;
- public static final int HAT_STAND_40375 = 40375;
- public static final int PORTRAIT_40376 = 40376;
- public static final int KWUARM_AND_PEAS = 40377;
public static final int MAGICAL_PUMPKIN = 40383;
public static final int MAGICAL_PUMPKIN_40384 = 40384;
public static final int MAGICAL_PUMPKIN_40385 = 40385;
diff --git a/runelite-api/src/main/java/net/runelite/api/SpriteID.java b/runelite-api/src/main/java/net/runelite/api/SpriteID.java
index a3f6138f68..d1ec2c9d83 100644
--- a/runelite-api/src/main/java/net/runelite/api/SpriteID.java
+++ b/runelite-api/src/main/java/net/runelite/api/SpriteID.java
@@ -1044,7 +1044,6 @@ public final class SpriteID
public static final int MINIMAP_ORB_PRAYER_ICON = 1068;
public static final int MINIMAP_ORB_WALK_ICON = 1069;
public static final int MINIMAP_ORB_RUN_ICON = 1070;
- public static final int MINIMAP_ORB_RUN_ICON_ACTIVATED = 1070;
public static final int MINIMAP_ORB_FRAME = 1071;
public static final int MINIMAP_ORB_FRAME_HOVERED = 1072;
public static final int OPTIONS_CAMERA = 1073;
diff --git a/runelite-api/src/main/java/net/runelite/api/Varbits.java b/runelite-api/src/main/java/net/runelite/api/Varbits.java
index ad02109f64..a751c827d8 100644
--- a/runelite-api/src/main/java/net/runelite/api/Varbits.java
+++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java
@@ -775,14 +775,15 @@ public enum Varbits
LMS_SAFE_X(5316),
/**
- * Starts at 100, counts down every 10 ticks (6 seconds)
+ * League relics
*/
- TWISTED_LEAGUE_RELIC_1(10049),
- TWISTED_LEAGUE_RELIC_2(10050),
- TWISTED_LEAGUE_RELIC_3(10051),
- TWISTED_LEAGUE_RELIC_4(10052),
- TWISTED_LEAGUE_RELIC_5(10053),
- TWISTED_LEAGUE_RELIC_6(11696),
+ LEAGUE_RELIC_1(10049),
+ LEAGUE_RELIC_2(10050),
+ LEAGUE_RELIC_3(10051),
+ LEAGUE_RELIC_4(10052),
+ LEAGUE_RELIC_5(10053),
+ LEAGUE_RELIC_6(11696),
+
/**
* Whether the Special Attack orb is disabled due to being in a PvP area
*
diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
index dcfd444425..dfd7925e07 100644
--- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
+++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
@@ -90,7 +90,7 @@ public class WidgetID
public static final int BA_HORN_OF_GLORY = 484;
public static final int LEVEL_UP_GROUP_ID = 233;
public static final int DIALOG_SPRITE_GROUP_ID = 193;
- public static final int QUEST_COMPLETED_GROUP_ID = 277;
+ public static final int QUEST_COMPLETED_GROUP_ID = 153;
public static final int CLUE_SCROLL_REWARD_GROUP_ID = 73;
public static final int BARROWS_REWARD_GROUP_ID = 155;
public static final int RAIDS_GROUP_ID = 513;
@@ -109,7 +109,7 @@ public class WidgetID
public static final int THEATRE_OF_BLOOD_REWARD_GROUP_ID = 23;
public static final int EXPERIENCE_TRACKER_GROUP_ID = 122;
public static final int TITHE_FARM_GROUP_ID = 241;
- public static final int KINGDOM_GROUP_ID = 392;
+ public static final int KINGDOM_GROUP_ID = 616;
public static final int BARROWS_GROUP_ID = 24;
public static final int BLAST_MINE_GROUP_ID = 598;
public static final int MTA_ALCHEMY_GROUP_ID = 194;
@@ -177,6 +177,9 @@ public class WidgetID
public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_PRIVATE_GROUP_ID = 271;
public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_SHARED_GROUP_ID = 550;
public static final int CHAMBERS_OF_XERIC_STORAGE_UNIT_INVENTORY_GROUP_ID = 551;
+ public static final int DUEL_INVENTORY_GROUP_ID = 421;
+ public static final int DUEL_INVENTORY_OTHER_GROUP_ID = 481;
+ public static final int TRAILBLAZER_AREAS_GROUP_ID = 512;
static class WorldMap
{
@@ -1208,7 +1211,7 @@ public class WidgetID
static class QuestList
{
static final int BOX = 0;
- static final int SCROLLBAR = 3;
+ static final int SCROLLBAR = 4;
static final int CONTAINER = 5;
static final int FREE_CONTAINER = 6;
static final int MEMBERS_CONTAINER = 7;
@@ -1395,4 +1398,9 @@ public class WidgetID
{
static final int CONTAINER = 6;
}
+
+ static class TrailblazerAreas
+ {
+ static final int TELEPORT = 59;
+ }
}
diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
index 18f591b29d..e421dd05b0 100644
--- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
+++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
@@ -916,7 +916,10 @@ public enum WidgetInfo
HALLOWED_SEPULCHRE_TIMER_CONTAINER(WidgetID.HALLOWED_SEPULCHRE_TIMER_GROUP_ID, WidgetID.HallowedSepulchreTimer.CONTAINER),
- HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, WidgetID.EncounterHealthBar.CONTAINER);
+ HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, WidgetID.EncounterHealthBar.CONTAINER),
+
+ TRAILBLAZER_AREA_TELEPORT(WidgetID.TRAILBLAZER_AREAS_GROUP_ID, WidgetID.TrailblazerAreas.TELEPORT),
+ ;
private final int groupId;
private final int childId;
diff --git a/runelite-client/pmd-ruleset.xml b/runelite-client/pmd-ruleset.xml
new file mode 100644
index 0000000000..3cdece031e
--- /dev/null
+++ b/runelite-client/pmd-ruleset.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+ RuneLite PMD ruleset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 441b5c6507..af2858ef49 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
@@ -102,7 +102,7 @@ public class ClientThread implements Executor
{
assert client.isClientThread();
Iterator ir = invokes.iterator();
- for (; ir.hasNext(); )
+ while (ir.hasNext())
{
BooleanSupplier r = ir.next();
boolean remove = true;
diff --git a/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java b/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java
index 6e7a53a43e..28a312b337 100644
--- a/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java
+++ b/runelite-client/src/main/java/net/runelite/client/config/ModifierlessKeybind.java
@@ -49,6 +49,7 @@ public class ModifierlessKeybind extends Keybind
* KeyReleased event this returns if the event is this hotkey being
* released
*/
+ @Override
public boolean matches(KeyEvent e)
{
return matches(e, true);
diff --git a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java
index c715a098ce..7dadaf8c65 100644
--- a/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java
+++ b/runelite-client/src/main/java/net/runelite/client/game/ItemManager.java
@@ -283,11 +283,11 @@ public class ItemManager
* */
public int getItemPrice(int itemID, boolean ignoreUntradeableMap)
{
- if (itemID == ItemID.COINS_995)
+ if (itemID == COINS_995)
{
return 1;
}
- if (itemID == ItemID.PLATINUM_TOKEN)
+ if (itemID == PLATINUM_TOKEN)
{
return 1000;
}
@@ -527,7 +527,7 @@ public class ItemManager
*/
private BufferedImage loadItemOutline(final int itemId, final int itemQuantity, final Color outlineColor)
{
- final Sprite itemSprite = client.createItemSprite(itemId, itemQuantity, 1, 0, 0, false, Constants.CLIENT_DEFAULT_ZOOM);
+ final Sprite itemSprite = client.createItemSprite(itemId, itemQuantity, 1, 0, 0, false, CLIENT_DEFAULT_ZOOM);
return itemSprite.toBufferedOutline(outlineColor);
}
diff --git a/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java b/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java
index fd17ad0f7f..6a7311bea1 100644
--- a/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java
+++ b/runelite-client/src/main/java/net/runelite/client/game/SkillIconManager.java
@@ -40,7 +40,6 @@ public class SkillIconManager
public BufferedImage getSkillImage(Skill skill, boolean small)
{
int skillIdx = skill.ordinal() + (small ? Skill.values().length : 0);
- BufferedImage skillImage;
if (imgCache[skillIdx] != null)
{
@@ -50,7 +49,7 @@ public class SkillIconManager
String skillIconPath = (small ? "/skill_icons_small/" : "/skill_icons/")
+ skill.getName().toLowerCase() + ".png";
log.debug("Loading skill icon from {}", skillIconPath);
- skillImage = ImageUtil.getResourceStreamFromClass(getClass(), skillIconPath);
+ BufferedImage skillImage = ImageUtil.getResourceStreamFromClass(getClass(), skillIconPath);
imgCache[skillIdx] = skillImage;
return skillImage;
diff --git a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java
index ae6ea6d9fa..494373b0ff 100644
--- a/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java
+++ b/runelite-client/src/main/java/net/runelite/client/game/chatbox/ChatboxItemSearch.java
@@ -47,6 +47,7 @@ import net.runelite.api.widgets.WidgetTextAlignment;
import net.runelite.api.widgets.WidgetType;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.game.ItemManager;
+import net.runelite.client.ui.JagexColors;
@Singleton
public class ChatboxItemSearch extends ChatboxTextInput
@@ -141,7 +142,7 @@ public class ChatboxItemSearch extends ChatboxTextInput
item.setOriginalY(y + FONT_SIZE * 2);
item.setOriginalHeight(ICON_HEIGHT);
item.setOriginalWidth(ICON_WIDTH);
- item.setName("" + itemDefinition.getName());
+ item.setName(JagexColors.MENU_TARGET_TAG + itemDefinition.getName());
item.setItemId(itemDefinition.getId());
item.setItemQuantity(10000);
item.setItemQuantityMode(ItemQuantityMode.NEVER);
diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java
index 381acbe873..1803e2a633 100644
--- a/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java
+++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java
@@ -48,7 +48,7 @@ class ClientConfigLoader
final RSConfig config = new RSConfig();
- try (final Response response = okHttpClient.newCall(request).execute())
+ try (Response response = okHttpClient.newCall(request).execute())
{
if (!response.isSuccessful())
{
diff --git a/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java b/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java
index f236c431aa..aaab638696 100644
--- a/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java
+++ b/runelite-client/src/main/java/net/runelite/client/ui/JagexColors.java
@@ -54,7 +54,8 @@ public class JagexColors
/*
* Colors relating to right-click menus.
*/
- public static final Color MENU_TARGET = new Color(255, 144, 64);
+ public static final Color MENU_TARGET = new Color(0xFF9040);
+ public static final String MENU_TARGET_TAG = "";
/*
* Colors relating to tooltips.
diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java b/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java
index fec220bfcd..19fb3fc175 100644
--- a/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java
+++ b/runelite-client/src/main/java/net/runelite/client/ui/components/materialtabs/MaterialTab.java
@@ -72,7 +72,6 @@ public class MaterialTab extends JLabel
{
super(string);
- /* The tab's containing group */
this.content = content;
if (selected)
diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java
index cc7870698a..1487171183 100644
--- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java
+++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/WidgetItemOverlay.java
@@ -34,7 +34,20 @@ import java.util.Set;
import lombok.AccessLevel;
import lombok.Setter;
import net.runelite.api.widgets.Widget;
-import static net.runelite.api.widgets.WidgetID.*;
+import static net.runelite.api.widgets.WidgetID.BANK_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.BANK_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.DEPOSIT_BOX_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.EQUIPMENT_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.EQUIPMENT_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.GRAND_EXCHANGE_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.GUIDE_PRICES_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.SEED_VAULT_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.SHOP_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.DUEL_INVENTORY_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.DUEL_INVENTORY_OTHER_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.PLAYER_TRADE_SCREEN_GROUP_ID;
+import static net.runelite.api.widgets.WidgetID.PLAYER_TRADE_INVENTORY_GROUP_ID;
import static net.runelite.api.widgets.WidgetInfo.BANK_CONTENT_CONTAINER;
import static net.runelite.api.widgets.WidgetInfo.BANK_TAB_CONTAINER;
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
@@ -129,7 +142,11 @@ public abstract class WidgetItemOverlay extends Overlay
GUIDE_PRICES_INVENTORY_GROUP_ID,
EQUIPMENT_INVENTORY_GROUP_ID,
INVENTORY_GROUP_ID,
- SEED_VAULT_INVENTORY_GROUP_ID);
+ SEED_VAULT_INVENTORY_GROUP_ID,
+ DUEL_INVENTORY_GROUP_ID,
+ DUEL_INVENTORY_OTHER_GROUP_ID,
+ PLAYER_TRADE_SCREEN_GROUP_ID,
+ PLAYER_TRADE_INVENTORY_GROUP_ID);
}
protected void showOnBank()
diff --git a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java
index 090e76a46d..588d554433 100644
--- a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java
+++ b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java
@@ -45,7 +45,7 @@ public class WildcardMatcher
}
else
{
- matcher.appendReplacement(sb, "\\\\Q" + matcher.group(0) + "\\\\E");
+ matcher.appendReplacement(sb, Matcher.quoteReplacement(Pattern.quote(matcher.group(0))));
}
}
diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json
index 0868cc90ba..bb9825131b 100644
--- a/runelite-client/src/main/resources/item_variations.json
+++ b/runelite-client/src/main/resources/item_variations.json
@@ -4720,7 +4720,6 @@
],
"cyan crystal": [
6643,
- 22366,
23779
],
"blue crystal": [
@@ -8292,10 +8291,6 @@
24890,
24894
],
- "dark altar": [
- 20619,
- 22778
- ],
"occult altar": [
20620,
20621,
@@ -9306,10 +9301,6 @@
24365,
24366
],
- "twisted adamant trophy": [
- 24376,
- 25046
- ],
"twisted hat": [
24387,
24397,
diff --git a/runelite-client/src/main/resources/scripts/ChatBuilder.rs2asm b/runelite-client/src/main/resources/scripts/ChatBuilder.rs2asm
index 32df586628..30e4da40d4 100644
--- a/runelite-client/src/main/resources/scripts/ChatBuilder.rs2asm
+++ b/runelite-client/src/main/resources/scripts/ChatBuilder.rs2asm
@@ -533,7 +533,13 @@ LABEL416:
LABEL430:
jump LABEL445
LABEL431:
+ iload 9 ; The id of the messageNode of the message being built
+ sconst ""
+ sconst "addTimestamp"
+ runelite_callback
+ pop_int ; pop message id
sload 11
+ join_string 2
iload 7
iload 8
iconst 10616891
diff --git a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java
index 53b48a0755..5b1d09a264 100644
--- a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java
+++ b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java
@@ -39,5 +39,6 @@ public class WildcardMatcherTest
assertFalse(matches("Abyssal whip", "Adamant dagger"));
assertTrue(matches("rune*", "Runeite Ore"));
assertTrue(matches("Abyssal whip", "Abyssal whip"));
+ assertTrue(matches("string $ with special character", "string $ with special character"));
}
}
\ No newline at end of file