diff options
| author | BuildTools <james.jenour@protonmail.com> | 2021-02-17 22:50:19 +0800 |
|---|---|---|
| committer | BuildTools <james.jenour@protonmail.com> | 2021-02-17 22:50:19 +0800 |
| commit | de834a97505c66b5655ee7ff91e78e84da3f81f3 (patch) | |
| tree | 93eb09a06d02501c060fb0401221d34a5bc24fd8 /src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java | |
| parent | a0e7d174472d034142003e58a42d6beefe36a92b (diff) | |
| download | notenoughupdates-de834a97505c66b5655ee7ff91e78e84da3f81f3.tar.gz notenoughupdates-de834a97505c66b5655ee7ff91e78e84da3f81f3.tar.bz2 notenoughupdates-de834a97505c66b5655ee7ff91e78e84da3f81f3.zip | |
PRE22
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java | 62 |
1 files changed, 57 insertions, 5 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java index 51a9dcd6..b3ce3835 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/PetInfoOverlay.java @@ -19,6 +19,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; @@ -96,6 +97,8 @@ public class PetInfoOverlay extends TextOverlay { private float xpGainHourLast = -1; private float xpGainHour = -1; + private int xpAddTimer = 0; + public static void clearPet() { if(currentPet != null) { petList.computeIfAbsent(currentPet.petType + ";" + currentPet.rarity.petId, k->new HashSet<>()).add(currentPet); @@ -131,7 +134,7 @@ public class PetInfoOverlay extends TextOverlay { Set<Pet> itemMatches = new HashSet<>(); for(Pet pet : pets) { if((searchItem == null && pet.petItem == null) || - (searchItem.equals(pet.petItem))) { + (searchItem != null && searchItem.equals(pet.petItem))) { itemMatches.add(pet); } } @@ -528,11 +531,17 @@ public class PetInfoOverlay extends TextOverlay { } xpGainHourLast = xpGainHour; - if(totalGain > 0) { + if(xpAddTimer > 0 || totalGain > 0) { + if(totalGain > 0) { + xpAddTimer = 10; + } else { + xpAddTimer--; + } + currentPet.petLevel.totalXp += totalGain; xpGainQueue.add(0, totalGain); - while(xpGainQueue.size() > 20) { + while(xpGainQueue.size() > 30) { xpGainQueue.removeLast(); } @@ -556,7 +565,7 @@ public class PetInfoOverlay extends TextOverlay { if(s.contains(".")) { return NumberFormat.getNumberInstance().format((int)f) + '.' + s.split("\\.")[1]; } else if(s.contains(",")) { - return NumberFormat.getNumberInstance().format((int)f) + ',' + s.split("\\.")[1]; + return NumberFormat.getNumberInstance().format((int)f) + ',' + s.split(",")[1]; } else { return s; } @@ -611,6 +620,8 @@ public class PetInfoOverlay extends TextOverlay { } } } + + private static final Pattern AUTOPET_EQUIP = Pattern.compile("\u00a7cAutopet \u00a7eequipped your \u00a77\\[Lvl (\\d+)] \u00a7(.{2,})\u00a7e! \u00a7a\u00a7lVIEW RULE\u00a7r"); @SubscribeEvent(priority = EventPriority.HIGHEST) public void onChatReceived(ClientChatReceivedEvent event) { @@ -618,7 +629,45 @@ public class PetInfoOverlay extends TextOverlay { if(NotEnoughUpdates.INSTANCE.hasSkyblockScoreboard() && (config.petOverlay.enablePetInfo || config.treecap.enableMonkeyCheck || config.notifications.showWrongPetMsg)) { if(event.type == 0) { String chatMessage = Utils.cleanColour(event.message.getUnformattedText()); - if(chatMessage.toLowerCase().startsWith("you summoned your")) { + + if(event.message.getFormattedText().contains("Autopet")) System.out.println(event.message.getFormattedText()); + Matcher autopetMatcher = AUTOPET_EQUIP.matcher(event.message.getFormattedText()); + if(autopetMatcher.matches()) { + try { + lastLevelHovered = Integer.parseInt(autopetMatcher.group(1)); + } catch(NumberFormatException ignored) {} + + String petStringMatch = autopetMatcher.group(2); + char colChar = petStringMatch.charAt(0); + EnumChatFormatting col = EnumChatFormatting.RESET; + for(EnumChatFormatting formatting : EnumChatFormatting.values()) { + if(formatting.toString().equals("\u00a7"+colChar)) { + col = formatting; + break; + } + + } + Rarity rarity = Rarity.COMMON; + if(col != EnumChatFormatting.RESET) { + rarity = Rarity.getRarityFromColor(col); + } + + String pet = Utils.cleanColour(petStringMatch.substring(1)).trim().toUpperCase(); + if(petList.containsKey(pet + ";" + rarity.petId)) { + Set<Pet> pets = petList.get(pet + ";" + rarity.petId); + + if(pets.size() == 1) { + currentPet = pets.iterator().next(); + } else { + currentPet = getClosestPet(pet, rarity.petId, lastItemHovered, lastLevelHovered); + } + } else { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"[NEU] Can't find pet \u00a7" + petStringMatch + + " are you sure API key is correct? Try doing /api new and rejoining hypixel.")); + } + + + } else if(chatMessage.toLowerCase().startsWith("you summoned your")) { clearPet(); String pet = chatMessage.trim().toUpperCase().replace("YOU SUMMONED YOUR ", "").replace("!", "").replace(" ", "_"); @@ -633,6 +682,9 @@ public class PetInfoOverlay extends TextOverlay { } else { currentPet = getClosestPet(pet, rarity.petId, lastItemHovered, lastLevelHovered); } + } else { + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.RED+"[NEU] Can't find pet " + pet + ";" + rarity.petId + + " are you sure API key is correct? Try doing /api new and rejoining hypixel.")); } } else if(chatMessage.toLowerCase().startsWith("you despawned your")) { clearPet(); |
