From 06abbe6956eb599767bb0751cc5c37b942f88fe5 Mon Sep 17 00:00:00 2001 From: Seth Date: Thu, 22 Mar 2018 18:07:56 -0500 Subject: [PATCH 1/2] info boxes: associate plugins to infoboxes associate plugins to infoboxes and allow the infobox manager to sort boxes by plugin descriptor name to stop all infoboxes mixing together --- .../client/plugins/boosts/BoostIndicator.java | 5 ++-- .../client/plugins/boosts/BoostsOverlay.java | 2 +- .../plugins/bosstimer/BossTimersPlugin.java | 2 +- .../plugins/bosstimer/RespawnTimer.java | 5 ++-- .../client/plugins/cannon/CannonCounter.java | 2 +- .../kingdomofmiscellania/KingdomCounter.java | 2 +- .../nightmarezone/AbsorptionCounter.java | 5 ++-- .../nightmarezone/NightmareZoneOverlay.java | 2 +- .../client/plugins/raids/RaidsPlugin.java | 2 +- .../client/plugins/raids/RaidsTimer.java | 5 ++-- .../client/plugins/slayer/SlayerPlugin.java | 2 +- .../client/plugins/slayer/TaskCounter.java | 5 ++-- .../client/plugins/timers/TimerTimer.java | 5 ++-- .../client/plugins/timers/TimersPlugin.java | 2 +- .../client/ui/overlay/infobox/Counter.java | 5 ++-- .../client/ui/overlay/infobox/InfoBox.java | 8 +++++- .../ui/overlay/infobox/InfoBoxManager.java | 25 ++++++++++++++++++- .../client/ui/overlay/infobox/Timer.java | 5 ++-- 18 files changed, 63 insertions(+), 26 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java index 2f6ca2f17c..0a6afb5379 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java @@ -29,6 +29,7 @@ import java.awt.image.BufferedImage; import lombok.Getter; import net.runelite.api.Client; import net.runelite.api.Skill; +import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.InfoBox; public class BoostIndicator extends InfoBox @@ -39,9 +40,9 @@ public class BoostIndicator extends InfoBox @Getter private final Skill skill; - public BoostIndicator(Skill skill, BufferedImage image, Client client, BoostsConfig config) + public BoostIndicator(Skill skill, BufferedImage image, Plugin plugin, Client client, BoostsConfig config) { - super(image); + super(image, plugin); this.config = config; this.client = client; this.skill = skill; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java index 5cb96ede2b..6f7e46bbce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java @@ -96,7 +96,7 @@ class BoostsOverlay extends Overlay { if (indicator == null) { - indicator = new BoostIndicator(skill, iconManager.getSkillImage(skill), client, config); + indicator = new BoostIndicator(skill, iconManager.getSkillImage(skill), plugin, client, config); indicators[skill.ordinal()] = indicator; } 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 d92cf6e0d0..c974c647ae 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 @@ -69,7 +69,7 @@ public class BossTimersPlugin extends Plugin log.debug("Creating spawn timer for {} ({} seconds)", actor.getName(), boss.getSpawnTime()); - RespawnTimer timer = new RespawnTimer(boss, itemManager.getImage(boss.getItemSpriteId())); + RespawnTimer timer = new RespawnTimer(boss, itemManager.getImage(boss.getItemSpriteId()), this); 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 171af048fe..1d9d077f25 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 @@ -26,15 +26,16 @@ package net.runelite.client.plugins.bosstimer; import java.awt.image.BufferedImage; import java.time.temporal.ChronoUnit; +import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.Timer; class RespawnTimer extends Timer { private final Boss boss; - public RespawnTimer(Boss boss, BufferedImage bossImage) + public RespawnTimer(Boss boss, BufferedImage bossImage, Plugin plugin) { - super(boss.getSpawnTime().toMillis(), ChronoUnit.MILLIS, bossImage); + super(boss.getSpawnTime().toMillis(), ChronoUnit.MILLIS, bossImage, plugin); this.boss = boss; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java index 490601dab6..2db9d6f3e0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonCounter.java @@ -34,7 +34,7 @@ public class CannonCounter extends Counter public CannonCounter(BufferedImage img, CannonPlugin plugin) { - super(img, String.valueOf(plugin.getCballsLeft())); + super(img, plugin, String.valueOf(plugin.getCballsLeft())); this.plugin = plugin; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomCounter.java index ec2a4159f4..21bf4069ed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kingdomofmiscellania/KingdomCounter.java @@ -34,7 +34,7 @@ public class KingdomCounter extends Counter public KingdomCounter(BufferedImage image, KingdomPlugin plugin) { - super(image, String.valueOf(plugin.getFavor())); + super(image, plugin, String.valueOf(plugin.getFavor())); this.plugin = plugin; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/AbsorptionCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/AbsorptionCounter.java index e9e207118f..e8fb564abe 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/AbsorptionCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/AbsorptionCounter.java @@ -28,6 +28,7 @@ import java.awt.Color; import java.awt.image.BufferedImage; import lombok.Getter; import lombok.Setter; +import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.Counter; public class AbsorptionCounter extends Counter @@ -46,9 +47,9 @@ public class AbsorptionCounter extends Counter @Setter private Color belowThresholdColor = Color.RED; - public AbsorptionCounter(BufferedImage image, int absorption, int threshold) + public AbsorptionCounter(BufferedImage image, Plugin plugin, int absorption, int threshold) { - super(image, ""); + super(image, plugin, ""); this.threshold = threshold; setAbsorption(absorption); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java index 1b79c80bd9..56cab68fde 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java @@ -132,7 +132,7 @@ class NightmareZoneOverlay extends Overlay private void addAbsorptionCounter(int startValue) { - absorptionCounter = new AbsorptionCounter(itemManager.getImage(ItemID.ABSORPTION_4), startValue, config.absorptionThreshold()); + absorptionCounter = new AbsorptionCounter(itemManager.getImage(ItemID.ABSORPTION_4), plugin, startValue, config.absorptionThreshold()); absorptionCounter.setAboveThresholdColor(config.absorptionColorAboveThreshold()); absorptionCounter.setBelowThresholdColor(config.absorptionColorBelowThreshold()); infoBoxManager.addInfoBox(absorptionCounter); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index eb1ae3e90b..d9095f6c74 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -257,7 +257,7 @@ public class RaidsPlugin extends Plugin if (config.raidsTimer() && message.startsWith(RAID_START_MESSAGE)) { - timer = new RaidsTimer(getRaidsIcon(), Instant.now()); + timer = new RaidsTimer(getRaidsIcon(), this, Instant.now()); infoBoxManager.addInfoBox(timer); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java index 8331789b64..8b40b09e10 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsTimer.java @@ -31,6 +31,7 @@ import java.time.Instant; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import lombok.Setter; +import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.InfoBox; public class RaidsTimer extends InfoBox @@ -45,9 +46,9 @@ public class RaidsTimer extends InfoBox @Setter private boolean stopped; - public RaidsTimer(BufferedImage image, Instant startTime) + public RaidsTimer(BufferedImage image, Plugin plugin, Instant startTime) { - super(image); + super(image, plugin); this.startTime = startTime; floorTime = startTime; stopped = false; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index 720757aee6..d49a7a4111 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -361,7 +361,7 @@ public class SlayerPlugin extends Plugin } BufferedImage taskImg = itemManager.getImage(itemSpriteId); - counter = new TaskCounter(taskImg, amount); + counter = new TaskCounter(taskImg, this, amount); counter.setTooltip(String.format("%s
Pts: %s
Streak: %s", capsString(taskName), points, streak)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TaskCounter.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TaskCounter.java index ef6c54e9d4..f4ac0045b9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TaskCounter.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/TaskCounter.java @@ -24,14 +24,15 @@ */ package net.runelite.client.plugins.slayer; +import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.Counter; import java.awt.image.BufferedImage; public class TaskCounter extends Counter { - public TaskCounter(BufferedImage img, int amount) + public TaskCounter(BufferedImage img, Plugin plugin, int amount) { - super(img, String.valueOf(amount)); + super(img, plugin, String.valueOf(amount)); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java index 4b7e77a693..dac9d266d7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java @@ -25,15 +25,16 @@ package net.runelite.client.plugins.timers; import java.time.temporal.ChronoUnit; +import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.Timer; public class TimerTimer extends Timer { private final GameTimer timer; - public TimerTimer(GameTimer timer) + public TimerTimer(GameTimer timer, Plugin plugin) { - super(timer.getDuration().toMillis(), ChronoUnit.MILLIS, timer.getImage()); + super(timer.getDuration().toMillis(), ChronoUnit.MILLIS, timer.getImage(), plugin); this.timer = timer; } 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 911f4d42b2..def40f6305 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 @@ -450,7 +450,7 @@ public class TimersPlugin extends Plugin { removeGameTimer(timer); - TimerTimer t = new TimerTimer(timer); + TimerTimer t = new TimerTimer(timer, this); t.setTooltip(timer.getDescription()); infoBoxManager.addInfoBox(t); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Counter.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Counter.java index be9e026105..599a178838 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Counter.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Counter.java @@ -26,14 +26,15 @@ package net.runelite.client.ui.overlay.infobox; import java.awt.Color; import java.awt.image.BufferedImage; +import net.runelite.client.plugins.Plugin; public class Counter extends InfoBox { private String text; - public Counter(BufferedImage image, String text) + public Counter(BufferedImage image, Plugin plugin, String text) { - super(image); + super(image, plugin); this.text = text; } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java index 87ed93b1c6..b8afb5fbe6 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java @@ -26,16 +26,22 @@ package net.runelite.client.ui.overlay.infobox; import java.awt.Color; import java.awt.image.BufferedImage; +import lombok.Getter; +import net.runelite.client.plugins.Plugin; public abstract class InfoBox { private final BufferedImage image; + @Getter + private final Plugin plugin; + private String tooltip; - public InfoBox(BufferedImage image) + public InfoBox(BufferedImage image, Plugin plugin) { this.image = image; + this.plugin = plugin; } public BufferedImage getImage() diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java index 355fa805e6..8a6baa91db 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java @@ -25,6 +25,7 @@ package net.runelite.client.ui.overlay.infobox; import com.google.common.base.Preconditions; +import com.google.common.collect.ComparisonChain; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; @@ -32,6 +33,7 @@ import java.util.List; import java.util.function.Predicate; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; +import net.runelite.client.plugins.PluginDescriptor; @Singleton @Slf4j @@ -44,18 +46,24 @@ public class InfoBoxManager Preconditions.checkNotNull(infoBox); log.debug("Adding InfoBox {}", infoBox); infoBoxes.add(infoBox); + + refreshInfoBoxes(); } public void removeInfoBox(InfoBox infoBox) { log.debug("Removing InfoBox {}", infoBox); infoBoxes.remove(infoBox); + + refreshInfoBoxes(); } public void removeIf(Predicate filter) { - log.debug("Removing InfoBoxs for filter {}", filter); + log.debug("Removing InfoBoxes for filter {}", filter); infoBoxes.removeIf(filter); + + refreshInfoBoxes(); } public List getInfoBoxes() @@ -65,6 +73,7 @@ public class InfoBoxManager public void cull() { + boolean culled = false; for (Iterator it = infoBoxes.iterator(); it.hasNext();) { InfoBox box = it.next(); @@ -73,7 +82,21 @@ public class InfoBoxManager { log.debug("Culling InfoBox {}", box); it.remove(); + culled = true; } } + + if (culled) + { + refreshInfoBoxes(); + } + } + + private void refreshInfoBoxes() + { + Collections.sort(infoBoxes, (b1, b2) -> ComparisonChain + .start() + .compare(b1.getPlugin().getClass().getAnnotation(PluginDescriptor.class).name(), b2.getPlugin().getClass().getAnnotation(PluginDescriptor.class).name()) + .result()); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java index 197fd53597..66cd06de57 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/Timer.java @@ -30,6 +30,7 @@ import java.awt.image.BufferedImage; import java.time.Duration; import java.time.Instant; import java.time.temporal.ChronoUnit; +import net.runelite.client.plugins.Plugin; public class Timer extends InfoBox { @@ -37,9 +38,9 @@ public class Timer extends InfoBox private final Instant endTime; private final Duration duration; - public Timer(long period, ChronoUnit unit, BufferedImage image) + public Timer(long period, ChronoUnit unit, BufferedImage image, Plugin plugin) { - super(image); + super(image, plugin); Preconditions.checkArgument(period > 0, "negative period!"); From 0a622a9692fcb059e3ac102dc227c1e8aeeca367 Mon Sep 17 00:00:00 2001 From: Seth Date: Fri, 23 Mar 2018 16:07:53 -0500 Subject: [PATCH 2/2] info boxes: sort boxes by priority add high/med/low priority options and sort boxes by priority --- .../client/plugins/boosts/BoostIndicator.java | 2 ++ .../client/plugins/timers/TimerTimer.java | 2 ++ .../client/ui/overlay/infobox/InfoBox.java | 6 ++++ .../ui/overlay/infobox/InfoBoxManager.java | 1 + .../ui/overlay/infobox/InfoBoxPriority.java | 33 +++++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxPriority.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java index 0a6afb5379..382a17b3e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostIndicator.java @@ -31,6 +31,7 @@ import net.runelite.api.Client; import net.runelite.api.Skill; import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.infobox.InfoBox; +import net.runelite.client.ui.overlay.infobox.InfoBoxPriority; public class BoostIndicator extends InfoBox { @@ -47,6 +48,7 @@ public class BoostIndicator extends InfoBox this.client = client; this.skill = skill; setTooltip(skill.getName() + " boost"); + setPriority(InfoBoxPriority.HIGH); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java index dac9d266d7..c3c9f75a1e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimerTimer.java @@ -26,6 +26,7 @@ package net.runelite.client.plugins.timers; import java.time.temporal.ChronoUnit; import net.runelite.client.plugins.Plugin; +import net.runelite.client.ui.overlay.infobox.InfoBoxPriority; import net.runelite.client.ui.overlay.infobox.Timer; public class TimerTimer extends Timer @@ -36,6 +37,7 @@ public class TimerTimer extends Timer { super(timer.getDuration().toMillis(), ChronoUnit.MILLIS, timer.getImage(), plugin); this.timer = timer; + setPriority(InfoBoxPriority.MED); } public GameTimer getTimer() diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java index b8afb5fbe6..a3668a7ed9 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBox.java @@ -27,6 +27,7 @@ package net.runelite.client.ui.overlay.infobox; import java.awt.Color; import java.awt.image.BufferedImage; import lombok.Getter; +import lombok.Setter; import net.runelite.client.plugins.Plugin; public abstract class InfoBox @@ -36,12 +37,17 @@ public abstract class InfoBox @Getter private final Plugin plugin; + @Getter + @Setter + private InfoBoxPriority priority; + private String tooltip; public InfoBox(BufferedImage image, Plugin plugin) { this.image = image; this.plugin = plugin; + setPriority(InfoBoxPriority.NONE); } public BufferedImage getImage() diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java index 8a6baa91db..e07bc84832 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxManager.java @@ -96,6 +96,7 @@ public class InfoBoxManager { Collections.sort(infoBoxes, (b1, b2) -> ComparisonChain .start() + .compare(b1.getPriority(), b2.getPriority()) .compare(b1.getPlugin().getClass().getAnnotation(PluginDescriptor.class).name(), b2.getPlugin().getClass().getAnnotation(PluginDescriptor.class).name()) .result()); } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxPriority.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxPriority.java new file mode 100644 index 0000000000..9b7a34687e --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxPriority.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2018, Seth + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.ui.overlay.infobox; + +public enum InfoBoxPriority +{ + HIGH, + MED, + NONE, + LOW +}