From 7c00af18febf6c0b833c7633b4fb60a9a1bb93af Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Sat, 16 Oct 2021 15:50:41 -0400 Subject: Code Clean Up (#2) * intellij code clean up * optimize imports * format * intellij suggestions * fix empty catch issues --- .../miscfeatures/ItemCooldowns.java | 100 ++++++++++----------- 1 file changed, 48 insertions(+), 52 deletions(-) (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java index 7a37c0ce..8edc97c8 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java @@ -11,13 +11,15 @@ import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ItemCooldowns { - private static Map durabilityOverrideMap = new HashMap<>(); + private static final Map durabilityOverrideMap = new HashMap<>(); public static long pickaxeUseCooldownMillisRemaining = -1; private static long treecapitatorCooldownMillisRemaining = -1; private static long lastMillis = 0; @@ -30,8 +32,8 @@ public class ItemCooldowns { @SubscribeEvent public void tick(TickEvent.ClientTickEvent event) { - if(event.phase == TickEvent.Phase.END && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { - if(tickCounter++ >= 20*10) { + if (event.phase == TickEvent.Phase.END && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { + if (tickCounter++ >= 20 * 10) { tickCounter = 0; pickaxeCooldown = -1; } @@ -39,7 +41,7 @@ public class ItemCooldowns { long currentTime = System.currentTimeMillis(); Long key; - while((key = blocksClicked.floorKey(currentTime - 1500)) != null) { + while ((key = blocksClicked.floorKey(currentTime - 1500)) != null) { blocksClicked.remove(key); } @@ -48,10 +50,10 @@ public class ItemCooldowns { durabilityOverrideMap.clear(); - if(pickaxeUseCooldownMillisRemaining >= 0) { + if (pickaxeUseCooldownMillisRemaining >= 0) { pickaxeUseCooldownMillisRemaining -= millisDelta; } - if(treecapitatorCooldownMillisRemaining >= 0) { + if (treecapitatorCooldownMillisRemaining >= 0) { treecapitatorCooldownMillisRemaining -= millisDelta; } } @@ -60,20 +62,20 @@ public class ItemCooldowns { @SubscribeEvent public void onWorldUnload(WorldEvent.Load event) { blocksClicked.clear(); - if(pickaxeCooldown > 0) pickaxeUseCooldownMillisRemaining = 60*1000; + if (pickaxeCooldown > 0) pickaxeUseCooldownMillisRemaining = 60 * 1000; pickaxeCooldown = -1; } - public static long getTreecapCooldownWithPet(){ - if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCooldownInItemDurability){ + public static long getTreecapCooldownWithPet() { + if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCooldownInItemDurability) { return 0; } PetInfoOverlay.Pet pet = PetInfoOverlay.getCurrentPet(); if (NotEnoughUpdates.INSTANCE.config.itemOverlays.enableMonkeyCheck && pet != null) { if (pet.petLevel != null && - pet.petType.equalsIgnoreCase("monkey") && - pet.rarity.equals(PetInfoOverlay.Rarity.LEGENDARY) + pet.petType.equalsIgnoreCase("monkey") && + pet.rarity.equals(PetInfoOverlay.Rarity.LEGENDARY) ) { return 2000 - (int) (2000 * (0.005 * (int) pet.petLevel.level)); } @@ -89,9 +91,9 @@ public class ItemCooldowns { public static void processBlockChangePacket(S23PacketBlockChange packetIn) { BlockPos pos = packetIn.getBlockPosition(); - if(blocksClicked.containsValue(pos)) { + if (blocksClicked.containsValue(pos)) { IBlockState oldState = Minecraft.getMinecraft().theWorld.getBlockState(pos); - if(oldState.getBlock() != packetIn.getBlockState().getBlock()) { + if (oldState.getBlock() != packetIn.getBlockState().getBlock()) { onBlockMined(pos); } } @@ -100,50 +102,45 @@ public class ItemCooldowns { public static void onBlockMined(BlockPos pos) { ItemStack held = Minecraft.getMinecraft().thePlayer.getHeldItem(); String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(held); - if(internalname != null) { - if(treecapitatorCooldownMillisRemaining < 0 && + if (internalname != null) { + if (treecapitatorCooldownMillisRemaining < 0 && (internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE"))) { treecapitatorCooldownMillisRemaining = getTreecapCooldownWithPet(); } } } - private static Pattern PICKAXE_ABILITY_REGEX = Pattern.compile("\\u00a7r\\u00a7aYou used your " + + private static final Pattern PICKAXE_ABILITY_REGEX = Pattern.compile("\\u00a7r\\u00a7aYou used your " + "\\u00a7r\\u00a7..+ \\u00a7r\\u00a7aPickaxe Ability!\\u00a7r"); - private static Pattern PICKAXE_COOLDOWN_LORE_REGEX = Pattern.compile("\\u00a78Cooldown: \\u00a7a(\\d+)s"); + private static final Pattern PICKAXE_COOLDOWN_LORE_REGEX = Pattern.compile("\\u00a78Cooldown: \\u00a7a(\\d+)s"); private static boolean isPickaxe(String internalname) { - if(internalname == null) return false; + if (internalname == null) return false; - if(internalname.endsWith("_PICKAXE")) { + if (internalname.endsWith("_PICKAXE")) { return true; - } else if(internalname.contains("_DRILL_")) { - char lastChar = internalname.charAt(internalname.length()-1); - if(lastChar >= '0' && lastChar <= '9') { - return true; - } - } else if(internalname.equals("DIVAN_DRILL")){ - return true; - } else if(internalname.equals("GEMSTONE_GAUNTLET")){ + } else if (internalname.contains("_DRILL_")) { + char lastChar = internalname.charAt(internalname.length() - 1); + return lastChar >= '0' && lastChar <= '9'; + } else if (internalname.equals("DIVAN_DRILL")) { return true; - } - return false; + } else return internalname.equals("GEMSTONE_GAUNTLET"); } private static void updatePickaxeCooldown() { - if(pickaxeCooldown == -1 && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { - for(ItemStack stack : Minecraft.getMinecraft().thePlayer.inventory.mainInventory) { - if(stack != null && stack.hasTagCompound()) { + if (pickaxeCooldown == -1 && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { + for (ItemStack stack : Minecraft.getMinecraft().thePlayer.inventory.mainInventory) { + if (stack != null && stack.hasTagCompound()) { String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); - if(isPickaxe(internalname)) { - for(String line : NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound())) { + if (isPickaxe(internalname)) { + for (String line : NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound())) { Matcher matcher = PICKAXE_COOLDOWN_LORE_REGEX.matcher(line); - if(matcher.find()) { + if (matcher.find()) { try { pickaxeCooldown = Integer.parseInt(matcher.group(1)); return; - } catch(Exception ignored) {} + } catch (Exception ignored) {} } } } @@ -153,53 +150,52 @@ public class ItemCooldowns { } } - @SubscribeEvent public void onChatMessage(ClientChatReceivedEvent event) { - if(pickaxeCooldown != 0 && PICKAXE_ABILITY_REGEX.matcher(event.message.getFormattedText()).matches() && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { + if (pickaxeCooldown != 0 && PICKAXE_ABILITY_REGEX.matcher(event.message.getFormattedText()).matches() && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { updatePickaxeCooldown(); - pickaxeUseCooldownMillisRemaining = pickaxeCooldown*1000; + pickaxeUseCooldownMillisRemaining = pickaxeCooldown * 1000; } } public static float getDurabilityOverride(ItemStack stack) { - if(Minecraft.getMinecraft().theWorld == null) return -1; - if(!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) return -1; + if (Minecraft.getMinecraft().theWorld == null) return -1; + if (!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) return -1; - if(durabilityOverrideMap.containsKey(stack)) { + if (durabilityOverrideMap.containsKey(stack)) { return durabilityOverrideMap.get(stack); } String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); - if(internalname == null) { + if (internalname == null) { durabilityOverrideMap.put(stack, -1f); return -1; } - if(isPickaxe(internalname)) { + if (isPickaxe(internalname)) { updatePickaxeCooldown(); - if(pickaxeUseCooldownMillisRemaining < 0) { + if (pickaxeUseCooldownMillisRemaining < 0) { durabilityOverrideMap.put(stack, -1f); return -1; } - if(pickaxeUseCooldownMillisRemaining > pickaxeCooldown*1000) { + if (pickaxeUseCooldownMillisRemaining > pickaxeCooldown * 1000) { return stack.getItemDamage(); } - float dura = (float)(pickaxeUseCooldownMillisRemaining/(pickaxeCooldown*1000.0)); + float dura = (float) (pickaxeUseCooldownMillisRemaining / (pickaxeCooldown * 1000.0)); durabilityOverrideMap.put(stack, dura); return dura; - } else if(internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE")) { - if(treecapitatorCooldownMillisRemaining < 0) { + } else if (internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE")) { + if (treecapitatorCooldownMillisRemaining < 0) { durabilityOverrideMap.put(stack, -1f); return -1; } - if(treecapitatorCooldownMillisRemaining > getTreecapCooldownWithPet()) { + if (treecapitatorCooldownMillisRemaining > getTreecapCooldownWithPet()) { return stack.getItemDamage(); } - float dura = (treecapitatorCooldownMillisRemaining/(float)getTreecapCooldownWithPet()); + float dura = (treecapitatorCooldownMillisRemaining / (float) getTreecapCooldownWithPet()); durabilityOverrideMap.put(stack, dura); return dura; } -- cgit From ea3ec354ba3bb5b4ac64b8032816b8e4c407f099 Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Tue, 28 Dec 2021 00:49:28 -0500 Subject: more code clean up (#38) --- .../github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java index 8edc97c8..bb5df60c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java @@ -18,7 +18,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class ItemCooldowns { - private static final Map durabilityOverrideMap = new HashMap<>(); public static long pickaxeUseCooldownMillisRemaining = -1; private static long treecapitatorCooldownMillisRemaining = -1; @@ -203,5 +202,4 @@ public class ItemCooldowns { durabilityOverrideMap.put(stack, -1f); return -1; } - } -- cgit From b09f774d422263ce15b97d6d0804beddf856176d Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Sun, 27 Feb 2022 11:53:57 -0500 Subject: feat: improve formating :) --- .../miscfeatures/ItemCooldowns.java | 370 +++++++++++---------- 1 file changed, 186 insertions(+), 184 deletions(-) (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java') diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java index bb5df60c..96522d34 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/ItemCooldowns.java @@ -18,188 +18,190 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class ItemCooldowns { - private static final Map durabilityOverrideMap = new HashMap<>(); - public static long pickaxeUseCooldownMillisRemaining = -1; - private static long treecapitatorCooldownMillisRemaining = -1; - private static long lastMillis = 0; - - public static long pickaxeCooldown = -1; - - public static TreeMap blocksClicked = new TreeMap<>(); - - private static int tickCounter = 0; - - @SubscribeEvent - public void tick(TickEvent.ClientTickEvent event) { - if (event.phase == TickEvent.Phase.END && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { - if (tickCounter++ >= 20 * 10) { - tickCounter = 0; - pickaxeCooldown = -1; - } - - long currentTime = System.currentTimeMillis(); - - Long key; - while ((key = blocksClicked.floorKey(currentTime - 1500)) != null) { - blocksClicked.remove(key); - } - - long millisDelta = currentTime - lastMillis; - lastMillis = currentTime; - - durabilityOverrideMap.clear(); - - if (pickaxeUseCooldownMillisRemaining >= 0) { - pickaxeUseCooldownMillisRemaining -= millisDelta; - } - if (treecapitatorCooldownMillisRemaining >= 0) { - treecapitatorCooldownMillisRemaining -= millisDelta; - } - } - } - - @SubscribeEvent - public void onWorldUnload(WorldEvent.Load event) { - blocksClicked.clear(); - if (pickaxeCooldown > 0) pickaxeUseCooldownMillisRemaining = 60 * 1000; - pickaxeCooldown = -1; - } - - public static long getTreecapCooldownWithPet() { - if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCooldownInItemDurability) { - return 0; - } - - PetInfoOverlay.Pet pet = PetInfoOverlay.getCurrentPet(); - if (NotEnoughUpdates.INSTANCE.config.itemOverlays.enableMonkeyCheck && pet != null) { - if (pet.petLevel != null && - pet.petType.equalsIgnoreCase("monkey") && - pet.rarity.equals(PetInfoOverlay.Rarity.LEGENDARY) - ) { - return 2000 - (int) (2000 * (0.005 * (int) pet.petLevel.level)); - } - } - return 2000; - } - - public static void blockClicked(BlockPos pos) { - long currentTime = System.currentTimeMillis(); - blocksClicked.put(currentTime, pos); - } - - public static void processBlockChangePacket(S23PacketBlockChange packetIn) { - BlockPos pos = packetIn.getBlockPosition(); - - if (blocksClicked.containsValue(pos)) { - IBlockState oldState = Minecraft.getMinecraft().theWorld.getBlockState(pos); - if (oldState.getBlock() != packetIn.getBlockState().getBlock()) { - onBlockMined(pos); - } - } - } - - public static void onBlockMined(BlockPos pos) { - ItemStack held = Minecraft.getMinecraft().thePlayer.getHeldItem(); - String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(held); - if (internalname != null) { - if (treecapitatorCooldownMillisRemaining < 0 && - (internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE"))) { - treecapitatorCooldownMillisRemaining = getTreecapCooldownWithPet(); - } - } - } - - private static final Pattern PICKAXE_ABILITY_REGEX = Pattern.compile("\\u00a7r\\u00a7aYou used your " + - "\\u00a7r\\u00a7..+ \\u00a7r\\u00a7aPickaxe Ability!\\u00a7r"); - - private static final Pattern PICKAXE_COOLDOWN_LORE_REGEX = Pattern.compile("\\u00a78Cooldown: \\u00a7a(\\d+)s"); - - private static boolean isPickaxe(String internalname) { - if (internalname == null) return false; - - if (internalname.endsWith("_PICKAXE")) { - return true; - } else if (internalname.contains("_DRILL_")) { - char lastChar = internalname.charAt(internalname.length() - 1); - return lastChar >= '0' && lastChar <= '9'; - } else if (internalname.equals("DIVAN_DRILL")) { - return true; - } else return internalname.equals("GEMSTONE_GAUNTLET"); - } - - private static void updatePickaxeCooldown() { - if (pickaxeCooldown == -1 && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { - for (ItemStack stack : Minecraft.getMinecraft().thePlayer.inventory.mainInventory) { - if (stack != null && stack.hasTagCompound()) { - String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); - if (isPickaxe(internalname)) { - for (String line : NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound())) { - Matcher matcher = PICKAXE_COOLDOWN_LORE_REGEX.matcher(line); - if (matcher.find()) { - try { - pickaxeCooldown = Integer.parseInt(matcher.group(1)); - return; - } catch (Exception ignored) {} - } - } - } - } - } - pickaxeCooldown = 0; - } - } - - @SubscribeEvent - public void onChatMessage(ClientChatReceivedEvent event) { - if (pickaxeCooldown != 0 && PICKAXE_ABILITY_REGEX.matcher(event.message.getFormattedText()).matches() && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { - updatePickaxeCooldown(); - pickaxeUseCooldownMillisRemaining = pickaxeCooldown * 1000; - } - } - - public static float getDurabilityOverride(ItemStack stack) { - if (Minecraft.getMinecraft().theWorld == null) return -1; - if (!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) return -1; - - if (durabilityOverrideMap.containsKey(stack)) { - return durabilityOverrideMap.get(stack); - } - - String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); - if (internalname == null) { - durabilityOverrideMap.put(stack, -1f); - return -1; - } - - if (isPickaxe(internalname)) { - updatePickaxeCooldown(); - - if (pickaxeUseCooldownMillisRemaining < 0) { - durabilityOverrideMap.put(stack, -1f); - return -1; - } - - if (pickaxeUseCooldownMillisRemaining > pickaxeCooldown * 1000) { - return stack.getItemDamage(); - } - float dura = (float) (pickaxeUseCooldownMillisRemaining / (pickaxeCooldown * 1000.0)); - durabilityOverrideMap.put(stack, dura); - return dura; - } else if (internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE")) { - if (treecapitatorCooldownMillisRemaining < 0) { - durabilityOverrideMap.put(stack, -1f); - return -1; - } - - if (treecapitatorCooldownMillisRemaining > getTreecapCooldownWithPet()) { - return stack.getItemDamage(); - } - float dura = (treecapitatorCooldownMillisRemaining / (float) getTreecapCooldownWithPet()); - durabilityOverrideMap.put(stack, dura); - return dura; - } - - durabilityOverrideMap.put(stack, -1f); - return -1; - } + private static final Map durabilityOverrideMap = new HashMap<>(); + public static long pickaxeUseCooldownMillisRemaining = -1; + private static long treecapitatorCooldownMillisRemaining = -1; + private static long lastMillis = 0; + + public static long pickaxeCooldown = -1; + + public static TreeMap blocksClicked = new TreeMap<>(); + + private static int tickCounter = 0; + + @SubscribeEvent + public void tick(TickEvent.ClientTickEvent event) { + if (event.phase == TickEvent.Phase.END && NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) { + if (tickCounter++ >= 20 * 10) { + tickCounter = 0; + pickaxeCooldown = -1; + } + + long currentTime = System.currentTimeMillis(); + + Long key; + while ((key = blocksClicked.floorKey(currentTime - 1500)) != null) { + blocksClicked.remove(key); + } + + long millisDelta = currentTime - lastMillis; + lastMillis = currentTime; + + durabilityOverrideMap.clear(); + + if (pickaxeUseCooldownMillisRemaining >= 0) { + pickaxeUseCooldownMillisRemaining -= millisDelta; + } + if (treecapitatorCooldownMillisRemaining >= 0) { + treecapitatorCooldownMillisRemaining -= millisDelta; + } + } + } + + @SubscribeEvent + public void onWorldUnload(WorldEvent.Load event) { + blocksClicked.clear(); + if (pickaxeCooldown > 0) pickaxeUseCooldownMillisRemaining = 60 * 1000; + pickaxeCooldown = -1; + } + + public static long getTreecapCooldownWithPet() { + if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCooldownInItemDurability) { + return 0; + } + + PetInfoOverlay.Pet pet = PetInfoOverlay.getCurrentPet(); + if (NotEnoughUpdates.INSTANCE.config.itemOverlays.enableMonkeyCheck && pet != null) { + if (pet.petLevel != null && + pet.petType.equalsIgnoreCase("monkey") && + pet.rarity.equals(PetInfoOverlay.Rarity.LEGENDARY) + ) { + return 2000 - (int) (2000 * (0.005 * (int) pet.petLevel.level)); + } + } + return 2000; + } + + public static void blockClicked(BlockPos pos) { + long currentTime = System.currentTimeMillis(); + blocksClicked.put(currentTime, pos); + } + + public static void processBlockChangePacket(S23PacketBlockChange packetIn) { + BlockPos pos = packetIn.getBlockPosition(); + + if (blocksClicked.containsValue(pos)) { + IBlockState oldState = Minecraft.getMinecraft().theWorld.getBlockState(pos); + if (oldState.getBlock() != packetIn.getBlockState().getBlock()) { + onBlockMined(pos); + } + } + } + + public static void onBlockMined(BlockPos pos) { + ItemStack held = Minecraft.getMinecraft().thePlayer.getHeldItem(); + String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(held); + if (internalname != null) { + if (treecapitatorCooldownMillisRemaining < 0 && + (internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE"))) { + treecapitatorCooldownMillisRemaining = getTreecapCooldownWithPet(); + } + } + } + + private static final Pattern PICKAXE_ABILITY_REGEX = Pattern.compile("\\u00a7r\\u00a7aYou used your " + + "\\u00a7r\\u00a7..+ \\u00a7r\\u00a7aPickaxe Ability!\\u00a7r"); + + private static final Pattern PICKAXE_COOLDOWN_LORE_REGEX = Pattern.compile("\\u00a78Cooldown: \\u00a7a(\\d+)s"); + + private static boolean isPickaxe(String internalname) { + if (internalname == null) return false; + + if (internalname.endsWith("_PICKAXE")) { + return true; + } else if (internalname.contains("_DRILL_")) { + char lastChar = internalname.charAt(internalname.length() - 1); + return lastChar >= '0' && lastChar <= '9'; + } else if (internalname.equals("DIVAN_DRILL")) { + return true; + } else return internalname.equals("GEMSTONE_GAUNTLET"); + } + + private static void updatePickaxeCooldown() { + if (pickaxeCooldown == -1 && NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { + for (ItemStack stack : Minecraft.getMinecraft().thePlayer.inventory.mainInventory) { + if (stack != null && stack.hasTagCompound()) { + String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); + if (isPickaxe(internalname)) { + for (String line : NotEnoughUpdates.INSTANCE.manager.getLoreFromNBT(stack.getTagCompound())) { + Matcher matcher = PICKAXE_COOLDOWN_LORE_REGEX.matcher(line); + if (matcher.find()) { + try { + pickaxeCooldown = Integer.parseInt(matcher.group(1)); + return; + } catch (Exception ignored) { + } + } + } + } + } + } + pickaxeCooldown = 0; + } + } + + @SubscribeEvent + public void onChatMessage(ClientChatReceivedEvent event) { + if (pickaxeCooldown != 0 && PICKAXE_ABILITY_REGEX.matcher(event.message.getFormattedText()).matches() && + NotEnoughUpdates.INSTANCE.config.itemOverlays.pickaxeAbility) { + updatePickaxeCooldown(); + pickaxeUseCooldownMillisRemaining = pickaxeCooldown * 1000; + } + } + + public static float getDurabilityOverride(ItemStack stack) { + if (Minecraft.getMinecraft().theWorld == null) return -1; + if (!NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard()) return -1; + + if (durabilityOverrideMap.containsKey(stack)) { + return durabilityOverrideMap.get(stack); + } + + String internalname = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(stack); + if (internalname == null) { + durabilityOverrideMap.put(stack, -1f); + return -1; + } + + if (isPickaxe(internalname)) { + updatePickaxeCooldown(); + + if (pickaxeUseCooldownMillisRemaining < 0) { + durabilityOverrideMap.put(stack, -1f); + return -1; + } + + if (pickaxeUseCooldownMillisRemaining > pickaxeCooldown * 1000) { + return stack.getItemDamage(); + } + float dura = (float) (pickaxeUseCooldownMillisRemaining / (pickaxeCooldown * 1000.0)); + durabilityOverrideMap.put(stack, dura); + return dura; + } else if (internalname.equals("TREECAPITATOR_AXE") || internalname.equals("JUNGLE_AXE")) { + if (treecapitatorCooldownMillisRemaining < 0) { + durabilityOverrideMap.put(stack, -1f); + return -1; + } + + if (treecapitatorCooldownMillisRemaining > getTreecapCooldownWithPet()) { + return stack.getItemDamage(); + } + float dura = (treecapitatorCooldownMillisRemaining / (float) getTreecapCooldownWithPet()); + durabilityOverrideMap.put(stack, dura); + return dura; + } + + durabilityOverrideMap.put(stack, -1f); + return -1; + } } -- cgit