Merge pull request #3701 from Mitchell-Kovacs/ItemOverlay
Change the Jewellery Count plugin to Item Charges and added more options.
This commit is contained in:
@@ -0,0 +1,148 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
||||||
|
* 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.itemcharges;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import net.runelite.client.config.Config;
|
||||||
|
import net.runelite.client.config.ConfigGroup;
|
||||||
|
import net.runelite.client.config.ConfigItem;
|
||||||
|
|
||||||
|
@ConfigGroup(
|
||||||
|
keyName = "itemCharge",
|
||||||
|
name = "Item Charges",
|
||||||
|
description = "Configuration for the Item Charges plugin"
|
||||||
|
)
|
||||||
|
public interface ItemChargeConfig extends Config
|
||||||
|
{
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "veryLowWarningColor",
|
||||||
|
name = "Very Low Warning Color",
|
||||||
|
description = "Configure the color of the overlay when charges are very low",
|
||||||
|
position = 1
|
||||||
|
)
|
||||||
|
default Color veryLowWarningColor()
|
||||||
|
{
|
||||||
|
return Color.RED;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "lowWarningColor",
|
||||||
|
name = "Low Warning Color",
|
||||||
|
description = "Configure the color of the overlay when charges are low",
|
||||||
|
position = 2
|
||||||
|
)
|
||||||
|
default Color lowWarningolor()
|
||||||
|
{
|
||||||
|
return Color.YELLOW;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "veryLowWarning",
|
||||||
|
name = "Very Low Warning",
|
||||||
|
description = "Configure the charge count for the very low warning color",
|
||||||
|
position = 3
|
||||||
|
)
|
||||||
|
default int veryLowWarning()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "lowWarning",
|
||||||
|
name = "Low Warning",
|
||||||
|
description = "Configure the charge count for the low warning color",
|
||||||
|
position = 4
|
||||||
|
)
|
||||||
|
default int lowWarning()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "showTeleportCharges",
|
||||||
|
name = "Show Teleport Charges",
|
||||||
|
description = "Configures if teleport item count is shown",
|
||||||
|
position = 5
|
||||||
|
)
|
||||||
|
default boolean showTeleportCharges()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "showImpCharges",
|
||||||
|
name = "Show Imp-in-a-box charges",
|
||||||
|
description = "Configures if imp-in-a-box item charges is shown",
|
||||||
|
position = 6
|
||||||
|
)
|
||||||
|
default boolean showImpCharges()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "showFungicideCharges",
|
||||||
|
name = "Show Fungicide Charges",
|
||||||
|
description = "Configures if fungicide item charges is shown",
|
||||||
|
position = 7
|
||||||
|
)
|
||||||
|
default boolean showFungicideCharges()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "showWateringCanCharges",
|
||||||
|
name = "Show Watering Can Charges",
|
||||||
|
description = "Configures if watering can item charge is shown",
|
||||||
|
position = 8
|
||||||
|
)
|
||||||
|
default boolean showWateringCanCharges()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "showWaterskinCharges",
|
||||||
|
name = "Show Waterskin Charges",
|
||||||
|
description = "Configures if waterskin item charge is shown",
|
||||||
|
position = 9
|
||||||
|
)
|
||||||
|
default boolean showWaterskinCharges()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
keyName = "recoilNotification",
|
||||||
|
name = "Ring of Recoil Notification",
|
||||||
|
description = "Configures if the ring of recoil breaking notification is shown",
|
||||||
|
position = 10
|
||||||
|
)
|
||||||
|
default boolean recoilNotification()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,8 +22,9 @@
|
|||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.jewellerycount;
|
package net.runelite.client.plugins.itemcharges;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
@@ -37,6 +38,11 @@ import net.runelite.api.queries.EquipmentItemQuery;
|
|||||||
import net.runelite.api.queries.InventoryWidgetItemQuery;
|
import net.runelite.api.queries.InventoryWidgetItemQuery;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.api.widgets.WidgetItem;
|
import net.runelite.api.widgets.WidgetItem;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.FUNGICIDE_SPRAY;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.IMPBOX;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.TELEPORT;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.WATERCAN;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.WATERSKIN;
|
||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
@@ -44,13 +50,13 @@ import net.runelite.client.ui.overlay.OverlayPosition;
|
|||||||
import net.runelite.client.ui.overlay.components.TextComponent;
|
import net.runelite.client.ui.overlay.components.TextComponent;
|
||||||
import net.runelite.client.util.QueryRunner;
|
import net.runelite.client.util.QueryRunner;
|
||||||
|
|
||||||
class JewelleryCountOverlay extends Overlay
|
class ItemChargeOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private final QueryRunner queryRunner;
|
private final QueryRunner queryRunner;
|
||||||
private final JewelleryCountConfig config;
|
private final ItemChargeConfig config;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
JewelleryCountOverlay(QueryRunner queryRunner, JewelleryCountConfig config)
|
ItemChargeOverlay(QueryRunner queryRunner, ItemChargeConfig config)
|
||||||
{
|
{
|
||||||
setPosition(OverlayPosition.DYNAMIC);
|
setPosition(OverlayPosition.DYNAMIC);
|
||||||
setLayer(OverlayLayer.ABOVE_WIDGETS);
|
setLayer(OverlayLayer.ABOVE_WIDGETS);
|
||||||
@@ -61,33 +67,44 @@ class JewelleryCountOverlay extends Overlay
|
|||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
if (!config.showJewelleryCount())
|
if (!config.showTeleportCharges() && !config.showFungicideCharges() && !config.showImpCharges()
|
||||||
|
&& !config.showWateringCanCharges() && !config.showWaterskinCharges())
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
graphics.setFont(FontManager.getRunescapeSmallFont());
|
||||||
|
|
||||||
for (WidgetItem item : getJewelleryWidgetItems())
|
for (WidgetItem item : getChargeWidgetItems())
|
||||||
{
|
{
|
||||||
JewelleryCharges charges = JewelleryCharges.getCharges(item.getId());
|
ItemWithCharge chargeItem = ItemWithCharge.findItem(item.getId());
|
||||||
|
if (chargeItem == null)
|
||||||
if (charges == null)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ItemChargeType type = chargeItem.getType();
|
||||||
|
if ((type == TELEPORT && !config.showTeleportCharges())
|
||||||
|
|| (type == FUNGICIDE_SPRAY && !config.showFungicideCharges())
|
||||||
|
|| (type == IMPBOX && !config.showImpCharges())
|
||||||
|
|| (type == WATERCAN && !config.showWateringCanCharges())
|
||||||
|
|| (type == WATERSKIN && !config.showWaterskinCharges()))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int charges = chargeItem.getCharges();
|
||||||
final Rectangle bounds = item.getCanvasBounds();
|
final Rectangle bounds = item.getCanvasBounds();
|
||||||
final TextComponent textComponent = new TextComponent();
|
final TextComponent textComponent = new TextComponent();
|
||||||
textComponent.setPosition(new Point(bounds.x, bounds.y + 16));
|
textComponent.setPosition(new Point(bounds.x, bounds.y + 16));
|
||||||
textComponent.setText(String.valueOf(charges.getCharges()));
|
textComponent.setText(String.valueOf(charges));
|
||||||
|
textComponent.setColor(getColor(charges));
|
||||||
textComponent.render(graphics);
|
textComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Collection<WidgetItem> getJewelleryWidgetItems()
|
private Collection<WidgetItem> getChargeWidgetItems()
|
||||||
{
|
{
|
||||||
Query inventoryQuery = new InventoryWidgetItemQuery();
|
Query inventoryQuery = new InventoryWidgetItemQuery();
|
||||||
WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery);
|
WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery);
|
||||||
@@ -105,4 +122,18 @@ class JewelleryCountOverlay extends Overlay
|
|||||||
jewellery.addAll(Arrays.asList(equipmentWidgetItems));
|
jewellery.addAll(Arrays.asList(equipmentWidgetItems));
|
||||||
return jewellery;
|
return jewellery;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Color getColor(int charges)
|
||||||
|
{
|
||||||
|
Color color = Color.WHITE;
|
||||||
|
if (charges <= config.veryLowWarning())
|
||||||
|
{
|
||||||
|
color = config.veryLowWarningColor();
|
||||||
|
}
|
||||||
|
else if (charges <= config.lowWarning())
|
||||||
|
{
|
||||||
|
color = config.lowWarningolor();
|
||||||
|
}
|
||||||
|
return color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.jewellerycount;
|
package net.runelite.client.plugins.itemcharges;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.api.ChatMessageType;
|
import net.runelite.api.ChatMessageType;
|
||||||
@@ -30,25 +30,24 @@ import net.runelite.client.plugins.Plugin;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import com.google.common.eventbus.Subscribe;
|
import com.google.common.eventbus.Subscribe;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import javax.inject.Inject;
|
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
import net.runelite.client.Notifier;
|
import net.runelite.client.Notifier;
|
||||||
import net.runelite.client.config.ConfigManager;
|
import net.runelite.client.config.ConfigManager;
|
||||||
import net.runelite.client.plugins.PluginDescriptor;
|
import net.runelite.client.plugins.PluginDescriptor;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "Jewellery Count"
|
name = "Item Charges"
|
||||||
)
|
)
|
||||||
public class JewelleryCountPlugin extends Plugin
|
public class ItemChargePlugin extends Plugin
|
||||||
{
|
{
|
||||||
@Inject
|
@Inject
|
||||||
private JewelleryCountOverlay overlay;
|
private ItemChargeOverlay overlay;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Notifier notifier;
|
private Notifier notifier;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private JewelleryCountConfig config;
|
private ItemChargeConfig config;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Overlay getOverlay()
|
public Overlay getOverlay()
|
||||||
@@ -57,9 +56,9 @@ public class JewelleryCountPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
JewelleryCountConfig getConfig(ConfigManager configManager)
|
ItemChargeConfig getConfig(ConfigManager configManager)
|
||||||
{
|
{
|
||||||
return configManager.getConfig(JewelleryCountConfig.class);
|
return configManager.getConfig(ItemChargeConfig.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, Seth <Sethtroll3@gmail.com>
|
* Copyright (c) 2017, Mitchell <https://github.com/Mitchell-Kovacs>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -22,24 +22,13 @@
|
|||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.jewellerycount;
|
package net.runelite.client.plugins.itemcharges;
|
||||||
|
|
||||||
public enum JewelleryType
|
enum ItemChargeType
|
||||||
{
|
{
|
||||||
GLORY,
|
FUNGICIDE_SPRAY,
|
||||||
ROD,
|
IMPBOX,
|
||||||
GAMES,
|
TELEPORT,
|
||||||
ROW,
|
WATERCAN,
|
||||||
ROS,
|
WATERSKIN
|
||||||
SKILLS,
|
|
||||||
CBRACE,
|
|
||||||
DIGSITE,
|
|
||||||
BURNING,
|
|
||||||
PASSAGE,
|
|
||||||
RETURNING,
|
|
||||||
TCRYSTAL,
|
|
||||||
PHARAO,
|
|
||||||
WATERSKIN,
|
|
||||||
IMP_IN_A_BOX,
|
|
||||||
ELYRE
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, Seth <Sethtroll3@gmail.com>
|
||||||
|
* 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.itemcharges;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import static net.runelite.api.ItemID.*;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.FUNGICIDE_SPRAY;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.IMPBOX;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.TELEPORT;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.WATERCAN;
|
||||||
|
import static net.runelite.client.plugins.itemcharges.ItemChargeType.WATERSKIN;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
enum ItemWithCharge
|
||||||
|
{
|
||||||
|
BURNING1(TELEPORT, BURNING_AMULET1, 1),
|
||||||
|
BURNING2(TELEPORT, BURNING_AMULET2, 2),
|
||||||
|
BURNING3(TELEPORT, BURNING_AMULET3, 3),
|
||||||
|
BURNING4(TELEPORT, BURNING_AMULET4, 4),
|
||||||
|
BURNING5(TELEPORT, BURNING_AMULET5, 5),
|
||||||
|
CBRACE1(TELEPORT, COMBAT_BRACELET1, 1),
|
||||||
|
CBRACE2(TELEPORT, COMBAT_BRACELET2, 2),
|
||||||
|
CBRACE3(TELEPORT, COMBAT_BRACELET3, 3),
|
||||||
|
CBRACE4(TELEPORT, COMBAT_BRACELET4, 4),
|
||||||
|
CBRACE5(TELEPORT, COMBAT_BRACELET5, 5),
|
||||||
|
CBRACE6(TELEPORT, COMBAT_BRACELET6, 6),
|
||||||
|
DIGSITE1(TELEPORT, DIGSITE_PENDANT_1, 1),
|
||||||
|
DIGSITE2(TELEPORT, DIGSITE_PENDANT_2, 2),
|
||||||
|
DIGSITE3(TELEPORT, DIGSITE_PENDANT_3, 3),
|
||||||
|
DIGSITE4(TELEPORT, DIGSITE_PENDANT_4, 4),
|
||||||
|
DIGSITE5(TELEPORT, DIGSITE_PENDANT_5, 5),
|
||||||
|
ELYRE1(TELEPORT, ENCHANTED_LYRE1, 1),
|
||||||
|
ELYRE2(TELEPORT, ENCHANTED_LYRE2, 2),
|
||||||
|
ELYRE3(TELEPORT, ENCHANTED_LYRE3, 3),
|
||||||
|
ELYRE4(TELEPORT, ENCHANTED_LYRE4, 4),
|
||||||
|
ELYRE5(TELEPORT, ENCHANTED_LYRE5, 5),
|
||||||
|
FUNGICIDE0(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_0, 0),
|
||||||
|
FUNGICIDE1(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_1, 1),
|
||||||
|
FUNGICIDE2(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_2, 2),
|
||||||
|
FUNGICIDE3(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_3, 3),
|
||||||
|
FUNGICIDE4(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_4, 4),
|
||||||
|
FUNGICIDE5(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_5, 5),
|
||||||
|
FUNGICIDE6(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_6, 6),
|
||||||
|
FUNGICIDE7(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_7, 7),
|
||||||
|
FUNGICIDE8(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_8, 8),
|
||||||
|
FUNGICIDE9(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_9, 9),
|
||||||
|
FUNGICIDE10(FUNGICIDE_SPRAY, FUNGICIDE_SPRAY_10, 10),
|
||||||
|
GAMES1(TELEPORT, GAMES_NECKLACE1, 1),
|
||||||
|
GAMES2(TELEPORT, GAMES_NECKLACE2, 2),
|
||||||
|
GAMES3(TELEPORT, GAMES_NECKLACE3, 3),
|
||||||
|
GAMES4(TELEPORT, GAMES_NECKLACE4, 4),
|
||||||
|
GAMES5(TELEPORT, GAMES_NECKLACE5, 5),
|
||||||
|
GAMES6(TELEPORT, GAMES_NECKLACE6, 6),
|
||||||
|
GAMES7(TELEPORT, GAMES_NECKLACE7, 7),
|
||||||
|
GAMES8(TELEPORT, GAMES_NECKLACE8, 8),
|
||||||
|
GLORY1(TELEPORT, AMULET_OF_GLORY1, 1),
|
||||||
|
GLORY2(TELEPORT, AMULET_OF_GLORY2, 2),
|
||||||
|
GLORY3(TELEPORT, AMULET_OF_GLORY3, 3),
|
||||||
|
GLORY4(TELEPORT, AMULET_OF_GLORY4, 4),
|
||||||
|
GLORY5(TELEPORT, AMULET_OF_GLORY5, 5),
|
||||||
|
GLORY6(TELEPORT, AMULET_OF_GLORY6, 6),
|
||||||
|
GLORYT1(TELEPORT, AMULET_OF_GLORY_T1, 1),
|
||||||
|
GLORYT2(TELEPORT, AMULET_OF_GLORY_T2, 2),
|
||||||
|
GLORYT3(TELEPORT, AMULET_OF_GLORY_T3, 3),
|
||||||
|
GLORYT4(TELEPORT, AMULET_OF_GLORY_T4, 4),
|
||||||
|
GLORYT5(TELEPORT, AMULET_OF_GLORY_T5, 5),
|
||||||
|
GLORYT6(TELEPORT, AMULET_OF_GLORY_T6, 6),
|
||||||
|
IMP_IN_A_BOX1(IMPBOX, IMPINABOX1, 1),
|
||||||
|
IMP_IN_A_BOX2(IMPBOX, IMPINABOX2, 2),
|
||||||
|
PASSAGE1(TELEPORT, NECKLACE_OF_PASSAGE1, 1),
|
||||||
|
PASSAGE2(TELEPORT, NECKLACE_OF_PASSAGE2, 2),
|
||||||
|
PASSAGE3(TELEPORT, NECKLACE_OF_PASSAGE3, 3),
|
||||||
|
PASSAGE4(TELEPORT, NECKLACE_OF_PASSAGE4, 4),
|
||||||
|
PASSAGE5(TELEPORT, NECKLACE_OF_PASSAGE5, 5),
|
||||||
|
PHARAO1(TELEPORT, PHARAOHS_SCEPTRE_1, 1),
|
||||||
|
PHARAO2(TELEPORT, PHARAOHS_SCEPTRE_2, 2),
|
||||||
|
PHARAO3(TELEPORT, PHARAOHS_SCEPTRE_3, 3),
|
||||||
|
PHARAO4(TELEPORT, PHARAOHS_SCEPTRE_4, 4),
|
||||||
|
PHARAO5(TELEPORT, PHARAOHS_SCEPTRE_5, 5),
|
||||||
|
PHARAO6(TELEPORT, PHARAOHS_SCEPTRE_6, 6),
|
||||||
|
PHARAO7(TELEPORT, PHARAOHS_SCEPTRE_7, 7),
|
||||||
|
PHARAO8(TELEPORT, PHARAOHS_SCEPTRE_8, 8),
|
||||||
|
RETURNING1(TELEPORT, RING_OF_RETURNING1, 1),
|
||||||
|
RETURNING2(TELEPORT, RING_OF_RETURNING2, 2),
|
||||||
|
RETURNING3(TELEPORT, RING_OF_RETURNING3, 3),
|
||||||
|
RETURNING4(TELEPORT, RING_OF_RETURNING4, 4),
|
||||||
|
RETURNING5(TELEPORT, RING_OF_RETURNING5, 5),
|
||||||
|
ROD1(TELEPORT, RING_OF_DUELING1, 1),
|
||||||
|
ROD2(TELEPORT, RING_OF_DUELING2, 2),
|
||||||
|
ROD3(TELEPORT, RING_OF_DUELING3, 3),
|
||||||
|
ROD4(TELEPORT, RING_OF_DUELING4, 4),
|
||||||
|
ROD5(TELEPORT, RING_OF_DUELING5, 5),
|
||||||
|
ROD6(TELEPORT, RING_OF_DUELING6, 6),
|
||||||
|
ROD7(TELEPORT, RING_OF_DUELING7, 7),
|
||||||
|
ROD8(TELEPORT, RING_OF_DUELING8, 8),
|
||||||
|
ROS1(TELEPORT, SLAYER_RING_1, 1),
|
||||||
|
ROS2(TELEPORT, SLAYER_RING_2, 2),
|
||||||
|
ROS3(TELEPORT, SLAYER_RING_3, 3),
|
||||||
|
ROS4(TELEPORT, SLAYER_RING_4, 4),
|
||||||
|
ROS5(TELEPORT, SLAYER_RING_5, 5),
|
||||||
|
ROS6(TELEPORT, SLAYER_RING_6, 6),
|
||||||
|
ROS7(TELEPORT, SLAYER_RING_7, 7),
|
||||||
|
ROS8(TELEPORT, SLAYER_RING_8, 8),
|
||||||
|
ROW1(TELEPORT, RING_OF_WEALTH_1, 1),
|
||||||
|
ROW2(TELEPORT, RING_OF_WEALTH_2, 2),
|
||||||
|
ROW3(TELEPORT, RING_OF_WEALTH_3, 3),
|
||||||
|
ROW4(TELEPORT, RING_OF_WEALTH_4, 4),
|
||||||
|
ROW5(TELEPORT, RING_OF_WEALTH_5, 5),
|
||||||
|
SKILLS1(TELEPORT, SKILLS_NECKLACE1, 1),
|
||||||
|
SKILLS2(TELEPORT, SKILLS_NECKLACE2, 2),
|
||||||
|
SKILLS3(TELEPORT, SKILLS_NECKLACE3, 3),
|
||||||
|
SKILLS4(TELEPORT, SKILLS_NECKLACE4, 4),
|
||||||
|
SKILLS5(TELEPORT, SKILLS_NECKLACE5, 5),
|
||||||
|
SKILLS6(TELEPORT, SKILLS_NECKLACE6, 6),
|
||||||
|
TCRYSTAL1(TELEPORT, TELEPORT_CRYSTAL_1, 1),
|
||||||
|
TCRYSTAL2(TELEPORT, TELEPORT_CRYSTAL_2, 2),
|
||||||
|
TCRYSTAL3(TELEPORT, TELEPORT_CRYSTAL_3, 3),
|
||||||
|
TCRYSTAL4(TELEPORT, TELEPORT_CRYSTAL_4, 4),
|
||||||
|
TCRYSTAL5(TELEPORT, TELEPORT_CRYSTAL_5, 5),
|
||||||
|
WCAN0(WATERCAN, WATERING_CAN, 0),
|
||||||
|
WCAN1(WATERCAN, WATERING_CAN1, 1),
|
||||||
|
WCAN2(WATERCAN, WATERING_CAN2, 2),
|
||||||
|
WCAN3(WATERCAN, WATERING_CAN3, 3),
|
||||||
|
WCAN4(WATERCAN, WATERING_CAN4, 4),
|
||||||
|
WCAN5(WATERCAN, WATERING_CAN5, 5),
|
||||||
|
WCAN6(WATERCAN, WATERING_CAN6, 6),
|
||||||
|
WCAN7(WATERCAN, WATERING_CAN7, 7),
|
||||||
|
WCAN8(WATERCAN, WATERING_CAN8, 8),
|
||||||
|
WSKIN0(WATERSKIN, WATERSKIN0, 0),
|
||||||
|
WSKIN1(WATERSKIN, WATERSKIN1, 1),
|
||||||
|
WSKIN2(WATERSKIN, WATERSKIN2, 2),
|
||||||
|
WSKIN3(WATERSKIN, WATERSKIN3, 3),
|
||||||
|
WSKIN4(WATERSKIN, WATERSKIN4, 4);
|
||||||
|
|
||||||
|
private final ItemChargeType type;
|
||||||
|
private final int id;
|
||||||
|
private final int charges;
|
||||||
|
|
||||||
|
private static final Map<Integer, ItemWithCharge> ID_MAP = new HashMap<>();
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
for (ItemWithCharge itemCharge : values())
|
||||||
|
{
|
||||||
|
ID_MAP.put(itemCharge.getId(), itemCharge);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
static ItemWithCharge findItem(int itemId)
|
||||||
|
{
|
||||||
|
return ID_MAP.get(itemId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2017, Seth <Sethtroll3@gmail.com>
|
|
||||||
* 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.jewellerycount;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import static net.runelite.api.ItemID.*;
|
|
||||||
import static net.runelite.client.plugins.jewellerycount.JewelleryType.*;
|
|
||||||
|
|
||||||
public enum JewelleryCharges
|
|
||||||
{
|
|
||||||
GLORY1(GLORY, AMULET_OF_GLORY1, 1),
|
|
||||||
GLORY2(GLORY, AMULET_OF_GLORY2, 2),
|
|
||||||
GLORY3(GLORY, AMULET_OF_GLORY3, 3),
|
|
||||||
GLORY4(GLORY, AMULET_OF_GLORY4, 4),
|
|
||||||
GLORY5(GLORY, AMULET_OF_GLORY5, 5),
|
|
||||||
GLORY6(GLORY, AMULET_OF_GLORY6, 6),
|
|
||||||
GLORYT1(GLORY, AMULET_OF_GLORY_T1, 1),
|
|
||||||
GLORYT2(GLORY, AMULET_OF_GLORY_T2, 2),
|
|
||||||
GLORYT3(GLORY, AMULET_OF_GLORY_T3, 3),
|
|
||||||
GLORYT4(GLORY, AMULET_OF_GLORY_T4, 4),
|
|
||||||
GLORYT5(GLORY, AMULET_OF_GLORY_T5, 5),
|
|
||||||
GLORYT6(GLORY, AMULET_OF_GLORY_T6, 6),
|
|
||||||
ROD1(ROD, RING_OF_DUELING1, 1),
|
|
||||||
ROD2(ROD, RING_OF_DUELING2, 2),
|
|
||||||
ROD3(ROD, RING_OF_DUELING3, 3),
|
|
||||||
ROD4(ROD, RING_OF_DUELING4, 4),
|
|
||||||
ROD5(ROD, RING_OF_DUELING5, 5),
|
|
||||||
ROD6(ROD, RING_OF_DUELING6, 6),
|
|
||||||
ROD7(ROD, RING_OF_DUELING7, 7),
|
|
||||||
ROD8(ROD, RING_OF_DUELING8, 8),
|
|
||||||
GAMES1(GAMES, GAMES_NECKLACE1, 1),
|
|
||||||
GAMES2(GAMES, GAMES_NECKLACE2, 2),
|
|
||||||
GAMES3(GAMES, GAMES_NECKLACE3, 3),
|
|
||||||
GAMES4(GAMES, GAMES_NECKLACE4, 4),
|
|
||||||
GAMES5(GAMES, GAMES_NECKLACE5, 5),
|
|
||||||
GAMES6(GAMES, GAMES_NECKLACE6, 6),
|
|
||||||
GAMES7(GAMES, GAMES_NECKLACE7, 7),
|
|
||||||
GAMES8(GAMES, GAMES_NECKLACE8, 8),
|
|
||||||
ROW1(ROW, RING_OF_WEALTH_1, 1),
|
|
||||||
ROW2(ROW, RING_OF_WEALTH_2, 2),
|
|
||||||
ROW3(ROW, RING_OF_WEALTH_3, 3),
|
|
||||||
ROW4(ROW, RING_OF_WEALTH_4, 4),
|
|
||||||
ROW5(ROW, RING_OF_WEALTH_5, 5),
|
|
||||||
ROS1(ROS, SLAYER_RING_1, 1),
|
|
||||||
ROS2(ROS, SLAYER_RING_2, 2),
|
|
||||||
ROS3(ROS, SLAYER_RING_3, 3),
|
|
||||||
ROS4(ROS, SLAYER_RING_4, 4),
|
|
||||||
ROS5(ROS, SLAYER_RING_5, 5),
|
|
||||||
ROS6(ROS, SLAYER_RING_6, 6),
|
|
||||||
ROS7(ROS, SLAYER_RING_7, 7),
|
|
||||||
ROS8(ROS, SLAYER_RING_8, 8),
|
|
||||||
SKILLS1(SKILLS, SKILLS_NECKLACE1, 1),
|
|
||||||
SKILLS2(SKILLS, SKILLS_NECKLACE2, 2),
|
|
||||||
SKILLS3(SKILLS, SKILLS_NECKLACE3, 3),
|
|
||||||
SKILLS4(SKILLS, SKILLS_NECKLACE4, 4),
|
|
||||||
SKILLS5(SKILLS, SKILLS_NECKLACE5, 5),
|
|
||||||
SKILLS6(SKILLS, SKILLS_NECKLACE6, 6),
|
|
||||||
CBRACE1(CBRACE, COMBAT_BRACELET1, 1),
|
|
||||||
CBRACE2(CBRACE, COMBAT_BRACELET2, 2),
|
|
||||||
CBRACE3(CBRACE, COMBAT_BRACELET3, 3),
|
|
||||||
CBRACE4(CBRACE, COMBAT_BRACELET4, 4),
|
|
||||||
CBRACE5(CBRACE, COMBAT_BRACELET5, 5),
|
|
||||||
CBRACE6(CBRACE, COMBAT_BRACELET6, 6),
|
|
||||||
DIGSITE1(DIGSITE, DIGSITE_PENDANT_1, 1),
|
|
||||||
DIGSITE2(DIGSITE, DIGSITE_PENDANT_2, 2),
|
|
||||||
DIGSITE3(DIGSITE, DIGSITE_PENDANT_3, 3),
|
|
||||||
DIGSITE4(DIGSITE, DIGSITE_PENDANT_4, 4),
|
|
||||||
DIGSITE5(DIGSITE, DIGSITE_PENDANT_5, 5),
|
|
||||||
PASSAGE5(PASSAGE, NECKLACE_OF_PASSAGE5, 5),
|
|
||||||
PASSAGE4(PASSAGE, NECKLACE_OF_PASSAGE4, 4),
|
|
||||||
PASSAGE3(PASSAGE, NECKLACE_OF_PASSAGE3, 3),
|
|
||||||
PASSAGE2(PASSAGE, NECKLACE_OF_PASSAGE2, 2),
|
|
||||||
PASSAGE1(PASSAGE, NECKLACE_OF_PASSAGE1, 1),
|
|
||||||
BURNING5(BURNING, BURNING_AMULET5, 5),
|
|
||||||
BURNING4(BURNING, BURNING_AMULET4, 4),
|
|
||||||
BURNING3(BURNING, BURNING_AMULET3, 3),
|
|
||||||
BURNING2(BURNING, BURNING_AMULET2, 2),
|
|
||||||
BURNING1(BURNING, BURNING_AMULET1, 1),
|
|
||||||
RETURNING5(RETURNING, RING_OF_RETURNING5, 5),
|
|
||||||
RETURNING4(RETURNING, RING_OF_RETURNING4, 4),
|
|
||||||
RETURNING3(RETURNING, RING_OF_RETURNING3, 3),
|
|
||||||
RETURNING2(RETURNING, RING_OF_RETURNING2, 2),
|
|
||||||
RETURNING1(RETURNING, RING_OF_RETURNING1, 1),
|
|
||||||
TCRYSTAL5(TCRYSTAL, TELEPORT_CRYSTAL_5, 5),
|
|
||||||
TCRYSTAL4(TCRYSTAL, TELEPORT_CRYSTAL_4, 4),
|
|
||||||
TCRYSTAL3(TCRYSTAL, TELEPORT_CRYSTAL_3, 3),
|
|
||||||
TCRYSTAL2(TCRYSTAL, TELEPORT_CRYSTAL_2, 2),
|
|
||||||
TCRYSTAL1(TCRYSTAL, TELEPORT_CRYSTAL_1, 1),
|
|
||||||
PHARAO8(PHARAO, PHARAOHS_SCEPTRE_8, 8),
|
|
||||||
PHARAO7(PHARAO, PHARAOHS_SCEPTRE_7, 7),
|
|
||||||
PHARAO6(PHARAO, PHARAOHS_SCEPTRE_6, 6),
|
|
||||||
PHARAO5(PHARAO, PHARAOHS_SCEPTRE_5, 5),
|
|
||||||
PHARAO4(PHARAO, PHARAOHS_SCEPTRE_4, 4),
|
|
||||||
PHARAO3(PHARAO, PHARAOHS_SCEPTRE_3, 3),
|
|
||||||
PHARAO2(PHARAO, PHARAOHS_SCEPTRE_2, 2),
|
|
||||||
PHARAO1(PHARAO, PHARAOHS_SCEPTRE_1, 1),
|
|
||||||
WSKIN4(WATERSKIN, WATERSKIN4, 4),
|
|
||||||
WSKIN3(WATERSKIN, WATERSKIN3, 3),
|
|
||||||
WSKIN2(WATERSKIN, WATERSKIN2, 2),
|
|
||||||
WSKIN1(WATERSKIN, WATERSKIN1, 1),
|
|
||||||
WSKIN0(WATERSKIN, WATERSKIN0, 0),
|
|
||||||
IMP_IN_A_BOX1(IMP_IN_A_BOX, IMPINABOX1, 1),
|
|
||||||
IMP_IN_A_BOX2(IMP_IN_A_BOX, IMPINABOX2, 2),
|
|
||||||
ELYRE1(ELYRE, ENCHANTED_LYRE1, 1),
|
|
||||||
ELYRE2(ELYRE, ENCHANTED_LYRE2, 2),
|
|
||||||
ELYRE3(ELYRE, ENCHANTED_LYRE3, 3),
|
|
||||||
ELYRE4(ELYRE, ENCHANTED_LYRE4, 4),
|
|
||||||
ELYRE5(ELYRE, ENCHANTED_LYRE5, 5);
|
|
||||||
|
|
||||||
private final JewelleryType type;
|
|
||||||
private final int id;
|
|
||||||
private final int charges;
|
|
||||||
|
|
||||||
private static final Map<Integer, JewelleryCharges> ITEM_ID = new HashMap<>();
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
for (JewelleryCharges s : values())
|
|
||||||
{
|
|
||||||
ITEM_ID.put(s.getId(), s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
JewelleryCharges(JewelleryType type, int ID, int charges)
|
|
||||||
{
|
|
||||||
this.type = type;
|
|
||||||
this.id = ID;
|
|
||||||
this.charges = charges;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JewelleryType getType()
|
|
||||||
{
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getId()
|
|
||||||
{
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCharges()
|
|
||||||
{
|
|
||||||
return charges;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static JewelleryCharges getCharges(int id)
|
|
||||||
{
|
|
||||||
return ITEM_ID.get(id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2017, Devin French <https://github.com/devinfrench>
|
|
||||||
* 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.jewellerycount;
|
|
||||||
|
|
||||||
import net.runelite.client.config.Config;
|
|
||||||
import net.runelite.client.config.ConfigGroup;
|
|
||||||
import net.runelite.client.config.ConfigItem;
|
|
||||||
|
|
||||||
@ConfigGroup(
|
|
||||||
keyName = "jewelleryCount",
|
|
||||||
name = "Jewellery Count",
|
|
||||||
description = "Configuration for the Jewellery count plugin"
|
|
||||||
)
|
|
||||||
public interface JewelleryCountConfig extends Config
|
|
||||||
{
|
|
||||||
@ConfigItem(
|
|
||||||
keyName = "showJewelleryCount",
|
|
||||||
name = "Show Jewellery Count Configuration",
|
|
||||||
description = "Configures if jewellery count is shown",
|
|
||||||
position = 1
|
|
||||||
)
|
|
||||||
default boolean showJewelleryCount()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ConfigItem(
|
|
||||||
keyName = "recoilNotification",
|
|
||||||
name = "Ring of Recoil Notification",
|
|
||||||
description = "Configures if the ring of recoil breaking notification is shown",
|
|
||||||
position = 2
|
|
||||||
)
|
|
||||||
default boolean recoilNotification()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2018, Unmoon <https://github.com/Unmoon>
|
|
||||||
* 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.tithefarm;
|
|
||||||
|
|
||||||
import java.awt.Dimension;
|
|
||||||
import java.awt.Graphics2D;
|
|
||||||
import java.awt.Point;
|
|
||||||
import java.awt.Rectangle;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import net.runelite.api.Query;
|
|
||||||
import net.runelite.api.queries.InventoryWidgetItemQuery;
|
|
||||||
import net.runelite.api.widgets.WidgetItem;
|
|
||||||
import net.runelite.client.ui.FontManager;
|
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
|
||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
|
||||||
import net.runelite.client.ui.overlay.components.TextComponent;
|
|
||||||
import net.runelite.client.util.QueryRunner;
|
|
||||||
|
|
||||||
class TitheFarmInventoryOverlay extends Overlay
|
|
||||||
{
|
|
||||||
private final QueryRunner queryRunner;
|
|
||||||
private final TitheFarmPluginConfig config;
|
|
||||||
|
|
||||||
private final TextComponent textComponent = new TextComponent();
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
TitheFarmInventoryOverlay(QueryRunner queryRunner, TitheFarmPluginConfig config)
|
|
||||||
{
|
|
||||||
setPosition(OverlayPosition.DYNAMIC);
|
|
||||||
setLayer(OverlayLayer.ABOVE_WIDGETS);
|
|
||||||
this.queryRunner = queryRunner;
|
|
||||||
this.config = config;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Dimension render(Graphics2D graphics)
|
|
||||||
{
|
|
||||||
if (!config.showWateringCanOverlay())
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
graphics.setFont(FontManager.getRunescapeSmallFont());
|
|
||||||
|
|
||||||
Query inventoryQuery = new InventoryWidgetItemQuery();
|
|
||||||
WidgetItem[] inventoryItems = queryRunner.runQuery(inventoryQuery);
|
|
||||||
|
|
||||||
for (WidgetItem item : inventoryItems)
|
|
||||||
{
|
|
||||||
WateringCan wateringCan = WateringCan.getWateringCan(item.getId());
|
|
||||||
if (wateringCan == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
final Rectangle bounds = item.getCanvasBounds();
|
|
||||||
textComponent.setPosition(new Point(bounds.x, bounds.y + 16));
|
|
||||||
textComponent.setColor(wateringCan.getColor());
|
|
||||||
textComponent.setText(String.valueOf(wateringCan.getCharges()));
|
|
||||||
textComponent.render(graphics);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -55,9 +55,6 @@ public class TitheFarmPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private TitheFarmSackOverlay titheFarmSackOverlay;
|
private TitheFarmSackOverlay titheFarmSackOverlay;
|
||||||
|
|
||||||
@Inject
|
|
||||||
private TitheFarmInventoryOverlay titheFarmInventoryOverlay;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final Set<TitheFarmPlant> plants = new HashSet<>();
|
private final Set<TitheFarmPlant> plants = new HashSet<>();
|
||||||
|
|
||||||
@@ -70,7 +67,7 @@ public class TitheFarmPlugin extends Plugin
|
|||||||
@Override
|
@Override
|
||||||
public Collection<Overlay> getOverlays()
|
public Collection<Overlay> getOverlays()
|
||||||
{
|
{
|
||||||
return Arrays.asList(titheFarmOverlay, titheFarmSackOverlay, titheFarmInventoryOverlay);
|
return Arrays.asList(titheFarmOverlay, titheFarmSackOverlay);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -38,17 +38,6 @@ public interface TitheFarmPluginConfig extends Config
|
|||||||
{
|
{
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
position = 0,
|
position = 0,
|
||||||
keyName = "showWateringCanOverlay",
|
|
||||||
name = "Show watering can doses",
|
|
||||||
description = "Configures whether or not the watering can doses are displayed"
|
|
||||||
)
|
|
||||||
default boolean showWateringCanOverlay()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ConfigItem(
|
|
||||||
position = 1,
|
|
||||||
keyName = "showSack",
|
keyName = "showSack",
|
||||||
name = "Show fruit sack",
|
name = "Show fruit sack",
|
||||||
description = "Configures whether or not the fruit sack is displayed"
|
description = "Configures whether or not the fruit sack is displayed"
|
||||||
@@ -59,7 +48,7 @@ public interface TitheFarmPluginConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
position = 2,
|
position = 1,
|
||||||
keyName = "hexColorUnwatered",
|
keyName = "hexColorUnwatered",
|
||||||
name = "Unwatered plant",
|
name = "Unwatered plant",
|
||||||
description = "Color of unwatered plant timer"
|
description = "Color of unwatered plant timer"
|
||||||
@@ -70,7 +59,7 @@ public interface TitheFarmPluginConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
position = 3,
|
position = 2,
|
||||||
keyName = "hexColorWatered",
|
keyName = "hexColorWatered",
|
||||||
name = "Watered plant",
|
name = "Watered plant",
|
||||||
description = "Color of watered plant timer"
|
description = "Color of watered plant timer"
|
||||||
@@ -81,7 +70,7 @@ public interface TitheFarmPluginConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
position = 4,
|
position = 3,
|
||||||
keyName = "hexColorGrown",
|
keyName = "hexColorGrown",
|
||||||
name = "Grown plant",
|
name = "Grown plant",
|
||||||
description = "Color of grown plant timer"
|
description = "Color of grown plant timer"
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2018, Unmoon <https://github.com/Unmoon>
|
|
||||||
* 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.tithefarm;
|
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import lombok.Getter;
|
|
||||||
import net.runelite.api.ItemID;
|
|
||||||
|
|
||||||
enum WateringCan
|
|
||||||
{
|
|
||||||
WATERING_CAN0(ItemID.WATERING_CAN, 0, Color.RED),
|
|
||||||
WATERING_CAN1(ItemID.WATERING_CAN1, 1, Color.ORANGE),
|
|
||||||
WATERING_CAN2(ItemID.WATERING_CAN2, 2, Color.YELLOW),
|
|
||||||
WATERING_CAN3(ItemID.WATERING_CAN3, 3, Color.WHITE),
|
|
||||||
WATERING_CAN4(ItemID.WATERING_CAN4, 4, Color.WHITE),
|
|
||||||
WATERING_CAN5(ItemID.WATERING_CAN5, 5, Color.WHITE),
|
|
||||||
WATERING_CAN6(ItemID.WATERING_CAN6, 6, Color.WHITE),
|
|
||||||
WATERING_CAN7(ItemID.WATERING_CAN7, 7, Color.WHITE),
|
|
||||||
WATERING_CAN8(ItemID.WATERING_CAN8, 8, Color.WHITE);
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
private final int id;
|
|
||||||
@Getter
|
|
||||||
private final int charges;
|
|
||||||
@Getter
|
|
||||||
private final Color color;
|
|
||||||
|
|
||||||
private static final Map<Integer, WateringCan> wateringCans = new HashMap<>();
|
|
||||||
|
|
||||||
static
|
|
||||||
{
|
|
||||||
for (WateringCan can : values())
|
|
||||||
{
|
|
||||||
wateringCans.put(can.getId(), can);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
WateringCan(int id, int charges, Color color)
|
|
||||||
{
|
|
||||||
this.id = id;
|
|
||||||
this.charges = charges;
|
|
||||||
this.color = color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static WateringCan getWateringCan(int itemId)
|
|
||||||
{
|
|
||||||
return wateringCans.get(itemId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user