diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java similarity index 69% rename from runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountConfig.java rename to runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java index bb9b4186ab..978cf5047e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeConfig.java @@ -22,26 +22,48 @@ * (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; +package net.runelite.client.plugins.itemcharges; 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" + keyName = "itemCharge", + name = "Item Charges", + description = "Configuration for the Item Charges plugin" ) -public interface JewelleryCountConfig extends Config +public interface ItemChargeConfig extends Config { @ConfigItem( - keyName = "showJewelleryCount", - name = "Show Jewellery Count Configuration", - description = "Configures if jewellery count is shown", + keyName = "showTeleportCharges", + name = "Show Teleport Charges", + description = "Configures if teleport item count is shown", position = 1 ) - default boolean showJewelleryCount() + 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 = 2 + ) + default boolean showImpCharges() + { + return true; + } + + @ConfigItem( + keyName = "showWaterskinCharges", + name = "Show Waterskin Charges", + description = "Configures if waterskin item charge is shown", + position = 3 + ) + default boolean showWaterskinCharges() { return true; } @@ -50,7 +72,7 @@ public interface JewelleryCountConfig extends Config keyName = "recoilNotification", name = "Ring of Recoil Notification", description = "Configures if the ring of recoil breaking notification is shown", - position = 2 + position = 4 ) default boolean recoilNotification() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java similarity index 75% rename from runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java rename to runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java index e0818303e3..8f0e46570e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeOverlay.java @@ -22,7 +22,7 @@ * (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; +package net.runelite.client.plugins.itemcharges; import java.awt.Dimension; import java.awt.Graphics2D; @@ -37,6 +37,9 @@ import net.runelite.api.queries.EquipmentItemQuery; import net.runelite.api.queries.InventoryWidgetItemQuery; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; +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.WATERSKIN; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; @@ -44,13 +47,13 @@ import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.TextComponent; import net.runelite.client.util.QueryRunner; -class JewelleryCountOverlay extends Overlay +class ItemChargeOverlay extends Overlay { private final QueryRunner queryRunner; - private final JewelleryCountConfig config; + private final ItemChargeConfig config; @Inject - JewelleryCountOverlay(QueryRunner queryRunner, JewelleryCountConfig config) + ItemChargeOverlay(QueryRunner queryRunner, ItemChargeConfig config) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); @@ -61,33 +64,40 @@ class JewelleryCountOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - if (!config.showJewelleryCount()) + if (!config.showTeleportCharges() && !config.showImpCharges() && !config.showWaterskinCharges()) { return null; } graphics.setFont(FontManager.getRunescapeSmallFont()); - for (WidgetItem item : getJewelleryWidgetItems()) + for (WidgetItem item : getChargeWidgetItems()) { - JewelleryCharges charges = JewelleryCharges.getCharges(item.getId()); - - if (charges == null) + ItemWithCharge chargeItem = ItemWithCharge.findItem(item.getId()); + if (chargeItem == null) { continue; } + ItemChargeType type = chargeItem.getType(); + if ((type == TELEPORT && !config.showTeleportCharges()) + || (type == IMPBOX && !config.showImpCharges()) + || (type == WATERSKIN && !config.showWaterskinCharges())) + { + continue; + } + + int charges = chargeItem.getCharges(); final Rectangle bounds = item.getCanvasBounds(); final TextComponent textComponent = new TextComponent(); textComponent.setPosition(new Point(bounds.x, bounds.y + 16)); - textComponent.setText(String.valueOf(charges.getCharges())); + textComponent.setText(String.valueOf(charges)); textComponent.render(graphics); } - return null; } - private Collection getJewelleryWidgetItems() + private Collection getChargeWidgetItems() { Query inventoryQuery = new InventoryWidgetItemQuery(); WidgetItem[] inventoryWidgetItems = queryRunner.runQuery(inventoryQuery); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java similarity index 86% rename from runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java rename to runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java index 5827090926..251b5b1f17 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargePlugin.java @@ -22,7 +22,7 @@ * (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; +package net.runelite.client.plugins.itemcharges; import javax.inject.Inject; import net.runelite.api.ChatMessageType; @@ -30,25 +30,24 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.ui.overlay.Overlay; import com.google.common.eventbus.Subscribe; import com.google.inject.Provides; -import javax.inject.Inject; import net.runelite.api.events.ChatMessage; import net.runelite.client.Notifier; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Jewellery Count" + name = "Item Charges" ) -public class JewelleryCountPlugin extends Plugin +public class ItemChargePlugin extends Plugin { @Inject - private JewelleryCountOverlay overlay; + private ItemChargeOverlay overlay; @Inject private Notifier notifier; @Inject - private JewelleryCountConfig config; + private ItemChargeConfig config; @Override public Overlay getOverlay() @@ -57,9 +56,9 @@ public class JewelleryCountPlugin extends Plugin } @Provides - JewelleryCountConfig getConfig(ConfigManager configManager) + ItemChargeConfig getConfig(ConfigManager configManager) { - return configManager.getConfig(JewelleryCountConfig.class); + return configManager.getConfig(ItemChargeConfig.class); } @Subscribe diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryType.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java similarity index 82% rename from runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryType.java rename to runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java index 8e05da9d15..6cc0eec441 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryType.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemChargeType.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Seth + * Copyright (c) 2017, Mitchell * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,24 +22,11 @@ * (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; +package net.runelite.client.plugins.itemcharges; -public enum JewelleryType +enum ItemChargeType { - GLORY, - ROD, - GAMES, - ROW, - ROS, - SKILLS, - CBRACE, - DIGSITE, - BURNING, - PASSAGE, - RETURNING, - TCRYSTAL, - PHARAO, - WATERSKIN, - IMP_IN_A_BOX, - ELYRE + IMPBOX, + TELEPORT, + WATERSKIN } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java new file mode 100644 index 0000000000..a4991d24e4 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemcharges/ItemWithCharge.java @@ -0,0 +1,160 @@ +/* + * Copyright (c) 2017, 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.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.IMPBOX; +import static net.runelite.client.plugins.itemcharges.ItemChargeType.TELEPORT; +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), + 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), + 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 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); + } + +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCharges.java b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCharges.java deleted file mode 100644 index 402d50e14a..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCharges.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2017, 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.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 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); - } -}