aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task
diff options
context:
space:
mode:
authorkr45732 <52721908+kr45732@users.noreply.github.com>2023-06-08 10:00:04 -0400
committerGitHub <noreply@github.com>2023-06-08 16:00:04 +0200
commit8115922b37e375285c2a72dbdbb5d83fd942e27c (patch)
treee0d6cb5228493e8bb032465cbb2dfd95b4946e43 /src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task
parenta6fb7bfb97d313b665085a52a660150f1da26065 (diff)
downloadnotenoughupdates-8115922b37e375285c2a72dbdbb5d83fd942e27c.tar.gz
notenoughupdates-8115922b37e375285c2a72dbdbb5d83fd942e27c.tar.bz2
notenoughupdates-8115922b37e375285c2a72dbdbb5d83fd942e27c.zip
PV Overhaul (#708)
Co-authored-by: Lulonaut <lulonaut@tutanota.de>
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/CoreTaskLevel.java27
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/DungeonTaskLevel.java37
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EssenceTaskLevel.java9
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EventTaskLevel.java9
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/GuiTaskLevel.java30
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/MiscTaskLevel.java20
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SkillRelatedTaskLevel.java40
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SlayingTaskLevel.java40
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/StoryTaskLevel.java9
9 files changed, 141 insertions, 80 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/CoreTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/CoreTaskLevel.java
index 8eb577d2..de79c0b5 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/CoreTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/CoreTaskLevel.java
@@ -22,7 +22,9 @@ package io.github.moulberry.notenoughupdates.profileviewer.level.task;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer;
import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer;
+import io.github.moulberry.notenoughupdates.profileviewer.SkyblockProfiles;
import io.github.moulberry.notenoughupdates.profileviewer.level.LevelPage;
import io.github.moulberry.notenoughupdates.util.Constants;
import io.github.moulberry.notenoughupdates.util.hypixelapi.ProfileCollectionInfo;
@@ -34,11 +36,11 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
-public class CoreTaskLevel {
+public class CoreTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
-
- public CoreTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public CoreTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
private final List<String> skills = Arrays.asList(
"taming",
@@ -52,13 +54,18 @@ public class CoreTaskLevel {
"alchemy"
);
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
JsonObject coreTask = levelPage.getConstant().get("core_task").getAsJsonObject();
- // skills
- Map<String, ProfileViewer.Level> skyblockInfo = levelPage.getProfile().getSkyblockInfo(levelPage.getProfileId());
+ SkyblockProfiles.SkyblockProfile selectedProfile = GuiProfileViewer.getSelectedProfile();
+ if (selectedProfile == null) {
+ return;
+ }
+
+ Map<String, ProfileViewer.Level> skyblockInfo = selectedProfile.getLevelingInfo();
int sbXpGainedSkillLVL = 0;
- if (skyblockInfo != null) {
+ if (skyblockInfo != null && selectedProfile.skillsApiEnabled()) {
for (String skill : skills) {
ProfileViewer.Level level = skyblockInfo.get(skill);
for (int i = 1; i <= level.level; i++) {
@@ -108,9 +115,7 @@ public class CoreTaskLevel {
JsonObject minionXp = Constants.MISC.get("minionXp").getAsJsonObject();
int collectionsXp = coreTask.get("collections_xp").getAsInt();
ProfileCollectionInfo collection;
- collection = levelPage.getProfile().getCollectionInfo(
- levelPage.getProfileId()
- );
+ collection = GuiProfileViewer.getSelectedProfile().getCollectionInfo();
if (collection != null) {
sbXpCollection = 0;
for (Map.Entry<String, ProfileCollectionInfo.CollectionInfo> stringCollectionInfoEntry : collection
@@ -122,7 +127,7 @@ public class CoreTaskLevel {
for (int tier : collection.getCraftedGenerators().values()) {
for (int i = 1; i <= tier; i++) {
- if (minionXp.has(i + "")) sbXpMinionTier += minionXp.get(i + "").getAsInt();
+ if (minionXp.has(String.valueOf(i))) sbXpMinionTier += minionXp.get(String.valueOf(i)).getAsInt();
}
}
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/DungeonTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/DungeonTaskLevel.java
index 6900cdf3..dfbfb834 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/DungeonTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/DungeonTaskLevel.java
@@ -23,26 +23,31 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
+import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer;
import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer;
+import io.github.moulberry.notenoughupdates.profileviewer.SkyblockProfiles;
import io.github.moulberry.notenoughupdates.profileviewer.level.LevelPage;
+import io.github.moulberry.notenoughupdates.profileviewer.weight.weight.Weight;
import io.github.moulberry.notenoughupdates.util.Utils;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Map;
-public class DungeonTaskLevel {
+public class DungeonTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
-
- public DungeonTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public DungeonTaskLevel(LevelPage levelPage) {super(levelPage);}
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
JsonObject dungeonTask = levelPage.getConstant().get("dungeon_task").getAsJsonObject();
- Map<String, ProfileViewer.Level> skyblockInfo =
- levelPage.getProfile().getSkyblockInfo(levelPage.getProfileId());
+ SkyblockProfiles.SkyblockProfile selectedProfile = GuiProfileViewer.getSelectedProfile();
+ if (selectedProfile == null) {
+ return;
+ }
+
+ Map<String, ProfileViewer.Level> skyblockInfo = selectedProfile.getLevelingInfo();
int sbLevelGainedFloor = 0;
int sbXpGainedClass = 0;
@@ -60,8 +65,7 @@ public class DungeonTaskLevel {
}
}
- List<String> dungeonClasses = Arrays.asList("healer", "tank", "mage", "archer", "berserk");
- for (String dungeonClass : dungeonClasses) {
+ for (String dungeonClass : Weight.DUNGEON_CLASS_NAMES) {
ProfileViewer.Level level = skyblockInfo.get(dungeonClass);
for (int i = 1; i <= level.level; i++) {
if (i <= 50) sbXpGainedClass += dungeonTask.get("class_xp").getAsInt();
@@ -72,11 +76,10 @@ public class DungeonTaskLevel {
int index = 0;
for (JsonElement completeCatacomb : completeCatacombs) {
int value = completeCatacomb.getAsInt();
- JsonObject normalCompletions = Utils
- .getElement(object, "dungeons.dungeon_types.catacombs.tier_completions")
- .getAsJsonObject();
- if (normalCompletions.has(index + "")) {
- sbLevelGainedFloor = sbLevelGainedFloor + value;
+ JsonElement normalCompletions = Utils
+ .getElementOrDefault(object, "dungeons.dungeon_types.catacombs.tier_completions", null);
+ if (normalCompletions != null && normalCompletions.getAsJsonObject().has("" + index)) {
+ sbLevelGainedFloor += value;
}
index++;
}
@@ -86,8 +89,8 @@ public class DungeonTaskLevel {
JsonElement masterCompletions = Utils
.getElementOrDefault(object, "dungeons.dungeon_types.master_catacombs.tier_completions", null);
if (masterCompletions != null) {
- if (masterCompletions.getAsJsonObject().has(i + "")) {
- sbLevelGainedFloor = sbLevelGainedFloor + masterCatacombs;
+ if (masterCompletions.getAsJsonObject().has("" + i)) {
+ sbLevelGainedFloor += masterCatacombs;
}
}
}
@@ -105,8 +108,6 @@ public class DungeonTaskLevel {
lore.add(levelPage.buildLore("Class Level Up", sbXpGainedClass, classLevelUp, false));
lore.add(levelPage.buildLore("Complete Dungeons", sbLevelGainedFloor, completeDungeon, false));
- int totalSbXpGain = sbXpGainedLvl + sbXpGainedClass + sbLevelGainedFloor;
-
levelPage.renderLevelBar(
"Dungeon Task",
NotEnoughUpdates.INSTANCE.manager
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EssenceTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EssenceTaskLevel.java
index c6df6fc1..105c7056 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EssenceTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EssenceTaskLevel.java
@@ -33,12 +33,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class EssenceTaskLevel {
+public class EssenceTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
-
- public EssenceTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public EssenceTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
List<String> lore = new ArrayList<>();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EventTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EventTaskLevel.java
index a5dc994a..ee028683 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EventTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/EventTaskLevel.java
@@ -29,12 +29,13 @@ import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.List;
-public class EventTaskLevel {
+public class EventTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
-
- public EventTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public EventTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
List<String> lore = new ArrayList<>();
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/GuiTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/GuiTaskLevel.java
new file mode 100644
index 00000000..01002485
--- /dev/null
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/GuiTaskLevel.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2023 NotEnoughUpdates contributors
+ *
+ * This file is part of NotEnoughUpdates.
+ *
+ * NotEnoughUpdates is free software: you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * NotEnoughUpdates is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package io.github.moulberry.notenoughupdates.profileviewer.level.task;
+
+import com.google.gson.JsonObject;
+import io.github.moulberry.notenoughupdates.profileviewer.level.LevelPage;
+
+public abstract class GuiTaskLevel {
+ public final LevelPage levelPage;
+ public GuiTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+
+ public abstract void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop);
+}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/MiscTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/MiscTaskLevel.java
index f78052f5..3ce2a34d 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/MiscTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/MiscTaskLevel.java
@@ -23,6 +23,8 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import io.github.moulberry.notenoughupdates.profileviewer.CrimsonIslePage;
+import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer;
+import io.github.moulberry.notenoughupdates.profileviewer.SkyblockProfiles;
import io.github.moulberry.notenoughupdates.profileviewer.level.LevelPage;
import io.github.moulberry.notenoughupdates.util.Utils;
import net.minecraft.init.Items;
@@ -35,12 +37,13 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
-public class MiscTaskLevel {
+public class MiscTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
-
- public MiscTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public MiscTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
JsonObject miscellaneousTask = levelPage.getConstant().getAsJsonObject("miscellaneous_task");
// I love doing this on god!!!
@@ -113,9 +116,14 @@ public class MiscTaskLevel {
}
}
+ SkyblockProfiles.SkyblockProfile selectedProfile = GuiProfileViewer.getSelectedProfile();
+ if (selectedProfile == null) {
+ return;
+ }
+
// community upgrades
int sbXpCommunityUpgrade = 0;
- JsonObject profileInformation = levelPage.getProfile().getProfileInformation(levelPage.getProfileId());
+ JsonObject profileInformation = selectedProfile.getOuterProfileJson();
if (profileInformation != null && profileInformation.has("community_upgrades")) {
JsonObject communityUpgrades = profileInformation.getAsJsonObject("community_upgrades");
JsonArray upgradeStates = communityUpgrades.getAsJsonArray("upgrade_states");
@@ -191,8 +199,6 @@ public class MiscTaskLevel {
true,
lore
);
-
- totalXp += sbXpAccessoryUpgrade + sbXpUnlockedPowers;
}
private int getRankIndex(int pointsTotal) {
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SkillRelatedTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SkillRelatedTaskLevel.java
index 176fc899..fd56aca1 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SkillRelatedTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SkillRelatedTaskLevel.java
@@ -22,9 +22,10 @@ package io.github.moulberry.notenoughupdates.profileviewer.level.task;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer;
import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer;
+import io.github.moulberry.notenoughupdates.profileviewer.SkyblockProfiles;
import io.github.moulberry.notenoughupdates.profileviewer.level.LevelPage;
-import io.github.moulberry.notenoughupdates.util.Constants;
import io.github.moulberry.notenoughupdates.util.Utils;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@@ -33,29 +34,32 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-public class SkillRelatedTaskLevel {
+public class SkillRelatedTaskLevel extends GuiTaskLevel{
- private final LevelPage levelPage;
-
- public SkillRelatedTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public SkillRelatedTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
- JsonObject skillRelatedTask = levelPage.getConstant().get("skill_related_task").getAsJsonObject();
- JsonObject miningObj = skillRelatedTask.get("mining").getAsJsonObject();
-
- float hotmXp = Utils.getElementAsFloat(Utils.getElement(object, "mining_core.experience"), 0);
- ProfileViewer.Level levelObjHotm =
- ProfileViewer.getLevel(
- Utils.getElementOrDefault(Constants.LEVELING, "HOTM", new JsonArray()).getAsJsonArray(),
- hotmXp,
- 7,
- false
- );
+ SkyblockProfiles.SkyblockProfile selectedProfile = GuiProfileViewer.getSelectedProfile();
+ if (selectedProfile == null) {
+ return;
+ }
+
+ Map<String, ProfileViewer.Level> levelingInfo = selectedProfile.getLevelingInfo();
+ if (levelingInfo == null) {
+ return;
+ }
+
+ JsonObject skillRelatedTask = levelPage.getConstant().getAsJsonObject("skill_related_task");
+ JsonObject miningObj = skillRelatedTask.getAsJsonObject("mining");
+
+ int hotmLevel = (int) levelingInfo.get("hotm").level;
int hotmXP = 0;
- float level = levelObjHotm.level;
JsonArray hotmXpArray = miningObj.get("hotm_xp").getAsJsonArray();
- for (int i = 1; i <= level; i++) {
+ for (int i = 1; i <= hotmLevel; i++) {
hotmXP += hotmXpArray.get(i - 1).getAsInt();
}
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SlayingTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SlayingTaskLevel.java
index 6b624a52..a8301bb6 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SlayingTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/SlayingTaskLevel.java
@@ -24,10 +24,12 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import io.github.moulberry.notenoughupdates.NotEnoughUpdates;
import io.github.moulberry.notenoughupdates.profileviewer.CrimsonIslePage;
-import io.github.moulberry.notenoughupdates.profileviewer.ExtraPage;
import io.github.moulberry.notenoughupdates.profileviewer.GuiProfileViewer;
import io.github.moulberry.notenoughupdates.profileviewer.ProfileViewer;
+import io.github.moulberry.notenoughupdates.profileviewer.SkyblockProfiles;
import io.github.moulberry.notenoughupdates.profileviewer.level.LevelPage;
+import io.github.moulberry.notenoughupdates.profileviewer.weight.weight.Weight;
+import io.github.moulberry.notenoughupdates.util.Constants;
import io.github.moulberry.notenoughupdates.util.Utils;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@@ -37,25 +39,31 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class SlayingTaskLevel {
+public class SlayingTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
private final int[] bossLow = {25, 50, 100, 150, 250, 1000};
private final int[] thorn = {25, 50, 150, 250, 400, 1000};
private final int[] bossHigh = {50, 100, 150, 250, 500, 750, 1000};
+ public SlayingTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
- public SlayingTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
-
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
// slayer
JsonObject slayingTask = levelPage.getConstant().get("slaying_task").getAsJsonObject();
JsonArray slayerLevelUpXp = slayingTask.get("slayer_level_up_xp").getAsJsonArray();
- Map<String, ProfileViewer.Level> skyblockInfo = levelPage.getProfile().getSkyblockInfo(levelPage.getProfileId());
+ SkyblockProfiles.SkyblockProfile selectedProfile = GuiProfileViewer.getSelectedProfile();
+ if (selectedProfile == null) {
+ return;
+ }
+
+ Map<String, ProfileViewer.Level> skyblockInfo = selectedProfile.getLevelingInfo();
int sbXpGainedSlayer = 0;
if (skyblockInfo != null) {
- for (String slayer : ProfileViewer.SLAYERS) {
+ for (String slayer : Weight.SLAYER_NAMES) {
ProfileViewer.Level level = skyblockInfo.get(slayer);
for (int i = 0; i < (int) level.level; i++) {
int asInt = slayerLevelUpXp.get(i).getAsInt();
@@ -105,8 +113,8 @@ public class SlayingTaskLevel {
int bossCollectionXp = 0;
JsonArray dungeonCollectionXp = bossCollectionsXp.getAsJsonArray("dungeon_collection_xp");
for (int i = 1; i <= 7; i++) {
- if (!allComps.containsKey(i + "")) continue;
- double value = allComps.get(i + "");
+ if (!allComps.containsKey(String.valueOf(i))) continue;
+ double value = allComps.get(String.valueOf(i));
switch (i) {
case 1:
case 2:
@@ -154,7 +162,7 @@ public class SlayingTaskLevel {
}
int sbXpBestiary = 0;
- int bestiaryTiers = GuiProfileViewer.getProfile().getBestiaryTiers(object);
+ int bestiaryTiers = GuiProfileViewer.getSelectedProfile().getBestiaryLevel();
sbXpBestiary += bestiaryTiers;
sbXpBestiary = sbXpBestiary + (sbXpBestiary / 10) * 2;
@@ -184,12 +192,17 @@ public class SlayingTaskLevel {
int sbXpFromSlayerDefeat = 0;
JsonArray defeatSlayersXp = slayingTask.get("defeat_slayers_xp").getAsJsonArray();
- for (String s : ExtraPage.slayers.keySet()) {
- int maxLevel = ExtraPage.slayers.get(s);
+ JsonObject slayerToTier = Constants.LEVELING.getAsJsonObject("slayer_to_highest_tier");
+ if (slayerToTier == null) {
+ Utils.showOutdatedRepoNotification();
+ return;
+ }
+ for (Map.Entry<String, JsonElement> entry : slayerToTier.entrySet()) {
+ int maxLevel = entry.getValue().getAsInt();
for (int i = 0; i < 5; i++) {
if (i >= maxLevel) break;
float tier = Utils.getElementAsFloat(
- Utils.getElement(object, "slayer_bosses." + s + ".boss_kills_tier_" + i),
+ Utils.getElement(object, "slayer_bosses." + entry.getKey() + ".boss_kills_tier_" + i),
0
);
if (tier != 0) {
@@ -247,7 +260,6 @@ public class SlayingTaskLevel {
true,
lore
);
- totalXp += sbXpBestiary;
}
private int loopThroughCollection(int[] array, double value, JsonArray jsonArray) {
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/StoryTaskLevel.java b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/StoryTaskLevel.java
index 3846db5f..1cda3e01 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/StoryTaskLevel.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/profileviewer/level/task/StoryTaskLevel.java
@@ -29,12 +29,13 @@ import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.List;
-public class StoryTaskLevel {
+public class StoryTaskLevel extends GuiTaskLevel {
- private final LevelPage levelPage;
-
- public StoryTaskLevel(LevelPage levelPage) {this.levelPage = levelPage;}
+ public StoryTaskLevel(LevelPage levelPage) {
+ super(levelPage);
+ }
+ @Override
public void drawTask(JsonObject object, int mouseX, int mouseY, int guiLeft, int guiTop) {
JsonObject storyTask = levelPage.getConstant().getAsJsonObject("story_task");
JsonArray storyTaskNames = storyTask.getAsJsonArray("complete_objectives_names");