diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java index 705b53e01d..df88962cec 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/Boss.java @@ -25,43 +25,39 @@ */ package net.runelite.client.plugins.bosstimer; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.InputStream; import java.time.Duration; import java.time.temporal.ChronoUnit; import java.util.HashMap; import java.util.Map; -import javax.imageio.ImageIO; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.ItemID; @Slf4j enum Boss { - GENERAL_GRAARDOR("General Graardor", 90, ChronoUnit.SECONDS, "bando"), - KRIL_TSUTSAROTH("K'ril Tsutsaroth", 90, ChronoUnit.SECONDS, "zammy"), - KREEARRA("Kree'arra", 90, ChronoUnit.SECONDS, "arma"), - COMMANDER_ZILYANA("Commander Zilyana", 90, ChronoUnit.SECONDS, "sara"), - CALLISTO("Callisto", 30, ChronoUnit.SECONDS, "callisto"), - CHAOS_FANATIC("Chaos fanatic", 30, ChronoUnit.SECONDS, "chaos_fanatic"), - CRAZY_ARCHAEOLOGIST("Crazy archaeologist", 30, ChronoUnit.SECONDS, "crazy_arch"), - KING_BLACK_DRAGON("King Black Dragon", 10, ChronoUnit.SECONDS, "kbd"), - SCORPIA("Scorpia", 10, ChronoUnit.SECONDS, "scorpia"), - VENENATIS("Venenatis", 30, ChronoUnit.SECONDS, "venenatis"), - VETION("Vet'ion", 30, ChronoUnit.SECONDS, "vetion"), - DAGANNOTH_PRIME("Dagannoth Prime", 90, ChronoUnit.SECONDS, "prime"), - DAGANNOTH_REX("Dagannoth Rex", 90, ChronoUnit.SECONDS, "rex"), - DAGANNOTH_SUPREME("Dagannoth Supreme", 90, ChronoUnit.SECONDS, "supreme"), - CORPOREAL_BEAST("Corporeal Beast", 30, ChronoUnit.SECONDS, "corp"), - GIANT_MOLE("Giant Mole", 10, ChronoUnit.SECONDS, "mole"); + GENERAL_GRAARDOR("General Graardor", 90, ChronoUnit.SECONDS, ItemID.PET_GENERAL_GRAARDOR), + KRIL_TSUTSAROTH("K'ril Tsutsaroth", 90, ChronoUnit.SECONDS, ItemID.PET_KRIL_TSUTSAROTH), + KREEARRA("Kree'arra", 90, ChronoUnit.SECONDS, ItemID.PET_KREEARRA), + COMMANDER_ZILYANA("Commander Zilyana", 90, ChronoUnit.SECONDS, ItemID.PET_ZILYANA), + CALLISTO("Callisto", 30, ChronoUnit.SECONDS, ItemID.CALLISTO_CUB), + CHAOS_ELEMENTAL("Chaos Elemental", 150, ChronoUnit.SECONDS, ItemID.PET_CHAOS_ELEMENTAL), + CHAOS_FANATIC("Chaos fanatic", 30, ChronoUnit.SECONDS, ItemID.ANCIENT_STAFF), + CRAZY_ARCHAEOLOGIST("Crazy archaeologist", 30, ChronoUnit.SECONDS, ItemID.FEDORA), + KING_BLACK_DRAGON("King Black Dragon", 10, ChronoUnit.SECONDS, ItemID.PRINCE_BLACK_DRAGON), + SCORPIA("Scorpia", 10, ChronoUnit.SECONDS, ItemID.SCORPIAS_OFFSPRING), + VENENATIS("Venenatis", 30, ChronoUnit.SECONDS, ItemID.VENENATIS_SPIDERLING), + VETION("Vet'ion", 30, ChronoUnit.SECONDS, ItemID.VETION_JR), + DAGANNOTH_PRIME("Dagannoth Prime", 90, ChronoUnit.SECONDS, ItemID.PET_DAGANNOTH_PRIME), + DAGANNOTH_REX("Dagannoth Rex", 90, ChronoUnit.SECONDS, ItemID.PET_DAGANNOTH_REX), + DAGANNOTH_SUPREME("Dagannoth Supreme", 90, ChronoUnit.SECONDS, ItemID.PET_DAGANNOTH_SUPREME), + CORPOREAL_BEAST("Corporeal Beast", 30, ChronoUnit.SECONDS, ItemID.PET_DARK_CORE), + GIANT_MOLE("Giant Mole", 10, ChronoUnit.SECONDS, ItemID.BABY_MOLE); private static final Map bosses = new HashMap<>(); private final String name; private final Duration spawnTime; - private final String imageResource; - - private BufferedImage image; + private final int itemSpriteId; static { @@ -71,11 +67,11 @@ enum Boss } } - private Boss(String name, long period, ChronoUnit unit, String imageResource) + private Boss(String name, long period, ChronoUnit unit, int itemSpriteId) { this.name = name; this.spawnTime = Duration.of(period, unit); - this.imageResource = imageResource; + this.itemSpriteId = itemSpriteId; } public String getName() @@ -88,24 +84,9 @@ enum Boss return spawnTime; } - public BufferedImage getImage() + public int getItemSpriteId() { - if (image != null) - { - return image; - } - - InputStream in = Boss.class.getResourceAsStream(imageResource + ".png"); - try - { - image = ImageIO.read(in); - } - catch (IOException ex) - { - log.warn("unable to load image", ex); - } - - return image; + return itemSpriteId; } public static Boss find(String name) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java index 059c82df7a..33fccbcebd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java @@ -30,6 +30,7 @@ import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Actor; import net.runelite.api.events.ActorDeath; +import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @@ -43,6 +44,9 @@ public class BossTimersPlugin extends Plugin @Inject private InfoBoxManager infoBoxManager; + @Inject + private ItemManager itemManager; + @Override protected void shutDown() throws Exception { @@ -65,7 +69,8 @@ public class BossTimersPlugin extends Plugin log.debug("Creating spawn timer for {} ({} seconds)", actor.getName(), boss.getSpawnTime()); - RespawnTimer timer = new RespawnTimer(boss); + RespawnTimer timer = new RespawnTimer(boss, itemManager.getImage(boss.getItemSpriteId())); + timer.setTooltip(boss.getName()); infoBoxManager.addInfoBox(timer); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/RespawnTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/RespawnTimer.java index dada89bf64..171af048fe 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/RespawnTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/RespawnTimer.java @@ -24,6 +24,7 @@ */ package net.runelite.client.plugins.bosstimer; +import java.awt.image.BufferedImage; import java.time.temporal.ChronoUnit; import net.runelite.client.ui.overlay.infobox.Timer; @@ -31,9 +32,9 @@ class RespawnTimer extends Timer { private final Boss boss; - public RespawnTimer(Boss boss) + public RespawnTimer(Boss boss, BufferedImage bossImage) { - super(boss.getSpawnTime().toMillis(), ChronoUnit.MILLIS, boss.getImage()); + super(boss.getSpawnTime().toMillis(), ChronoUnit.MILLIS, bossImage); this.boss = boss; } diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/arma.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/arma.png deleted file mode 100644 index 70641a16e1..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/arma.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/bando.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/bando.png deleted file mode 100644 index 67658d0b9c..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/bando.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/callisto.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/callisto.png deleted file mode 100644 index be8bd333fe..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/callisto.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/chaos_fanatic.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/chaos_fanatic.png deleted file mode 100644 index 4349fd54cb..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/chaos_fanatic.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/corp.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/corp.png deleted file mode 100644 index 31dc8e8205..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/corp.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/crazy_arch.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/crazy_arch.png deleted file mode 100644 index 7d5b3d8285..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/crazy_arch.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/kbd.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/kbd.png deleted file mode 100644 index 8c64072152..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/kbd.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/mole.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/mole.png deleted file mode 100644 index a2e51a3940..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/mole.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/prime.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/prime.png deleted file mode 100644 index a9329fd4e0..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/prime.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/rex.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/rex.png deleted file mode 100644 index 852424603e..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/rex.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/sara.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/sara.png deleted file mode 100644 index 3e36b98968..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/sara.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/scorpia.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/scorpia.png deleted file mode 100644 index ba29fb8477..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/scorpia.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/supreme.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/supreme.png deleted file mode 100644 index 7da59c1d10..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/supreme.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/venenatis.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/venenatis.png deleted file mode 100644 index 491cde1215..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/venenatis.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/vetion.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/vetion.png deleted file mode 100644 index 2599d4d7a7..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/vetion.png and /dev/null differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/zammy.png b/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/zammy.png deleted file mode 100644 index 06d4c27d33..0000000000 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/bosstimer/zammy.png and /dev/null differ