diff options
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/handlers/HeldItemHandler.java')
-rw-r--r-- | src/main/java/com/thatgravyboat/skyblockhud/handlers/HeldItemHandler.java | 62 |
1 files changed, 18 insertions, 44 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/handlers/HeldItemHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/handlers/HeldItemHandler.java index da27590..c44c8bc 100644 --- a/src/main/java/com/thatgravyboat/skyblockhud/handlers/HeldItemHandler.java +++ b/src/main/java/com/thatgravyboat/skyblockhud/handlers/HeldItemHandler.java @@ -1,58 +1,32 @@ package com.thatgravyboat.skyblockhud.handlers; -import com.thatgravyboat.skyblockhud.Utils; -import com.thatgravyboat.skyblockhud.overlay.GenericOverlays; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class HeldItemHandler extends Gui { - public void drawFuelBar(Minecraft mc, int current, int max) { - GenericOverlays.drawSmallBar(mc, 100, 100, (double) current / (double) max, 1.0d, 0xff00ff, 0xffff00, 0); - drawString(mc.fontRendererObj, "Fuel - " + Math.round(((double) current / (double) max) * 100) + "%", 100, 100, 0xffffff); - } + private static final Pattern MANA_COST_REGEX = Pattern.compile("Mana Cost: \u00A73([0-9]+)"); - public boolean isDrill(ItemStack stack) { + public static boolean hasManaCost(ItemStack stack){ if (stack == null) return false; - if (!stack.getTagCompound().hasKey("ExtraAttributes")) return false; - return stack.getTagCompound().getCompoundTag("ExtraAttributes").hasKey("drill_fuel"); - } - - public String getDrillFuel(ItemStack stack) { - NBTTagCompound display = stack.getTagCompound().getCompoundTag("display"); - NBTTagList lore = display.getTagList("Lore", 8); - for (int i = lore.tagCount() - 1; i >= 0; i--) { - String line = Utils.removeColor(lore.getStringTagAt(i)); - if (line.trim().startsWith("Fuel:")) { - return line; - } - } - return ""; + if (!stack.hasTagCompound()) return false; + if (!stack.getTagCompound().hasKey("display")) return false; + if (!stack.getTagCompound().getCompoundTag("display").hasKey("Lore")) return false; + String lore = stack.getTagCompound().getCompoundTag("display").getTagList("Lore", 8).toString(); + return MANA_COST_REGEX.matcher(lore).find(); } - @SubscribeEvent - public void drawOverlay(RenderGameOverlayEvent.Post event) { - /* - if (Utils.overlayShouldRender(event.type, SkyblockHud.hasSkyblockScoreboard())){ - Minecraft mc = Minecraft.getMinecraft(); - ItemStack stack = mc.thePlayer.getHeldItem(); - if (isDrill(stack)){ - try { - String drill = getDrillFuel(stack).replace("Fuel:", "").trim(); - String[] fuel = drill.split("/"); - if (fuel.length == 2) { - int current = Integer.parseInt(fuel[0].replace(",", "")); - int max = Integer.parseInt(fuel[1].replace("k", "")) * 1000; - drawFuelBar(mc, current, max); - } - }catch (Exception ignored){} - } + public static int getManaCost(ItemStack stack){ + String lore = stack.getTagCompound().getCompoundTag("display").getTagList("Lore", 8).toString(); + Matcher matcher = MANA_COST_REGEX.matcher(lore); + if (matcher.find()){ + try { + return Integer.parseInt(matcher.group(1)); + }catch (Exception ignored){} } - */ + return 0; } } |