grounditems: highlight herblore / prayer ground items (#1534)
grounditems: highlight herblore / prayer ground items Disabled by default
This commit is contained in:
@@ -639,4 +639,65 @@ public interface GroundItemsConfig extends Config
|
||||
{
|
||||
return new Color(0, 0, 0, 150);
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "xpStub",
|
||||
name = "XP",
|
||||
description = "Highlights various items that give xp",
|
||||
position = 50
|
||||
)
|
||||
default Stub xpStub()
|
||||
{
|
||||
return new Stub();
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "highlightHerblore",
|
||||
name = "Highlight Herblore xp",
|
||||
description = "Highlight Herblore xp related items.",
|
||||
position = 51,
|
||||
parent = "xpStub"
|
||||
)
|
||||
default boolean highlightHerblore()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "herbloreColor",
|
||||
name = "Herblore Color",
|
||||
description = "Color of Herblore xp items.",
|
||||
position = 52,
|
||||
parent = "xpStub"
|
||||
)
|
||||
@Alpha
|
||||
default Color herbloreColor()
|
||||
{
|
||||
return Color.GREEN.darker();
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "highlightPrayer",
|
||||
name = "Highlight Prayer xp",
|
||||
description = "Highlight Prayer xp related items.",
|
||||
position = 53,
|
||||
parent = "xpStub"
|
||||
)
|
||||
default boolean highlightPrayer()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "prayerColor",
|
||||
name = "Prayer Color",
|
||||
description = "Color of Prayer xp items.",
|
||||
position = 54,
|
||||
parent = "xpStub"
|
||||
)
|
||||
@Alpha
|
||||
default Color prayerColor()
|
||||
{
|
||||
return Color.YELLOW;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,10 +36,10 @@ import java.time.Instant;
|
||||
import java.util.AbstractMap.SimpleEntry;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import net.runelite.api.Client;
|
||||
@@ -195,7 +195,37 @@ public class GroundItemsOverlay extends Overlay
|
||||
continue;
|
||||
}
|
||||
|
||||
final Color highlighted = plugin.getHighlighted(item.getName(), item.getGePrice(), item.getHaPrice());
|
||||
Color highlighted = null;
|
||||
|
||||
//Process skill items
|
||||
if (!plugin.hiddenItems.getUnchecked(item.getName()))
|
||||
{
|
||||
highlighted = plugin.getDefaultColor();
|
||||
if (plugin.highlightHerblore)
|
||||
{
|
||||
if (GroundItemsPlugin.herbloreItems.contains(item.getId()))
|
||||
{
|
||||
highlighted = plugin.getHerbloreColor();
|
||||
}
|
||||
}
|
||||
if (plugin.highlightPrayer)
|
||||
{
|
||||
if (GroundItemsPlugin.prayerItems.contains(item.getId()))
|
||||
{
|
||||
highlighted = plugin.getPrayerColor();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Value overrides skill
|
||||
if (plugin.getHighlighted(item.getName(), item.getGePrice(), item.getHaPrice()) != null)
|
||||
{
|
||||
if (plugin.getHighlighted(item.getName(), item.getGePrice(), item.getHaPrice()).getRGB() != highlighted.getRGB())
|
||||
{
|
||||
highlighted = plugin.getHighlighted(item.getName(), item.getGePrice(), item.getHaPrice());
|
||||
}
|
||||
}
|
||||
|
||||
final Color hidden = plugin.getHidden(item.getName(), item.getGePrice(), item.getHaPrice(), item.isTradeable());
|
||||
|
||||
if (highlighted == null && !plugin.isHotKeyPressed())
|
||||
@@ -280,8 +310,8 @@ public class GroundItemsOverlay extends Overlay
|
||||
if (item.getTicks() > 0 && plugin.isShowTimer())
|
||||
{
|
||||
itemStringBuilder
|
||||
.append(" - ")
|
||||
.append(item.getTicks());
|
||||
.append(" - ")
|
||||
.append(item.getTicks());
|
||||
}
|
||||
|
||||
final String itemString = itemStringBuilder.toString();
|
||||
|
||||
@@ -28,6 +28,7 @@ package net.runelite.client.plugins.grounditems;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.collect.EvictingQueue;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.inject.Provides;
|
||||
import java.awt.Color;
|
||||
import java.awt.Rectangle;
|
||||
@@ -56,14 +57,15 @@ import net.runelite.api.Client;
|
||||
import net.runelite.api.GameState;
|
||||
import net.runelite.api.ItemDefinition;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.MenuOpcode;
|
||||
import net.runelite.api.TileItemPile;
|
||||
import static net.runelite.api.ItemID.*;
|
||||
import net.runelite.api.MenuEntry;
|
||||
import net.runelite.api.MenuOpcode;
|
||||
import net.runelite.api.Node;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.Scene;
|
||||
import net.runelite.api.Tile;
|
||||
import net.runelite.api.TileItem;
|
||||
import net.runelite.api.TileItemPile;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.events.ClientTick;
|
||||
import net.runelite.api.events.ConfigChanged;
|
||||
@@ -75,6 +77,7 @@ import net.runelite.api.events.ItemQuantityChanged;
|
||||
import net.runelite.api.events.ItemSpawned;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.api.events.MenuOptionClicked;
|
||||
import net.runelite.api.util.Text;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
@@ -98,7 +101,6 @@ import net.runelite.client.plugins.grounditems.config.ValueCalculationMode;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.util.StackFormatter;
|
||||
import net.runelite.api.util.Text;
|
||||
|
||||
@PluginDescriptor(
|
||||
name = "Ground Items",
|
||||
@@ -134,6 +136,256 @@ public class GroundItemsPlugin extends Plugin
|
||||
private static final int CAST_ON_ITEM = MenuOpcode.SPELL_CAST_ON_GROUND_ITEM.getId();
|
||||
private static final String TELEGRAB_TEXT = ColorUtil.wrapWithColorTag("Telekinetic Grab", Color.GREEN) + ColorUtil.prependColorTag(" -> ", Color.WHITE);
|
||||
private final Map<Integer, Color> priceChecks = new LinkedHashMap<>();
|
||||
private final Queue<Integer> droppedItemQueue = EvictingQueue.create(16); // recently dropped items
|
||||
boolean highlightHerblore;
|
||||
boolean highlightPrayer;
|
||||
LoadingCache<String, Boolean> hiddenItems;
|
||||
static final ImmutableSet<Integer> herbloreItems = ImmutableSet.of
|
||||
(
|
||||
//Grimy Herbs
|
||||
GRIMY_GUAM_LEAF,
|
||||
GRIMY_GUAM_LEAF + 1,
|
||||
GRIMY_MARRENTILL,
|
||||
GRIMY_MARRENTILL + 1,
|
||||
GRIMY_TARROMIN,
|
||||
GRIMY_TARROMIN + 1,
|
||||
GRIMY_HARRALANDER,
|
||||
GRIMY_HARRALANDER + 1,
|
||||
GRIMY_RANARR_WEED,
|
||||
GRIMY_RANARR_WEED + 1,
|
||||
GRIMY_TOADFLAX,
|
||||
GRIMY_TOADFLAX + 1,
|
||||
GRIMY_IRIT_LEAF,
|
||||
GRIMY_IRIT_LEAF + 1,
|
||||
GRIMY_AVANTOE,
|
||||
GRIMY_AVANTOE + 1,
|
||||
GRIMY_KWUARM,
|
||||
GRIMY_KWUARM + 1,
|
||||
GRIMY_SNAPDRAGON,
|
||||
GRIMY_SNAPDRAGON + 1,
|
||||
GRIMY_CADANTINE,
|
||||
GRIMY_CADANTINE + 1,
|
||||
GRIMY_LANTADYME,
|
||||
GRIMY_LANTADYME + 1,
|
||||
GRIMY_DWARF_WEED,
|
||||
GRIMY_DWARF_WEED + 1,
|
||||
GRIMY_TORSTOL,
|
||||
GRIMY_TORSTOL + 1,
|
||||
|
||||
//Clean Herbs
|
||||
GUAM_LEAF,
|
||||
GUAM_LEAF + 1,
|
||||
MARRENTILL,
|
||||
MARRENTILL + 1,
|
||||
TARROMIN,
|
||||
TARROMIN + 1,
|
||||
HARRALANDER,
|
||||
HARRALANDER + 1,
|
||||
RANARR_WEED,
|
||||
RANARR_WEED + 1,
|
||||
TOADFLAX,
|
||||
TOADFLAX + 1,
|
||||
IRIT_LEAF,
|
||||
IRIT_LEAF + 1,
|
||||
AVANTOE,
|
||||
AVANTOE + 1,
|
||||
KWUARM,
|
||||
KWUARM + 1,
|
||||
SNAPDRAGON,
|
||||
SNAPDRAGON + 1,
|
||||
CADANTINE,
|
||||
CADANTINE + 1,
|
||||
LANTADYME,
|
||||
LANTADYME + 1,
|
||||
DWARF_WEED,
|
||||
DWARF_WEED + 1,
|
||||
TORSTOL,
|
||||
TORSTOL + 1,
|
||||
|
||||
//Secondary ingredients
|
||||
EYE_OF_NEWT,
|
||||
EYE_OF_NEWT + 1,
|
||||
UNICORN_HORN,
|
||||
UNICORN_HORN + 1,
|
||||
UNICORN_HORN_DUST,
|
||||
UNICORN_HORN_DUST + 1,
|
||||
LIMPWURT_ROOT,
|
||||
LIMPWURT_ROOT + 1,
|
||||
RED_SPIDERS_EGGS,
|
||||
RED_SPIDERS_EGGS + 1,
|
||||
CHOCOLATE_BAR,
|
||||
CHOCOLATE_BAR + 1,
|
||||
CHOCOLATE_DUST,
|
||||
CHOCOLATE_DUST + 1,
|
||||
TOADS_LEGS,
|
||||
TOADS_LEGS + 1,
|
||||
GOAT_HORN_DUST,
|
||||
GOAT_HORN_DUST + 1,
|
||||
DESERT_GOAT_HORN,
|
||||
DESERT_GOAT_HORN + 1,
|
||||
SNAPE_GRASS,
|
||||
SNAPE_GRASS + 1,
|
||||
MORT_MYRE_FUNGUS,
|
||||
MORT_MYRE_FUNGUS + 1,
|
||||
WHITE_BERRIES,
|
||||
WHITE_BERRIES + 1,
|
||||
BLUE_DRAGON_SCALE,
|
||||
BLUE_DRAGON_SCALE + 1,
|
||||
DRAGON_SCALE_DUST,
|
||||
DRAGON_SCALE_DUST + 1,
|
||||
WINE_OF_ZAMORAK,
|
||||
WINE_OF_ZAMORAK + 1,
|
||||
POTATO_CACTUS,
|
||||
POTATO_CACTUS + 1,
|
||||
BIRD_NEST,
|
||||
BIRD_NEST + 1,
|
||||
BIRD_NEST_5071,
|
||||
BIRD_NEST_5072,
|
||||
BIRD_NEST_5073,
|
||||
BIRD_NEST_5074,
|
||||
BIRD_NEST_5075,
|
||||
BIRD_NEST_7413,
|
||||
BIRD_NEST_13653,
|
||||
BIRD_NEST_22798,
|
||||
BIRD_NEST_22800,
|
||||
LAVA_SCALE,
|
||||
LAVA_SCALE + 1,
|
||||
LAVA_SCALE_SHARD,
|
||||
LAVA_SCALE_SHARD + 1,
|
||||
TORSTOL,
|
||||
TORSTOL + 1,
|
||||
SUPERIOR_DRAGON_BONES,
|
||||
SUPERIOR_DRAGON_BONES + 1,
|
||||
CRUSHED_SUPERIOR_DRAGON_BONES,
|
||||
CRUSHED_SUPERIOR_DRAGON_BONES + 1,
|
||||
AMYLASE_CRYSTAL,
|
||||
GARLIC,
|
||||
GARLIC + 1,
|
||||
|
||||
//Jungle Potion herbs
|
||||
GRIMY_ARDRIGAL,
|
||||
GRIMY_ROGUES_PURSE,
|
||||
GRIMY_SITO_FOIL,
|
||||
GRIMY_SNAKE_WEED,
|
||||
GRIMY_VOLENCIA_MOSS,
|
||||
|
||||
//Herb seeds
|
||||
GUAM_SEED,
|
||||
MARRENTILL_SEED,
|
||||
TARROMIN_SEED,
|
||||
HARRALANDER_SEED,
|
||||
GOUT_TUBER,
|
||||
RANARR_SEED,
|
||||
TOADFLAX_SEED,
|
||||
IRIT_SEED,
|
||||
AVANTOE_SEED,
|
||||
KWUARM_SEED,
|
||||
SNAPDRAGON_SEED,
|
||||
CADANTINE_SEED,
|
||||
LANTADYME_SEED,
|
||||
DWARF_WEED_SEED,
|
||||
TORSTOL_SEED,
|
||||
|
||||
//Secondary seeds
|
||||
LIMPWURT_SEED,
|
||||
SNAPE_GRASS_SEED,
|
||||
POTATO_CACTUS_SEED,
|
||||
JANGERBERRY_SEED,
|
||||
POISON_IVY_SEED,
|
||||
BELLADONNA_SEED
|
||||
);
|
||||
static final ImmutableSet<Integer> prayerItems = ImmutableSet.of
|
||||
(
|
||||
//Bones
|
||||
BONES,
|
||||
BONES + 1,
|
||||
WOLF_BONES,
|
||||
WOLF_BONES + 1,
|
||||
BURNT_BONES,
|
||||
BURNT_BONES + 1,
|
||||
MONKEY_BONES,
|
||||
MONKEY_BONES + 1,
|
||||
BAT_BONES,
|
||||
BAT_BONES + 1,
|
||||
BIG_BONES,
|
||||
BIG_BONES + 1,
|
||||
JOGRE_BONES,
|
||||
JOGRE_BONES + 1,
|
||||
ZOGRE_BONES,
|
||||
ZOGRE_BONES + 1,
|
||||
SHAIKAHAN_BONES,
|
||||
SHAIKAHAN_BONES + 1,
|
||||
BABYDRAGON_BONES,
|
||||
BABYDRAGON_BONES + 1,
|
||||
WYRM_BONES,
|
||||
WYRM_BONES + 1,
|
||||
WYVERN_BONES,
|
||||
WYVERN_BONES + 1,
|
||||
DRAGON_BONES,
|
||||
DRAGON_BONES + 1,
|
||||
DRAKE_BONES,
|
||||
DRAKE_BONES + 1,
|
||||
FAYRG_BONES,
|
||||
FAYRG_BONES + 1,
|
||||
LAVA_DRAGON_BONES,
|
||||
LAVA_DRAGON_BONES + 1,
|
||||
RAURG_BONES,
|
||||
RAURG_BONES + 1,
|
||||
HYDRA_BONES,
|
||||
HYDRA_BONES + 1,
|
||||
DAGANNOTH_BONES,
|
||||
DAGANNOTH_BONES + 1,
|
||||
OURG_BONES,
|
||||
OURG_BONES + 1,
|
||||
SUPERIOR_DRAGON_BONES,
|
||||
SUPERIOR_DRAGON_BONES + 1,
|
||||
|
||||
//Ensouled heads
|
||||
ENSOULED_ABYSSAL_HEAD_13508,
|
||||
ENSOULED_ABYSSAL_HEAD_13508 + 1,
|
||||
ENSOULED_AVIANSIE_HEAD_13505,
|
||||
ENSOULED_AVIANSIE_HEAD_13505 + 1,
|
||||
ENSOULED_BEAR_HEAD_13463,
|
||||
ENSOULED_BEAR_HEAD_13463 + 1,
|
||||
ENSOULED_BLOODVELD_HEAD_13496,
|
||||
ENSOULED_BLOODVELD_HEAD_13496 + 1,
|
||||
ENSOULED_CHAOS_DRUID_HEAD_13472,
|
||||
ENSOULED_CHAOS_DRUID_HEAD_13472 + 1,
|
||||
ENSOULED_DAGANNOTH_HEAD_13493,
|
||||
ENSOULED_DAGANNOTH_HEAD_13493 + 1,
|
||||
ENSOULED_DEMON_HEAD_13502,
|
||||
ENSOULED_DEMON_HEAD_13502 + 1,
|
||||
ENSOULED_DOG_HEAD_13469,
|
||||
ENSOULED_DOG_HEAD_13469 + 1,
|
||||
ENSOULED_DRAGON_HEAD_13511,
|
||||
ENSOULED_DRAGON_HEAD_13511 + 1,
|
||||
ENSOULED_ELF_HEAD_13481,
|
||||
ENSOULED_ELF_HEAD_13481 + 1,
|
||||
ENSOULED_GIANT_HEAD_13475,
|
||||
ENSOULED_GIANT_HEAD_13475 + 1,
|
||||
ENSOULED_GOBLIN_HEAD_13448,
|
||||
ENSOULED_GOBLIN_HEAD_13448 + 1,
|
||||
ENSOULED_HORROR_HEAD_13487,
|
||||
ENSOULED_HORROR_HEAD_13487 + 1,
|
||||
ENSOULED_IMP_HEAD_13454,
|
||||
ENSOULED_IMP_HEAD_13454 + 1,
|
||||
ENSOULED_KALPHITE_HEAD_13490,
|
||||
ENSOULED_KALPHITE_HEAD_13490 + 1,
|
||||
ENSOULED_MINOTAUR_HEAD_13457,
|
||||
ENSOULED_MINOTAUR_HEAD_13457 + 1,
|
||||
ENSOULED_MONKEY_HEAD_13451,
|
||||
ENSOULED_MONKEY_HEAD_13451 + 1,
|
||||
ENSOULED_OGRE_HEAD_13478,
|
||||
ENSOULED_OGRE_HEAD_13478 + 1,
|
||||
ENSOULED_SCORPION_HEAD_13460,
|
||||
ENSOULED_SCORPION_HEAD_13460 + 1,
|
||||
ENSOULED_TROLL_HEAD_13484,
|
||||
ENSOULED_TROLL_HEAD_13484 + 1,
|
||||
ENSOULED_TZHAAR_HEAD_13499,
|
||||
ENSOULED_TZHAAR_HEAD_13499 + 1,
|
||||
ENSOULED_UNICORN_HEAD_13466,
|
||||
ENSOULED_UNICORN_HEAD_13466 + 1
|
||||
);
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private Map.Entry<Rectangle, GroundItem> textBoxBounds;
|
||||
@@ -172,9 +424,6 @@ public class GroundItemsPlugin extends Plugin
|
||||
@Inject
|
||||
private EventBus eventBus;
|
||||
private LoadingCache<String, Boolean> highlightedItems;
|
||||
private LoadingCache<String, Boolean> hiddenItems;
|
||||
private final Queue<Integer> droppedItemQueue = EvictingQueue.create(16); // recently dropped items
|
||||
|
||||
private Color defaultColor;
|
||||
private Color highlightedColor;
|
||||
private Color hiddenColor;
|
||||
@@ -225,6 +474,8 @@ public class GroundItemsPlugin extends Plugin
|
||||
private boolean showTimer;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
private Color bordercolor;
|
||||
private Color herbloreColor;
|
||||
private Color prayerColor;
|
||||
|
||||
@Provides
|
||||
GroundItemsConfig provideConfig(ConfigManager configManager)
|
||||
@@ -821,6 +1072,21 @@ public class GroundItemsPlugin extends Plugin
|
||||
this.getHighlightItems = Text.toCSV(highlightedItemSet);
|
||||
}
|
||||
|
||||
Color getHerbloreColor()
|
||||
{
|
||||
return herbloreColor;
|
||||
}
|
||||
|
||||
Color getPrayerColor()
|
||||
{
|
||||
return prayerColor;
|
||||
}
|
||||
|
||||
Color getDefaultColor()
|
||||
{
|
||||
return config.defaultColor();
|
||||
}
|
||||
|
||||
Color getHighlighted(String item, int gePrice, int haPrice)
|
||||
{
|
||||
if (TRUE.equals(highlightedItems.getUnchecked(item)))
|
||||
@@ -1022,5 +1288,9 @@ public class GroundItemsPlugin extends Plugin
|
||||
this.toggleOutline = config.toggleOutline();
|
||||
this.showTimer = config.showTimer();
|
||||
this.bordercolor = config.bordercolor();
|
||||
this.herbloreColor = config.herbloreColor();
|
||||
this.prayerColor = config.prayerColor();
|
||||
this.highlightHerblore = config.highlightHerblore();
|
||||
this.highlightPrayer = config.highlightPrayer();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user