aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNopoTheGamer <40329022+NopoTheGamer@users.noreply.github.com>2024-08-14 07:01:56 +1000
committerGitHub <noreply@github.com>2024-08-13 23:01:56 +0200
commite0f2329c779f3ca0652f64af4c9e2416280edb33 (patch)
treef8d0eda111947776865e46a9d95b0bcb3a8c8807
parentf829161159ed9d6aead2c47336bd34bb26863df6 (diff)
downloadnotenoughupdates-e0f2329c779f3ca0652f64af4c9e2416280edb33.tar.gz
notenoughupdates-e0f2329c779f3ca0652f64af4c9e2416280edb33.tar.bz2
notenoughupdates-e0f2329c779f3ca0652f64af4c9e2416280edb33.zip
Fix duplicates counting for mp in pv (#1311)
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java
index 22423c66..a83ab3c4 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/ProfileViewerUtils.java
@@ -40,6 +40,7 @@ import net.minecraft.util.EnumChatFormatting;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.AbstractMap;
+import java.util.ArrayList;
import java.util.Base64;
import java.util.Comparator;
import java.util.HashMap;
@@ -118,8 +119,39 @@ public class ProfileViewerUtils {
powerAmount += 11;
}
+ HashSet<String> duplicates = new HashSet<>();
+ for (Map.Entry<String, Integer> entry : accessories.entrySet()) {
+ if (duplicates.contains(entry.getKey())) continue;
+
+ JsonObject misc = Constants.MISC;
+ JsonElement talisman_upgrades_element = misc.get("talisman_upgrades");
+ if (talisman_upgrades_element == null) {
+ break;
+ }
+ String internalName = entry.getKey();
+ JsonObject talisman_upgrades = talisman_upgrades_element.getAsJsonObject();
+
+ if (talisman_upgrades.has(internalName)) {
+ JsonArray upgrades = talisman_upgrades.get(internalName).getAsJsonArray();
+ for (Map.Entry<String, Integer> entry2 : accessories.entrySet()) {
+ if (entry2 != entry) {
+ String internalname2 = entry2.getKey();
+ ArrayList<String> upgradeIDs = new ArrayList<>();
+ for (int j = 0; j < upgrades.size(); j++) {
+ String upgrade = upgrades.get(j).getAsString();
+ upgradeIDs.add(upgrade);
+ if (internalname2.equals(upgrade)) {
+ duplicates.add(internalname2);
+ }
+ }
+ }
+ }
+ }
+ }
+
for (Map.Entry<String, Integer> entry : accessories.entrySet()) {
if (ignoredTalismans.contains(entry.getKey())) continue;
+ if (duplicates.contains(entry.getKey())) continue;
JsonArray children = Utils
.getElementOrDefault(Constants.PARENTS, entry.getKey(), new JsonArray())