From 3c920ead9a83be7f16ff35cdb7b6a0626ac49da1 Mon Sep 17 00:00:00 2001 From: Matthew C Date: Mon, 7 Sep 2020 01:42:53 +0900 Subject: [PATCH 01/10] timers: Add Mage Arena 2 teleblock timers --- .../runelite/client/plugins/timers/GameTimer.java | 2 ++ .../runelite/client/plugins/timers/TimersPlugin.java | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java index bc751e4178..2bbdae61d6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java @@ -50,6 +50,8 @@ enum GameTimer HALFTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Half Teleblock", 150, ChronoUnit.SECONDS, true), DMM_FULLTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Deadman Mode Full Teleblock", 150, ChronoUnit.SECONDS, true), DMM_HALFTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Deadman Mode Half Teleblock", 75, ChronoUnit.SECONDS, true), + MAGE_ARENA_FULLTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Mage Arena 2 Full Teleblock", 2, ChronoUnit.MINUTES, true), + MAGE_ARENA_HALFTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Mage Arena 2 Half Teleblock", 1, ChronoUnit.MINUTES, true), SUPERANTIFIRE(ItemID.SUPER_ANTIFIRE_POTION4, GameTimerImageType.ITEM, "Super antifire", 3, ChronoUnit.MINUTES), BIND(SpriteID.SPELL_BIND, GameTimerImageType.SPRITE, "Bind", GraphicID.BIND, 8, GAME_TICKS, true), SNARE(SpriteID.SPELL_SNARE, GameTimerImageType.SPRITE, "Snare", GraphicID.SNARE, 16, GAME_TICKS, true), diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index caefdac45e..243250b880 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -117,6 +117,8 @@ public class TimersPlugin extends Plugin private static final Pattern DEADMAN_HALF_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you by (.+)\\. It will expire in 1 minute, 15 seconds\\."); private static final Pattern FULL_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you by (.+)\\. It will expire in 5 minutes\\."); private static final Pattern HALF_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you by (.+)\\. It will expire in 2 minutes, 30 seconds\\."); + private static final Pattern MAGE_ARENA_FULL_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you\\. It will expire in 2 minutes\\."); + private static final Pattern MAGE_ARENA_HALF_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you\\. It will expire in 1 minute\\."); private static final Pattern DIVINE_POTION_PATTERN = Pattern.compile("You drink some of your divine (.+) potion\\."); private static final int VENOM_VALUE_CUTOFF = -40; // Antivenom < -40 <= Antipoison < 0 private static final int POISON_TICK_LENGTH = 30; @@ -559,6 +561,14 @@ public class TimersPlugin extends Plugin { createGameTimer(DMM_HALFTB); } + else if (MAGE_ARENA_FULL_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) + { + createGameTimer(MAGE_ARENA_FULLTB); + } + else if (MAGE_ARENA_HALF_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) + { + createGameTimer(MAGE_ARENA_HALFTB); + } else if (event.getMessage().contains(KILLED_TELEBLOCK_OPPONENT_TEXT)) { removeTbTimers(); @@ -1071,5 +1081,7 @@ public class TimersPlugin extends Plugin removeGameTimer(HALFTB); removeGameTimer(DMM_FULLTB); removeGameTimer(DMM_HALFTB); + removeGameTimer(MAGE_ARENA_FULLTB); + removeGameTimer(MAGE_ARENA_HALFTB); } } From 230bba0ea7a4f9a8931f3517de8cc86355ac6a2e Mon Sep 17 00:00:00 2001 From: Matthew C <66925241+Matthew-nop@users.noreply.github.com> Date: Wed, 9 Sep 2020 12:30:41 +0900 Subject: [PATCH 02/10] corp: Add toggle for dark energy core highlighting (#12462) --- .../runelite/client/plugins/corp/CoreOverlay.java | 9 ++++++++- .../runelite/client/plugins/corp/CorpConfig.java | 13 ++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java index 29c7dff16a..066a641328 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java @@ -40,19 +40,26 @@ class CoreOverlay extends Overlay { private final Client client; private final CorpPlugin corpPlugin; + private final CorpConfig config; @Inject - private CoreOverlay(Client client, CorpPlugin corpPlugin) + private CoreOverlay(Client client, CorpPlugin corpPlugin, CorpConfig corpConfig) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_SCENE); this.client = client; this.corpPlugin = corpPlugin; + this.config = corpConfig; } @Override public Dimension render(Graphics2D graphics) { + if (!config.markDarkCore()) + { + return null; + } + NPC core = corpPlugin.getCore(); if (core != null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpConfig.java index 13475f7c44..e0103ead43 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpConfig.java @@ -35,10 +35,21 @@ public interface CorpConfig extends Config keyName = "showDamage", name = "Show damage overlay", description = "Show total damage overlay", - position = 2 + position = 0 ) default boolean showDamage() { return true; } + + @ConfigItem( + keyName = "markDarkCore", + name = "Mark dark core", + description = "Marks the dark energy core.", + position = 1 + ) + default boolean markDarkCore() + { + return true; + } } From 6fd2eb5e63014255d159a823da50c59e975d52d3 Mon Sep 17 00:00:00 2001 From: Matthew C Date: Wed, 9 Sep 2020 13:18:07 +0900 Subject: [PATCH 03/10] slayer: Sort Task enum alphabetically --- .../runelite/client/plugins/slayer/Task.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java index 04c4fdd43f..05eff29b20 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java @@ -45,13 +45,12 @@ enum Task ALCHEMICAL_HYDRA("Alchemical Hydra", ItemID.IKKLE_HYDRA), ANKOU("Ankou", ItemID.ANKOU_MASK), AVIANSIES("Aviansies", ItemID.ENSOULED_AVIANSIE_HEAD), + BANDITS("Bandits", ItemID.BANDIT, "Bandit"), BANSHEES("Banshees", ItemID.BANSHEE), BARROWS_BROTHERS("Barrows Brothers", ItemID.KARILS_COIF), BASILISKS("Basilisks", ItemID.BASILISK), BATS("Bats", ItemID.GIRAL_BAT_2), BEARS("Bears", ItemID.ENSOULED_BEAR_HEAD), - ENTS("Ents", ItemID.NICE_TREE, "Ent"), - LAVA_DRAGONS("Lava Dragons", ItemID.LAVA_SCALE, "Lava dragon"), BIRDS("Birds", ItemID.FEATHER, "Chicken", "Rooster", "Terrorbird", "Seagull"), BLACK_DEMONS("Black demons", ItemID.BLACK_DEMON_MASK), BLACK_DRAGONS("Black dragons", ItemID.BLACK_DRAGON_MASK, "Baby black dragon"), @@ -67,6 +66,7 @@ enum Task CAVE_KRAKEN("Cave kraken", ItemID.CAVE_KRAKEN), CAVE_SLIMES("Cave slimes", ItemID.SWAMP_CAVE_SLIME), CERBERUS("Cerberus", ItemID.HELLPUPPY), + CHAOS_DRUIDS("Chaos druids", ItemID.ELDER_CHAOS_HOOD, "Elder Chaos druid", "Chaos druid"), CHAOS_ELEMENTAL("Chaos Elemental", ItemID.PET_CHAOS_ELEMENTAL), CHAOS_FANATIC("Chaos Fanatic", ItemID.ANCIENT_STAFF), COCKATRICE("Cockatrice", ItemID.COCKATRICE, "Cockathrice"), @@ -85,16 +85,16 @@ enum Task DWARVES("Dwarves", ItemID.DWARVEN_HELMET, "Dwarf"), EARTH_WARRIORS("Earth warriors", ItemID.BRONZE_FULL_HELM_T), ELVES("Elves", ItemID.ELF, "Elf", "Iorwerth Warrior"), + ENTS("Ents", ItemID.NICE_TREE, "Ent"), FEVER_SPIDERS("Fever spiders", ItemID.FEVER_SPIDER), FIRE_GIANTS("Fire giants", ItemID.FIRE_BATTLESTAFF), - REVENANTS("Revenants", ItemID.BRACELET_OF_ETHEREUM, "Revenant imp", "Revenant goblin", "Revenant pyrefiend", "Revenant hobgoblin", "Revenant cyclops", "Revenant hellhound", "Revenant demon", "Revenant ork", "Revenant dark beast", "Revenant knight", "Revenant dragon"), FLESH_CRAWLERS("Fleshcrawlers", ItemID.ENSOULED_SCORPION_HEAD, "Flesh crawler"), FOSSIL_ISLAND_WYVERNS("Fossil island wyverns", ItemID.FOSSIL_ISLAND_WYVERN, "Ancient wyvern", "Long-tailed wyvern", "Spitting wyvern", "Taloned wyvern"), GARGOYLES("Gargoyles", ItemID.GARGOYLE, 9, ItemID.ROCK_HAMMER), GENERAL_GRAARDOR("General Graardor", ItemID.PET_GENERAL_GRAARDOR), GHOSTS("Ghosts", ItemID.GHOSTSPEAK_AMULET, "Tortured soul"), - GIANT_MOLE("Giant Mole", ItemID.BABY_MOLE), GHOULS("Ghouls", ItemID.ZOMBIE_HEAD), + GIANT_MOLE("Giant Mole", ItemID.BABY_MOLE), GOBLINS("Goblins", ItemID.ENSOULED_GOBLIN_HEAD), GREATER_DEMONS("Greater demons", ItemID.GREATER_DEMON_MASK), GREEN_DRAGONS("Green dragons", ItemID.GREEN_DRAGON_MASK, "Baby green dragon"), @@ -104,16 +104,15 @@ enum Task HILL_GIANTS("Hill giants", ItemID.ENSOULED_GIANT_HEAD), HOBGOBLINS("Hobgoblins", ItemID.HOBGOBLIN_GUARD), HYDRAS("Hydras", ItemID.HYDRA), + ICEFIENDS("Icefiends", ItemID.ICE_DIAMOND), ICE_GIANTS("Ice giants", ItemID.ICE_DIAMOND), ICE_WARRIORS("Ice warriors", ItemID.MITHRIL_FULL_HELM_T), - ICEFIENDS("Icefiends", ItemID.ICE_DIAMOND), INFERNAL_MAGES("Infernal mages", ItemID.INFERNAL_MAGE, "Malevolent mage"), IRON_DRAGONS("Iron dragons", ItemID.IRON_DRAGON_MASK), JAD("TzTok-Jad", ItemID.TZREKJAD, 25250), JELLIES("Jellies", ItemID.JELLY, "Jelly"), JUNGLE_HORROR("Jungle horrors", ItemID.ENSOULED_HORROR_HEAD), KALPHITE("Kalphite", ItemID.KALPHITE_SOLDIER), - MAMMOTHS("Mammoths", ItemID.ATTACKER_HORN, "Mammoth"), KALPHITE_QUEEN("Kalphite Queen", ItemID.KALPHITE_PRINCESS), KILLERWATTS("Killerwatts", ItemID.KILLERWATT), KING_BLACK_DRAGON("King Black Dragon", ItemID.PRINCE_BLACK_DRAGON), @@ -121,10 +120,12 @@ enum Task KREEARRA("Kree'arra", ItemID.PET_KREEARRA), KRIL_TSUTSAROTH("K'ril Tsutsaroth", ItemID.PET_KRIL_TSUTSAROTH), KURASK("Kurask", ItemID.KURASK), - ROGUES("Rogues", ItemID.ROGUE_MASK, "Rogue"), + LAVA_DRAGONS("Lava Dragons", ItemID.LAVA_SCALE, "Lava dragon"), LESSER_DEMONS("Lesser demons", ItemID.LESSER_DEMON_MASK), - LIZARDS("Lizards", ItemID.DESERT_LIZARD, "Desert lizard", "Sulphur lizard", "Small lizard", "Lizard"), LIZARDMEN("Lizardmen", ItemID.LIZARDMAN_FANG, "Lizardman"), + LIZARDS("Lizards", ItemID.DESERT_LIZARD, "Desert lizard", "Sulphur lizard", "Small lizard", "Lizard"), + MAGIC_AXES("Magic axes", ItemID.IRON_BATTLEAXE, "Magic axe"), + MAMMOTHS("Mammoths", ItemID.ATTACKER_HORN, "Mammoth"), MINIONS_OF_SCABARAS("Minions of scabaras", ItemID.GOLDEN_SCARAB, "Scarab swarm", "Locust rider", "Scarab mage"), MINOTAURS("Minotaurs", ItemID.ENSOULED_MINOTAUR_HEAD), MITHRIL_DRAGONS("Mithril dragons", ItemID.MITHRIL_DRAGON_MASK), @@ -139,13 +140,12 @@ enum Task PYREFIENDS("Pyrefiends", ItemID.PYREFIEND, "Flaming pyrelord"), RATS("Rats", ItemID.RATS_TAIL), RED_DRAGONS("Red dragons", ItemID.BABY_RED_DRAGON, "Baby red dragon"), + REVENANTS("Revenants", ItemID.BRACELET_OF_ETHEREUM, "Revenant imp", "Revenant goblin", "Revenant pyrefiend", "Revenant hobgoblin", "Revenant cyclops", "Revenant hellhound", "Revenant demon", "Revenant ork", "Revenant dark beast", "Revenant knight", "Revenant dragon"), ROCKSLUGS("Rockslugs", ItemID.ROCKSLUG, 4, ItemID.BAG_OF_SALT), + ROGUES("Rogues", ItemID.ROGUE_MASK, "Rogue"), RUNE_DRAGONS("Rune dragons", ItemID.RUNE_DRAGON_MASK), - SCORPIA("Scorpia", ItemID.SCORPIAS_OFFSPRING), - CHAOS_DRUIDS("Chaos druids", ItemID.ELDER_CHAOS_HOOD, "Elder Chaos druid", "Chaos druid"), - BANDITS("Bandits", ItemID.BANDIT, "Bandit"), - MAGIC_AXES("Magic axes", ItemID.IRON_BATTLEAXE, "Magic axe"), SARACHNIS("Sarachnis", ItemID.SRARACHA), + SCORPIA("Scorpia", ItemID.SCORPIAS_OFFSPRING), SCORPIONS("Scorpions", ItemID.ENSOULED_SCORPION_HEAD), SEA_SNAKES("Sea snakes", ItemID.SNAKE_CORPSE), SHADES("Shades", ItemID.SHADE_ROBE_TOP, "Loar Shadow", "Loar Shade", "Phrin Shadow", "Phrin Shade", "Riyl Shadow", "Riyl Shade", "Asyn Shadow", "Asyn Shade", "Fiyr Shadow", "Fiyr Shade"), @@ -176,8 +176,8 @@ enum Task WYRMS("Wyrms", ItemID.WYRM), ZILYANA("Commander Zilyana", ItemID.PET_ZILYANA), ZOMBIES("Zombies", ItemID.ZOMBIE_HEAD, "Undead"), - ZULRAH("Zulrah", ItemID.PET_SNAKELING), - ZUK("TzKal-Zuk", ItemID.TZREKZUK, 101890); + ZUK("TzKal-Zuk", ItemID.TZREKZUK, 101890), + ZULRAH("Zulrah", ItemID.PET_SNAKELING); // private static final Map tasks; From e2f848fbbf522c42f8b28c6c36ba71d48bdeade9 Mon Sep 17 00:00:00 2001 From: Matthew C Date: Wed, 9 Sep 2020 13:20:13 +0900 Subject: [PATCH 04/10] slayer: Add black knights and pirates --- .../src/main/java/net/runelite/client/plugins/slayer/Task.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java index 05eff29b20..6407c933e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java @@ -54,6 +54,7 @@ enum Task BIRDS("Birds", ItemID.FEATHER, "Chicken", "Rooster", "Terrorbird", "Seagull"), BLACK_DEMONS("Black demons", ItemID.BLACK_DEMON_MASK), BLACK_DRAGONS("Black dragons", ItemID.BLACK_DRAGON_MASK, "Baby black dragon"), + BLACK_KNIGHTS("Black Knights", ItemID.BLACK_FULL_HELM, "Black Knight"), BLOODVELD("Bloodveld", ItemID.BLOODVELD), BLUE_DRAGONS("Blue dragons", ItemID.BLUE_DRAGON_MASK, "Baby blue dragon"), BRINE_RATS("Brine rats", ItemID.BRINE_RAT), @@ -137,6 +138,7 @@ enum Task NECHRYAEL("Nechryael", ItemID.NECHRYAEL, "Nechryarch"), OGRES("Ogres", ItemID.ENSOULED_OGRE_HEAD), OTHERWORLDLY_BEING("Otherworldly beings", ItemID.GHOSTLY_HOOD), + PIRATES("Pirates", ItemID.PIRATE_HAT, "Pirate"), PYREFIENDS("Pyrefiends", ItemID.PYREFIEND, "Flaming pyrelord"), RATS("Rats", ItemID.RATS_TAIL), RED_DRAGONS("Red dragons", ItemID.BABY_RED_DRAGON, "Baby red dragon"), From d2c72d6cbe08f55986e98388478b2302ee437718 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 8 Sep 2020 23:40:52 -0400 Subject: [PATCH 05/10] core overlay: cleanup Avoid checking config if there is no core npc --- .../runelite/client/plugins/corp/CoreOverlay.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java index 066a641328..7dc5ec8033 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CoreOverlay.java @@ -29,7 +29,6 @@ import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Polygon; import javax.inject.Inject; -import net.runelite.api.Client; import net.runelite.api.NPC; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; @@ -38,16 +37,14 @@ import net.runelite.client.ui.overlay.OverlayUtil; class CoreOverlay extends Overlay { - private final Client client; private final CorpPlugin corpPlugin; private final CorpConfig config; @Inject - private CoreOverlay(Client client, CorpPlugin corpPlugin, CorpConfig corpConfig) + private CoreOverlay(CorpPlugin corpPlugin, CorpConfig corpConfig) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_SCENE); - this.client = client; this.corpPlugin = corpPlugin; this.config = corpConfig; } @@ -55,13 +52,8 @@ class CoreOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (!config.markDarkCore()) - { - return null; - } - NPC core = corpPlugin.getCore(); - if (core != null) + if (core != null && config.markDarkCore()) { Polygon canvasTilePoly = core.getCanvasTilePoly(); if (canvasTilePoly != null) From 01447e52a70cdd10bfa7db96946ef7b43afbf149 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 9 Sep 2020 10:37:32 -0400 Subject: [PATCH 06/10] timers: consolidate teleblock timers --- .../client/plugins/timers/GameTimer.java | 9 +-- .../client/plugins/timers/TimersPlugin.java | 58 ++++------------- .../plugins/timers/TimersPluginTest.java | 64 +++++++++++++------ 3 files changed, 59 insertions(+), 72 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java index 2bbdae61d6..a751b7f3f9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/GameTimer.java @@ -46,12 +46,6 @@ enum GameTimer OVERLOAD(ItemID.OVERLOAD_4, GameTimerImageType.ITEM, "Overload", 5, ChronoUnit.MINUTES, true), CANNON(ItemID.CANNON_BARRELS, GameTimerImageType.ITEM, "Cannon", 25, ChronoUnit.MINUTES), MAGICIMBUE(SpriteID.SPELL_MAGIC_IMBUE, GameTimerImageType.SPRITE, "Magic imbue", 21, GAME_TICKS), - FULLTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Full Teleblock", 5, ChronoUnit.MINUTES, true), - HALFTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Half Teleblock", 150, ChronoUnit.SECONDS, true), - DMM_FULLTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Deadman Mode Full Teleblock", 150, ChronoUnit.SECONDS, true), - DMM_HALFTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Deadman Mode Half Teleblock", 75, ChronoUnit.SECONDS, true), - MAGE_ARENA_FULLTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Mage Arena 2 Full Teleblock", 2, ChronoUnit.MINUTES, true), - MAGE_ARENA_HALFTB(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Mage Arena 2 Half Teleblock", 1, ChronoUnit.MINUTES, true), SUPERANTIFIRE(ItemID.SUPER_ANTIFIRE_POTION4, GameTimerImageType.ITEM, "Super antifire", 3, ChronoUnit.MINUTES), BIND(SpriteID.SPELL_BIND, GameTimerImageType.SPRITE, "Bind", GraphicID.BIND, 8, GAME_TICKS, true), SNARE(SpriteID.SPELL_SNARE, GameTimerImageType.SPRITE, "Snare", GraphicID.SNARE, 16, GAME_TICKS, true), @@ -81,7 +75,8 @@ enum GameTimer DIVINE_BASTION(ItemID.DIVINE_BASTION_POTION4, GameTimerImageType.ITEM, "Divine Bastion", 5, ChronoUnit.MINUTES), DIVINE_BATTLEMAGE(ItemID.DIVINE_BATTLEMAGE_POTION4, GameTimerImageType.ITEM, "Divine Battlemage", 5, ChronoUnit.MINUTES), ANTIPOISON(ItemID.ANTIPOISON4, GameTimerImageType.ITEM, "Antipoison", false), - ANTIVENOM(ItemID.ANTIVENOM4, GameTimerImageType.ITEM, "Anti-venom", false); + ANTIVENOM(ItemID.ANTIVENOM4, GameTimerImageType.ITEM, "Anti-venom", false), + TELEBLOCK(SpriteID.SPELL_TELE_BLOCK, GameTimerImageType.SPRITE, "Teleblock", true); @Nullable private final Duration duration; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index 243250b880..dcf01d3daf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -114,11 +114,7 @@ public class TimersPlugin extends Plugin private static final String PRAYER_ENHANCE_EXPIRED = "Your prayer enhance effect has worn off."; private static final String ENDURANCE_EFFECT_MESSAGE = "Your Ring of endurance doubles the duration of your stamina potion's effect."; - private static final Pattern DEADMAN_HALF_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you by (.+)\\. It will expire in 1 minute, 15 seconds\\."); - private static final Pattern FULL_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you by (.+)\\. It will expire in 5 minutes\\."); - private static final Pattern HALF_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you by (.+)\\. It will expire in 2 minutes, 30 seconds\\."); - private static final Pattern MAGE_ARENA_FULL_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you\\. It will expire in 2 minutes\\."); - private static final Pattern MAGE_ARENA_HALF_TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you\\. It will expire in 1 minute\\."); + private static final Pattern TELEBLOCK_PATTERN = Pattern.compile("A Tele Block spell has been cast on you(?: by .+)?\\. It will expire in (?\\d+) minutes?(?:, (?\\d+) seconds?)?\\."); private static final Pattern DIVINE_POTION_PATTERN = Pattern.compile("You drink some of your divine (.+) potion\\."); private static final int VENOM_VALUE_CUTOFF = -40; // Antivenom < -40 <= Antipoison < 0 private static final int POISON_TICK_LENGTH = 30; @@ -239,7 +235,7 @@ public class TimersPlugin extends Plugin && inWilderness == 0) { log.debug("Left wilderness in non-PVP world, clearing Teleblock timer."); - removeTbTimers(); + removeGameTimer(TELEBLOCK); } lastWildernessVarb = inWilderness; @@ -366,7 +362,7 @@ public class TimersPlugin extends Plugin if (!config.showTeleblock()) { - removeTbTimers(); + removeGameTimer(TELEBLOCK); } if (!config.showFreezes()) @@ -542,36 +538,18 @@ public class TimersPlugin extends Plugin if (config.showTeleblock()) { - if (FULL_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) + Matcher m = TELEBLOCK_PATTERN.matcher(event.getMessage()); + if (m.find()) { - createGameTimer(FULLTB); - } - else if (HALF_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) - { - if (client.getWorldType().contains(WorldType.DEADMAN)) - { - createGameTimer(DMM_FULLTB); - } - else - { - createGameTimer(HALFTB); - } - } - else if (DEADMAN_HALF_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) - { - createGameTimer(DMM_HALFTB); - } - else if (MAGE_ARENA_FULL_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) - { - createGameTimer(MAGE_ARENA_FULLTB); - } - else if (MAGE_ARENA_HALF_TELEBLOCK_PATTERN.matcher(event.getMessage()).find()) - { - createGameTimer(MAGE_ARENA_HALFTB); + String minss = m.group("mins"); + String secss = m.group("secs"); + int mins = Integer.parseInt(minss); + int secs = secss != null ? Integer.parseInt(secss) : 0; + createGameTimer(TELEBLOCK, Duration.ofSeconds(mins * 60 + secs)); } else if (event.getMessage().contains(KILLED_TELEBLOCK_OPPONENT_TEXT)) { - removeTbTimers(); + removeGameTimer(TELEBLOCK); } } @@ -785,7 +763,7 @@ public class TimersPlugin extends Plugin if (widget != null && !widget.isSelfHidden()) { log.debug("Entered safe zone in PVP world, clearing Teleblock timer."); - removeTbTimers(); + removeGameTimer(TELEBLOCK); } } @@ -812,7 +790,7 @@ public class TimersPlugin extends Plugin } removeTzhaarTimer(); // will be readded by the wave message - removeTbTimers(); + removeGameTimer(TELEBLOCK); break; case LOGGED_IN: loggedInRace = true; @@ -1074,14 +1052,4 @@ public class TimersPlugin extends Plugin { infoBoxManager.removeIf(t -> t instanceof IndicatorIndicator && ((IndicatorIndicator) t).getIndicator() == indicator); } - - private void removeTbTimers() - { - removeGameTimer(FULLTB); - removeGameTimer(HALFTB); - removeGameTimer(DMM_FULLTB); - removeGameTimer(DMM_HALFTB); - removeGameTimer(MAGE_ARENA_FULLTB); - removeGameTimer(MAGE_ARENA_HALFTB); - } } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/timers/TimersPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/timers/TimersPluginTest.java index bddcee697a..494db7bd9d 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/timers/TimersPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/timers/TimersPluginTest.java @@ -30,12 +30,10 @@ import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; import java.time.Duration; import java.time.Instant; -import java.util.EnumSet; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.InventoryID; import net.runelite.api.ItemContainer; -import net.runelite.api.WorldType; import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ItemContainerChanged; import net.runelite.client.game.ItemManager; @@ -65,11 +63,6 @@ import org.mockito.stubbing.Answer; @RunWith(MockitoJUnitRunner.class) public class TimersPluginTest { - private static final String DMM_HALF_TELEBLOCK_MESSAGE = "A Tele Block spell has been cast on you by Runelite. It will expire in 1 minute, 15 seconds."; - private static final String FULL_TELEBLOCK_MESSAGE = "A Tele Block spell has been cast on you by Runelite. It will expire in 5 minutes."; - private static final String HALF_TELEBLOCK_MESSAGE = "A Tele Block spell has been cast on you by Runelite. It will expire in 2 minutes, 30 seconds."; - private static final String TRANSPARENT_CHATBOX_FULL_TELEBLOCK_MESSAGE = "A Tele Block spell has been cast on you by Alexsuperfly. It will expire in 5 minutes."; - private static final String TRANSPARENT_CHATBOX_TELEBLOCK_REMOVED_MESSAGE = "Your Tele Block has been removed because you killed Alexsuperfly."; private static final int FIGHT_CAVES_REGION_ID = 9551; @Inject @@ -105,54 +98,56 @@ public class TimersPluginTest public void testHalfTeleblock() { when(timersConfig.showTeleblock()).thenReturn(true); - when(client.getWorldType()).thenReturn(EnumSet.of(WorldType.MEMBERS)); - ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", HALF_TELEBLOCK_MESSAGE, "", 0); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you by Runelite. It will expire in 2 minutes, 30 seconds.", "", 0); timersPlugin.onChatMessage(chatMessage); ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); verify(infoBoxManager).addInfoBox(captor.capture()); TimerTimer infoBox = (TimerTimer) captor.getValue(); - assertEquals(GameTimer.HALFTB, infoBox.getTimer()); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofSeconds(2 * 60 + 30), infoBox.getDuration()); } @Test public void testFullTeleblock() { when(timersConfig.showTeleblock()).thenReturn(true); - ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", FULL_TELEBLOCK_MESSAGE, "", 0); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you by Runelite. It will expire in 5 minutes.", "", 0); timersPlugin.onChatMessage(chatMessage); ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); verify(infoBoxManager).addInfoBox(captor.capture()); TimerTimer infoBox = (TimerTimer) captor.getValue(); - assertEquals(GameTimer.FULLTB, infoBox.getTimer()); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofMinutes(5), infoBox.getDuration()); } @Test public void testDmmHalfTb() { when(timersConfig.showTeleblock()).thenReturn(true); - ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", DMM_HALF_TELEBLOCK_MESSAGE, "", 0); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you by Runelite. It will expire in 1 minute, 15 seconds.", "", 0); timersPlugin.onChatMessage(chatMessage); ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); verify(infoBoxManager).addInfoBox(captor.capture()); TimerTimer infoBox = (TimerTimer) captor.getValue(); - assertEquals(GameTimer.DMM_HALFTB, infoBox.getTimer()); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofSeconds(60 + 15), infoBox.getDuration()); } @Test public void testDmmFullTb() { when(timersConfig.showTeleblock()).thenReturn(true); - when(client.getWorldType()).thenReturn(EnumSet.of(WorldType.DEADMAN)); - ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", HALF_TELEBLOCK_MESSAGE, "", 0); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you by Runelite. It will expire in 2 minutes, 30 seconds.", "", 0); timersPlugin.onChatMessage(chatMessage); ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); verify(infoBoxManager).addInfoBox(captor.capture()); TimerTimer infoBox = (TimerTimer) captor.getValue(); - assertEquals(GameTimer.DMM_FULLTB, infoBox.getTimer()); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofSeconds(60 * 2 + 30), infoBox.getDuration()); } @Test @@ -185,25 +180,54 @@ public class TimersPluginTest public void testTransparentChatboxTb() { when(timersConfig.showTeleblock()).thenReturn(true); - ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", TRANSPARENT_CHATBOX_FULL_TELEBLOCK_MESSAGE, "", 0); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you by Alexsuperfly. It will expire in 5 minutes.", "", 0); timersPlugin.onChatMessage(chatMessage); ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); verify(infoBoxManager).addInfoBox(captor.capture()); TimerTimer infoBox = (TimerTimer) captor.getValue(); - assertEquals(GameTimer.FULLTB, infoBox.getTimer()); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofMinutes(5), infoBox.getDuration()); } @Test public void testTransparentChatboxTbRemoved() { when(timersConfig.showTeleblock()).thenReturn(true); - ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", TRANSPARENT_CHATBOX_TELEBLOCK_REMOVED_MESSAGE, "", 0); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "Your Tele Block has been removed because you killed Alexsuperfly.", "", 0); timersPlugin.onChatMessage(chatMessage); verify(infoBoxManager, atLeastOnce()).removeIf(any()); } + @Test + public void testMageArena2TbFull() + { + when(timersConfig.showTeleblock()).thenReturn(true); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you. It will expire in 2 minutes.", "", 0); + timersPlugin.onChatMessage(chatMessage); + + ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); + verify(infoBoxManager).addInfoBox(captor.capture()); + TimerTimer infoBox = (TimerTimer) captor.getValue(); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofMinutes(2), infoBox.getDuration()); + } + + @Test + public void testMageArena2TbHalf() + { + when(timersConfig.showTeleblock()).thenReturn(true); + ChatMessage chatMessage = new ChatMessage(null, ChatMessageType.SPAM, "", "A Tele Block spell has been cast on you. It will expire in 1 minute.", "", 0); + timersPlugin.onChatMessage(chatMessage); + + ArgumentCaptor captor = ArgumentCaptor.forClass(InfoBox.class); + verify(infoBoxManager).addInfoBox(captor.capture()); + TimerTimer infoBox = (TimerTimer) captor.getValue(); + assertEquals(GameTimer.TELEBLOCK, infoBox.getTimer()); + assertEquals(Duration.ofMinutes(1), infoBox.getDuration()); + } + @Test public void testStamina() { From 0e583c378faf8337bd6ca8cc2fc12e1940b0738d Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Thu, 10 Sep 2020 10:32:49 +0000 Subject: [PATCH 07/10] Update Item IDs to 2020-09-10-rev191 --- runelite-api/src/main/java/net/runelite/api/ItemID.java | 5 ++++- runelite-api/src/main/java/net/runelite/api/NullItemID.java | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) 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 4602e547ab..5834f3f735 100644 --- a/runelite-api/src/main/java/net/runelite/api/ItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java @@ -6118,7 +6118,7 @@ public final class ItemID public static final int MAGICAL_CAPE_RACK = 9822; public static final int OAK_COSTUME_BOX = 9823; public static final int TEAK_COSTUME_BOX = 9824; - public static final int MAHOGANY_COS_BOX = 9825; + public static final int MAHOGANY_COSTUME_BOX = 9825; public static final int OAK_ARMOUR_CASE = 9826; public static final int TEAK_ARMOUR_CASE = 9827; public static final int MAHOGANY_ARMOUR_CASE = 9828; @@ -11469,5 +11469,8 @@ public final class ItemID public static final int WAXWOOD_LOG = 24938; public static final int WAXWOOD_PLANK = 24939; public static final int MARLOS_CRATE = 24940; + public static final int BP_OBJ = 24941; + public static final int REINFORCED_GOGGLES = 24942; + public static final int SOURHOG_FOOT = 24944; /* This file is automatically generated. Do not edit. */ } 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 1588dfd749..a41a2c6c30 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java @@ -13261,5 +13261,6 @@ public final class NullItemID public static final int NULL_24879 = 24879; public static final int NULL_24881 = 24881; public static final int NULL_24883 = 24883; + public static final int NULL_24943 = 24943; /* This file is automatically generated. Do not edit. */ } From 84110c84f0574cd961f3ce901e51a2c87addccfa Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Thu, 10 Sep 2020 10:32:50 +0000 Subject: [PATCH 08/10] Update Object IDs to 2020-09-10-rev191 --- .../java/net/runelite/api/NullObjectID.java | 28 +++++++++++++++++++ .../main/java/net/runelite/api/ObjectID.java | 20 +++++++++++++ 2 files changed, 48 insertions(+) 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 680e222b92..5416c14951 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullObjectID.java @@ -19691,5 +19691,33 @@ public final class NullObjectID public static final int NULL_40304 = 40304; public static final int NULL_40305 = 40305; public static final int NULL_40306 = 40306; + public static final int NULL_40322 = 40322; + public static final int NULL_40326 = 40326; + public static final int NULL_40327 = 40327; + public static final int NULL_40328 = 40328; + public static final int NULL_40329 = 40329; + public static final int NULL_40332 = 40332; + public static final int NULL_40333 = 40333; + public static final int NULL_40334 = 40334; + public static final int NULL_40335 = 40335; + public static final int NULL_40336 = 40336; + public static final int NULL_40337 = 40337; + public static final int NULL_40338 = 40338; + public static final int NULL_40339 = 40339; + public static final int NULL_40340 = 40340; + public static final int NULL_40341 = 40341; + public static final int NULL_40342 = 40342; + public static final int NULL_40343 = 40343; + public static final int NULL_40344 = 40344; + public static final int NULL_40345 = 40345; + public static final int NULL_40346 = 40346; + public static final int NULL_40347 = 40347; + public static final int NULL_40348 = 40348; + public static final int NULL_40349 = 40349; + public static final int NULL_40350 = 40350; + public static final int NULL_40351 = 40351; + public static final int NULL_40352 = 40352; + public static final int NULL_40353 = 40353; + public static final int NULL_40354 = 40354; /* 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 25b93a76f6..49d79afafc 100644 --- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java +++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java @@ -20602,5 +20602,25 @@ public final class ObjectID public static final int DRAWERS_40282 = 40282; public static final int DRAWERS_40283 = 40283; public static final int BOXES_40284 = 40284; + public static final int NOTICE_BOARD_40307 = 40307; + public static final int STRANGE_HOLE_40308 = 40308; + public static final int STRANGE_HOLE_40309 = 40309; + public static final int CABBAGE_40310 = 40310; + public static final int POTATOES_40311 = 40311; + public static final int CARROT = 40312; + public static final int BROKEN_DEAD_TREE = 40313; + public static final int DAMAGED_CART = 40314; + public static final int FALLEN_TREE_40315 = 40315; + public static final int DEAD_SOURHOG = 40316; + public static final int DEAD_SOURHOG_40317 = 40317; + public static final int DEAD_SOURHOG_40318 = 40318; + public static final int DEAD_SOURHOG_40319 = 40319; + public static final int SKELETON_40320 = 40320; + public static final int SKELETON_40321 = 40321; + public static final int SCRAWLED_NOTE = 40323; + public static final int PILE_OF_ROPE_40324 = 40324; + public static final int DOOR_40325 = 40325; + public static final int ROPE_40330 = 40330; + public static final int BLOCKAGE_40331 = 40331; /* This file is automatically generated. Do not edit. */ } From 4d303fbd52dcea3a734ca8609b58b514182b2649 Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Thu, 10 Sep 2020 10:32:50 +0000 Subject: [PATCH 09/10] Update NPC IDs to 2020-09-10-rev191 --- .../src/main/java/net/runelite/api/NpcID.java | 11 ++++++++++- .../src/main/java/net/runelite/api/NullNpcID.java | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) 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 9118a406d4..c873061a0a 100644 --- a/runelite-api/src/main/java/net/runelite/api/NpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java @@ -3026,7 +3026,6 @@ public final class NpcID public static final int WIZARD_3232 = 3232; public static final int LEECH = 3233; public static final int FERAL_VAMPYRE_3234 = 3234; - public static final int SPIDER_3235 = 3235; public static final int MIST = 3236; public static final int FERAL_VAMPYRE_3237 = 3237; public static final int VAMPYRIC_HOUND = 3238; @@ -8817,5 +8816,15 @@ public final class NpcID public static final int OLD_MAN_YARLO = 10425; public static final int OLD_MAN_YARLO_10426 = 10426; public static final int OLD_MAN_YARLO_10427 = 10427; + public static final int SPRIA = 10432; + public static final int SPRIA_10433 = 10433; + public static final int SPRIA_10434 = 10434; + public static final int SOURHOG = 10435; + public static final int SOURHOG_10436 = 10436; + public static final int PIG_THING = 10437; + public static final int ROSIE_10438 = 10438; + public static final int SHEEPDOG_10439 = 10439; + public static final int SPIDER_10442 = 10442; + public static final int SPIDER_10443 = 10443; /* 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 bf0f8d0f2a..5773e6680e 100644 --- a/runelite-api/src/main/java/net/runelite/api/NullNpcID.java +++ b/runelite-api/src/main/java/net/runelite/api/NullNpcID.java @@ -1597,5 +1597,7 @@ public final class NullNpcID public static final int NULL_10429 = 10429; public static final int NULL_10430 = 10430; public static final int NULL_10431 = 10431; + public static final int NULL_10440 = 10440; + public static final int NULL_10441 = 10441; /* This file is automatically generated. Do not edit. */ } From d2b361dabb211a7b39dc3bac1cd095f26365616d Mon Sep 17 00:00:00 2001 From: RuneLite Cache-Code Autoupdater Date: Thu, 10 Sep 2020 10:32:53 +0000 Subject: [PATCH 10/10] Update Widget IDs to 2020-09-10-rev191 --- .../src/main/java/net/runelite/api/widgets/WidgetID.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 6551e1799d..5463211ca9 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 @@ -907,7 +907,7 @@ public class WidgetID static class GenericScroll { - static final int TEXT = 6; + static final int TEXT = 7; } static class GauntletTimer