diff options
3 files changed, 43 insertions, 7 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/MinionHelperManager.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/MinionHelperManager.java index aa579774..af9a0c44 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/MinionHelperManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/MinionHelperManager.java @@ -40,6 +40,7 @@ import net.minecraft.inventory.ContainerChest; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -251,8 +252,6 @@ public class MinionHelperManager { int has = highestCollectionTier.get(internalName); return has >= need; -// } else { -// Utils.addChatMessage("§cInvalid hypixel collection name: '" + internalName + "'"); } } else if (requirement instanceof SlayerRequirement) { @@ -273,7 +272,7 @@ public class MinionHelperManager { } else if (reputationType.equals("MAGE")) { return apiData.getMagesReputation() >= need; } else { - Utils.addChatMessage("§cUnknown reputation type: '" + reputationType + "'"); + Utils.addChatMessage("§c[NEU] Minion Helper: Unknown reputation type: '" + reputationType + "'"); return false; } } else if (requirement instanceof CustomRequirement) { @@ -345,4 +344,16 @@ public class MinionHelperManager { Utils.addChatMessage("§6/neudevtest minion resetapi §7Manually loading the data from api"); Utils.addChatMessage(""); } + + public List<Minion> getChilds(Minion minion) { + List<Minion> list = new ArrayList<>(); + for (Minion other : minions.values()) { + if (minion == other.getParent()) { + list.add(other); + list.addAll(getChilds(other)); + break; + } + } + return list; + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperChatLoader.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperChatLoader.java index 24688308..d4e0f3f4 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperChatLoader.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperChatLoader.java @@ -22,6 +22,7 @@ package io.github.moulberry.notenoughupdates.miscgui.minionhelper.loaders; import io.github.moulberry.notenoughupdates.core.util.StringUtils; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.Minion; import io.github.moulberry.notenoughupdates.miscgui.minionhelper.MinionHelperManager; +import io.github.moulberry.notenoughupdates.miscgui.minionhelper.MinionHelperOverlay; import io.github.moulberry.notenoughupdates.util.Utils; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; @@ -49,13 +50,36 @@ public class MinionHelperChatLoader { String rawTier = text.split(" ")[0]; int tier = Utils.parseRomanNumeral(rawTier); String name = text.substring(rawTier.length() + 1); - Minion minionByName = manager.getMinionByName(name, tier); - minionByName.setCrafted(true); + + setCrafted(manager.getMinionByName(name, tier)); + } + + if (message.contains("§f §acrafted a §eTier ") && message.contains(" Minion§a!")) { + String text = StringUtils.substringBetween(message, "§eTier ", "§a!"); + String rawTier = text.split(" ")[0]; + int tier = Utils.parseRomanNumeral(rawTier); + String name = text.substring(rawTier.length() + 1); + + setCrafted(manager.getMinionByName(name, tier)); + MinionHelperOverlay.getInstance().resetCache(); } + } catch (Exception e) { Utils.addChatMessage( "[NEU] §cMinion Helper failed reading the minion upgrade message. See the logs for more info!"); e.printStackTrace(); } } + + private void setCrafted(Minion minion) { + minion.setCrafted(true); + + if (!minion.doesMeetRequirements()) { + minion.setMeetRequirements(true); + + for (Minion child : manager.getChilds(minion)) { + child.setMeetRequirements(true); + } + } + } } diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperRepoLoader.java b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperRepoLoader.java index 868fdaad..d275909d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperRepoLoader.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscgui/minionhelper/loaders/MinionHelperRepoLoader.java @@ -326,8 +326,9 @@ public class MinionHelperRepoLoader { if (same) { parent = manager.getMinionById(itemName); if (parent == null) { - String message = "Parent is null for minion " + minionInternalName; - Utils.addChatMessage(message); + if (NotEnoughUpdates.INSTANCE.config.hidden.dev) { + Utils.addChatMessage("Parent is null for minion " + minionInternalName); + } } isParent = true; } |