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 b0958019c6..75cba65767 100644 --- a/runelite-api/src/main/java/net/runelite/api/Varbits.java +++ b/runelite-api/src/main/java/net/runelite/api/Varbits.java @@ -182,7 +182,12 @@ public enum Varbits /** * Motherlode mine sack */ - SACK_NUMBER(5558, 375, 8, 15); + SACK_NUMBER(5558, 375, 8, 15), + + /** + * Experience drop color + */ + EXPERIENCE_DROP_COLOR(4695, 1227, 6, 8); /** * varbit id diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/DefaultColors.java b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/DefaultColors.java new file mode 100644 index 0000000000..227d82b3ee --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/DefaultColors.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2018, Cameron + * 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.plugins.experiencedrop; + +import java.awt.Color; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +enum DefaultColors +{ + WHITE(new Color(0xFF, 0xFF, 0xFF)), + LILAC(new Color(0xC8, 0xC8, 0xFF)), + CYAN(new Color(0x00, 0xFF, 0xFF)), + JADE(new Color(0xC8, 0xFF, 0xC8)), + LIME(new Color(0x64, 0xFF, 0x64)), + YELLOW(new Color(0xFF, 0xFF, 0x40)), + ORANGE(new Color(0xFF, 0x98, 0x1F)), + PINK(new Color(0xFF, 0xC8, 0xC8)); + + @Getter + private final Color color; +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java index ea2f7edcbc..70385e910d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java @@ -28,6 +28,7 @@ import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; import javax.inject.Inject; import net.runelite.api.Client; +import net.runelite.api.Varbits; import net.runelite.api.events.WidgetHiddenChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; @@ -66,11 +67,17 @@ public class ExperienceDropPlugin extends Plugin } PrayerType prayer = getActivePrayerType(); - if (!config.enabled() || widget.isHidden() || prayer == null) + if (!config.enabled() || widget.isHidden()) { return; } + if (prayer == null) + { + resetTextColor(widget); + return; + } + String text = widget.getText(); if (text != null) { @@ -89,6 +96,13 @@ public class ExperienceDropPlugin extends Plugin } } + private void resetTextColor(Widget widget) + { + int defaultColorIdx = client.getSetting(Varbits.EXPERIENCE_DROP_COLOR); + int defaultColor = DefaultColors.values()[defaultColorIdx].getColor().getRGB(); + widget.setTextColor(defaultColor); + } + private PrayerType getActivePrayerType() { for (XpPrayer prayer : XpPrayer.values())