aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2024-07-31 14:06:48 +0800
committerGitHub <noreply@github.com>2024-07-31 14:06:48 +0800
commit4326f83dfef63eaa1541b4c559289f1d82e8d1e2 (patch)
tree150dfd28518d3cb852578daf44baebb9e178db40 /src/main/java
parentb498af11f092ee31da124e1c8714f213d253439f (diff)
parent22fbe20bc27535d81c213e45777efa9792c11667 (diff)
downloadSkyblocker-4326f83dfef63eaa1541b4c559289f1d82e8d1e2.tar.gz
Skyblocker-4326f83dfef63eaa1541b4c559289f1d82e8d1e2.tar.bz2
Skyblocker-4326f83dfef63eaa1541b4c559289f1d82e8d1e2.zip
Merge pull request #867 from kevinthegreat1/id-cleanup
Clean up id mess and add tests
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/injected/SkyblockerStack.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java145
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/PetCache.java16
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java55
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PrehistoricEggAdder.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java42
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/CraftPriceTooltip.java7
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/itemlist/ItemRepository.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ItemUtils.java248
21 files changed, 279 insertions, 327 deletions
diff --git a/src/main/java/de/hysky/skyblocker/injected/SkyblockerStack.java b/src/main/java/de/hysky/skyblocker/injected/SkyblockerStack.java
index 2f54917b..28282b20 100644
--- a/src/main/java/de/hysky/skyblocker/injected/SkyblockerStack.java
+++ b/src/main/java/de/hysky/skyblocker/injected/SkyblockerStack.java
@@ -1,19 +1,19 @@
package de.hysky.skyblocker.injected;
-import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.NotNull;
public interface SkyblockerStack {
- @Nullable
+ @NotNull
default String getSkyblockId() {
return "";
}
- @Nullable
+ @NotNull
default String getSkyblockApiId() {
return "";
}
- @Nullable
+ @NotNull
default String getNeuName() {
return "";
}
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java
index 1493cf26..2c555475 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/ItemStackMixin.java
@@ -1,13 +1,8 @@
package de.hysky.skyblocker.mixins;
-import com.google.gson.JsonParser;
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
-import com.mojang.serialization.JsonOps;
-
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.injected.SkyblockerStack;
-import de.hysky.skyblocker.skyblock.PetCache.PetInfo;
-import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.profileviewer.ProfileViewerScreen;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
@@ -17,10 +12,8 @@ import net.minecraft.component.ComponentHolder;
import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipAppender;
-import net.minecraft.nbt.NbtCompound;
-import net.minecraft.nbt.NbtElement;
import net.minecraft.text.Text;
-import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.NotNull;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
@@ -29,9 +22,6 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import java.util.Locale;
-import java.util.Optional;
-
@Mixin(ItemStack.class)
public abstract class ItemStackMixin implements ComponentHolder, SkyblockerStack {
@@ -129,144 +119,23 @@ public abstract class ItemStackMixin implements ComponentHolder, SkyblockerStack
}
@Override
- @Nullable
+ @NotNull
public String getSkyblockId() {
if (skyblockId != null && !skyblockId.isEmpty()) return skyblockId;
- return skyblockId = skyblocker$getSkyblockId(true);
+ return skyblockId = ItemUtils.getItemId(this);
}
@Override
- @Nullable
+ @NotNull
public String getSkyblockApiId() {
if (skyblockApiId != null && !skyblockApiId.isEmpty()) return skyblockApiId;
- return skyblockApiId = skyblocker$getSkyblockId(false);
+ return skyblockApiId = ItemUtils.getSkyblockApiId(this);
}
@Override
- @Nullable
+ @NotNull
public String getNeuName() {
if (neuName != null && !neuName.isEmpty()) return neuName;
- String apiId = getSkyblockApiId();
- String id = getSkyblockId();
- if (apiId == null || id == null) return null;
-
- if (apiId.startsWith("ISSHINY_")) apiId = id;
-
- return neuName = ItemTooltip.getNeuName(id, apiId);
- }
-
- @Unique
- private String skyblocker$getSkyblockId(boolean internalIDOnly) {
- NbtCompound customData = ItemUtils.getCustomData((ItemStack) (Object) this);
-
- if (customData == null || !customData.contains(ItemUtils.ID, NbtElement.STRING_TYPE)) {
- return null;
- }
- String customDataString = customData.getString(ItemUtils.ID);
-
- if (internalIDOnly) {
- return customDataString;
- }
-
- // Transformation to API format.
- //TODO future - remove this and just handle it directly for the NEU id conversion because this whole system is confusing and hard to follow
- if (customData.contains("is_shiny")) {
- return "ISSHINY_" + customDataString;
- }
-
- switch (customDataString) {
- case "ENCHANTED_BOOK" -> {
- if (customData.contains("enchantments")) {
- NbtCompound enchants = customData.getCompound("enchantments");
- Optional<String> firstEnchant = enchants.getKeys().stream().findFirst();
- String enchant = firstEnchant.orElse("");
- return "ENCHANTMENT_" + enchant.toUpperCase(Locale.ENGLISH) + "_" + enchants.getInt(enchant);
- }
- }
-
- case "PET" -> {
- if (customData.contains("petInfo")) {
- PetInfo petInfo = PetInfo.CODEC.parse(JsonOps.INSTANCE, JsonParser.parseString(customData.getString("petInfo"))).getOrThrow();
- return "LVL_1_" + petInfo.tier() + "_" + petInfo.type();
- }
- }
-
- case "POTION" -> {
- String enhanced = customData.contains("enhanced") ? "_ENHANCED" : "";
- String extended = customData.contains("extended") ? "_EXTENDED" : "";
- String splash = customData.contains("splash") ? "_SPLASH" : "";
- if (customData.contains("potion") && customData.contains("potion_level")) {
- return (customData.getString("potion") + "_" + customDataString + "_" + customData.getInt("potion_level")
- + enhanced + extended + splash).toUpperCase(Locale.ENGLISH);
- }
- }
-
- case "RUNE" -> {
- if (customData.contains("runes")) {
- NbtCompound runes = customData.getCompound("runes");
- Optional<String> firstRunes = runes.getKeys().stream().findFirst();
- String rune = firstRunes.orElse("");
- return rune.toUpperCase(Locale.ENGLISH) + "_RUNE_" + runes.getInt(rune);
- }
- }
-
- case "ATTRIBUTE_SHARD" -> {
- if (customData.contains("attributes")) {
- NbtCompound shards = customData.getCompound("attributes");
- Optional<String> firstShards = shards.getKeys().stream().findFirst();
- String shard = firstShards.orElse("");
- return customDataString + "-" + shard.toUpperCase(Locale.ENGLISH) + "_" + shards.getInt(shard);
- }
- }
-
- case "NEW_YEAR_CAKE" -> {
- return customDataString + "_" + customData.getInt("new_years_cake");
- }
-
- case "PARTY_HAT_CRAB", "PARTY_HAT_CRAB_ANIMATED", "BALLOON_HAT_2024" -> {
- return customDataString + "_" + customData.getString("party_hat_color").toUpperCase(Locale.ENGLISH);
- }
-
- case "PARTY_HAT_SLOTH" -> {
- return customDataString + "_" + customData.getString("party_hat_emoji").toUpperCase(Locale.ENGLISH);
- }
-
- case "CRIMSON_HELMET", "CRIMSON_CHESTPLATE", "CRIMSON_LEGGINGS", "CRIMSON_BOOTS" -> {
- NbtCompound attributes = customData.getCompound("attributes");
-
- if (attributes.contains("magic_find") && attributes.contains("veteran")) {
- return customDataString + "-MAGIC_FIND-VETERAN";
- }
- }
-
- case "AURORA_HELMET", "AURORA_CHESTPLATE", "AURORA_LEGGINGS", "AURORA_BOOTS" -> {
- NbtCompound attributes = customData.getCompound("attributes");
-
- if (attributes.contains("mana_pool") && attributes.contains("mana_regeneration")) {
- return customDataString + "-MANA_POOL-MANA_REGENERATION";
- }
- }
-
- case "TERROR_HELMET", "TERROR_CHESTPLATE", "TERROR_LEGGINGS", "TERROR_BOOTS" -> {
- NbtCompound attributes = customData.getCompound("attributes");
-
- if (attributes.contains("lifeline") && attributes.contains("mana_pool")) {
- return customDataString + "-LIFELINE-MANA_POOL";
- }
- }
-
- case "MIDAS_SWORD" -> {
- if (customData.getInt("winning_bid") >= 50000000) {
- return customDataString + "_50M";
- }
- }
-
- case "MIDAS_STAFF" -> {
- if (customData.getInt("winning_bid") >= 100000000) {
- return customDataString + "_100M";
- }
- }
- }
- return customDataString;
+ return neuName = ItemUtils.getNeuId((ItemStack) (Object) this);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java b/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java
index 908525e1..c997cda0 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/ChestValue.java
@@ -1,12 +1,10 @@
package de.hysky.skyblocker.skyblock;
-import com.google.gson.JsonObject;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.config.configs.DungeonsConfig;
import de.hysky.skyblocker.config.configs.UIAndVisualsConfig;
import de.hysky.skyblocker.mixins.accessors.HandledScreenAccessor;
import de.hysky.skyblocker.mixins.accessors.ScreenAccessor;
-import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
import it.unimi.dsi.fastutil.doubles.DoubleBooleanPair;
@@ -79,11 +77,11 @@ public class ChestValue {
}
String name = stack.getName().getString();
- String id = stack.getSkyblockApiId();
+ String skyblockApiId = stack.getSkyblockApiId();
//Regular item price
- if (id != null) {
- DoubleBooleanPair priceData = ItemUtils.getItemPrice(id);
+ if (!skyblockApiId.isEmpty()) {
+ DoubleBooleanPair priceData = ItemUtils.getItemPrice(skyblockApiId);
if (!priceData.rightBoolean()) hasIncompleteData = true;
@@ -160,7 +158,7 @@ public class ChestValue {
String id = stack.getSkyblockApiId();
- if (id != null) {
+ if (!id.isEmpty()) {
DoubleBooleanPair priceData = ItemUtils.getItemPrice(id);
if (!priceData.rightBoolean()) hasIncompleteData = true;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java b/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java
index 8ddcd60e..59cae058 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/PetCache.java
@@ -14,6 +14,7 @@ import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.screen.slot.Slot;
+import org.apache.commons.lang3.ArrayUtils;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
@@ -27,7 +28,7 @@ import java.util.concurrent.CompletableFuture;
/**
* Doesn't work with auto pet right now because thats complicated.
- *
+ * <p>
* Want support? Ask the Admins for a Mod API event or open your pets menu.
*/
public class PetCache {
@@ -134,16 +135,23 @@ public class PetCache {
}
public record PetInfo(String type, double exp, String tier, Optional<String> uuid, Optional<String> item, Optional<String> skin) {
+ // TODO: Combine with SkyblockItemRarity
+ private static final String[] TIER_INDEX = {"COMMON", "UNCOMMON", "RARE", "EPIC", "LEGENDARY", "MYTHIC"};
+
public static final Codec<PetInfo> CODEC = RecordCodecBuilder.create(instance -> instance.group(
Codec.STRING.fieldOf("type").forGetter(PetInfo::type),
Codec.DOUBLE.fieldOf("exp").forGetter(PetInfo::exp),
Codec.STRING.fieldOf("tier").forGetter(PetInfo::tier),
Codec.STRING.optionalFieldOf("uuid").forGetter(PetInfo::uuid),
Codec.STRING.optionalFieldOf("heldItem").forGetter(PetInfo::item),
- Codec.STRING.optionalFieldOf("skin").forGetter(PetInfo::skin))
- .apply(instance, PetInfo::new));
+ Codec.STRING.optionalFieldOf("skin").forGetter(PetInfo::skin)
+ ).apply(instance, PetInfo::new));
private static final Codec<Object2ObjectOpenHashMap<String, Object2ObjectOpenHashMap<String, PetInfo>>> SERIALIZATION_CODEC = Codec.unboundedMap(Codec.STRING,
Codec.unboundedMap(Codec.STRING, CODEC).xmap(Object2ObjectOpenHashMap::new, Object2ObjectOpenHashMap::new)
- ).xmap(Object2ObjectOpenHashMap::new, Object2ObjectOpenHashMap::new);
+ ).xmap(Object2ObjectOpenHashMap::new, Object2ObjectOpenHashMap::new);
+
+ public int tierIndex() {
+ return ArrayUtils.indexOf(TIER_INDEX, tier);
+ }
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java
index 354c92fb..50ad1240 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/TeleportOverlay.java
@@ -29,39 +29,37 @@ public class TeleportOverlay {
String itemId = heldItem.getSkyblockId();
NbtCompound customData = ItemUtils.getCustomData(heldItem);
- if (itemId != null) {
- switch (itemId) {
- case "ASPECT_OF_THE_LEECH_1" -> {
- if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableWeirdTransmission) {
- render(wrc, 3);
- }
+ switch (itemId) {
+ case "ASPECT_OF_THE_LEECH_1" -> {
+ if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableWeirdTransmission) {
+ render(wrc, 3);
}
- case "ASPECT_OF_THE_LEECH_2" -> {
- if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableWeirdTransmission) {
- render(wrc, 4);
- }
+ }
+ case "ASPECT_OF_THE_LEECH_2" -> {
+ if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableWeirdTransmission) {
+ render(wrc, 4);
}
- case "ASPECT_OF_THE_END", "ASPECT_OF_THE_VOID" -> {
- if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableEtherTransmission && client.options.sneakKey.isPressed() && customData != null && customData.getInt("ethermerge") == 1) {
- render(wrc, customData, 57);
- } else if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableInstantTransmission) {
- render(wrc, customData, 8);
- }
+ }
+ case "ASPECT_OF_THE_END", "ASPECT_OF_THE_VOID" -> {
+ if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableEtherTransmission && client.options.sneakKey.isPressed() && customData.getInt("ethermerge") == 1) {
+ render(wrc, customData, 57);
+ } else if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableInstantTransmission) {
+ render(wrc, customData, 8);
}
- case "ETHERWARP_CONDUIT" -> {
- if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableEtherTransmission) {
- render(wrc, customData, 57);
- }
+ }
+ case "ETHERWARP_CONDUIT" -> {
+ if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableEtherTransmission) {
+ render(wrc, customData, 57);
}
- case "SINSEEKER_SCYTHE" -> {
- if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableSinrecallTransmission) {
- render(wrc, customData, 4);
- }
+ }
+ case "SINSEEKER_SCYTHE" -> {
+ if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableSinrecallTransmission) {
+ render(wrc, customData, 4);
}
- case "NECRON_BLADE", "ASTRAEA", "HYPERION", "SCYLLA", "VALKYRIE" -> {
- if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableWitherImpact) {
- render(wrc, 10);
- }
+ }
+ case "NECRON_BLADE", "ASTRAEA", "HYPERION", "SCYLLA", "VALKYRIE" -> {
+ if (SkyblockerConfigManager.get().uiAndVisuals.teleportOverlay.enableWitherImpact) {
+ render(wrc, 10);
}
}
}
@@ -84,7 +82,6 @@ public class TeleportOverlay {
if (client.crosshairTarget != null && client.crosshairTarget.getType() == HitResult.Type.BLOCK && client.crosshairTarget instanceof BlockHitResult blockHitResult && client.crosshairTarget.squaredDistanceTo(client.player) < range * range) {
render(wrc, blockHitResult);
} else if (client.interactionManager != null && range > client.player.getAttributeInstance(EntityAttributes.PLAYER_BLOCK_INTERACTION_RANGE).getValue()) {
- @SuppressWarnings("DataFlowIssue")
HitResult result = client.player.raycast(range, wrc.tickCounter().getTickDelta(true), false);
if (result.getType() == HitResult.Type.BLOCK && result instanceof BlockHitResult blockHitResult) {
render(wrc, blockHitResult);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java
index b690baa1..ecffab3e 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/auction/AuctionBrowserScreen.java
@@ -7,7 +7,6 @@ import de.hysky.skyblocker.skyblock.auction.widgets.AuctionTypeWidget;
import de.hysky.skyblocker.skyblock.auction.widgets.CategoryTabWidget;
import de.hysky.skyblocker.skyblock.auction.widgets.RarityWidget;
import de.hysky.skyblocker.skyblock.auction.widgets.SortWidget;
-import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.render.gui.AbstractCustomHypixelGUI;
@@ -295,14 +294,7 @@ public class AuctionBrowserScreen extends AbstractCustomHypixelGUI<AuctionHouseS
String coins = split[1].replace(",", "").replace("coins", "").trim();
try {
long parsed = Long.parseLong(coins);
- String name = stack.getSkyblockApiId();
- String internalID = stack.getSkyblockId();
- String neuName = name;
- if (name == null || internalID == null) break;
- if (name.startsWith("ISSHINY_")) {
- neuName = internalID;
- }
- JsonElement jsonElement = TooltipInfoType.THREE_DAY_AVERAGE.getData().get(ItemTooltip.getNeuName(internalID, neuName));
+ JsonElement jsonElement = TooltipInfoType.THREE_DAY_AVERAGE.getData().get(stack.getNeuName());
if (jsonElement == null) break;
else {
isSlotHighlighted.put(slotId, jsonElement.getAsDouble() > parsed);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java
index ab0a0781..35017374 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java
@@ -42,9 +42,6 @@ public class DisciplineTestHelper {
return false;
}
String heldId = CLIENT.player.getMainHandStack().getSkyblockId();
- if (heldId == null) {
- return false;
- }
return Objects.equals(SWORD_TO_NAME_LOOKUP.get(heldId), name);
}
@@ -58,9 +55,6 @@ public class DisciplineTestHelper {
return 0;
}
String heldId = CLIENT.player.getMainHandStack().getSkyblockId();
- if (heldId == null) {
- return 0;
- }
return SWORD_TO_COLOR_LOOKUP.getOrDefault(heldId, 0);
}
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java
index 82acc3f2..12954118 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java
@@ -105,12 +105,12 @@ public class CroesusProfit extends SimpleContainerSolver {
private double getItemPrice(String itemDisplayName) {
- return ItemUtils.getItemPrice(dungeonDropsNameToId.get(itemDisplayName)).leftDouble();
+ return ItemUtils.getItemPrice(dungeonDropsNameToApiId.get(itemDisplayName)).leftDouble();
}
// I did a thing :(
- private final Map<String, String> dungeonDropsNameToId = Util.make(new HashMap<>(), map -> {
+ private final Map<String, String> dungeonDropsNameToApiId = Util.make(new HashMap<>(), map -> {
map.put("Enchanted Book (Ultimate Jerry I)", "ENCHANTMENT_ULTIMATE_JERRY_1"); // ultimate books start
map.put("Enchanted Book (Ultimate Jerry II)", "ENCHANTMENT_ULTIMATE_JERRY_2");
map.put("Enchanted Book (Ultimate Jerry III)", "ENCHANTMENT_ULTIMATE_JERRY_3");
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java
index 7b14002b..470b4457 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/WishingCompassSolver.java
@@ -27,7 +27,6 @@ import org.apache.commons.math3.geometry.euclidean.threed.Line;
import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
import java.util.Map;
-import java.util.Objects;
import java.util.stream.Stream;
public class WishingCompassSolver {
@@ -111,7 +110,7 @@ public class WishingCompassSolver {
}
private static boolean isKeyInInventory() {
- return CLIENT.player != null && CLIENT.player.getInventory().main.stream().anyMatch(stack -> stack != null && Objects.equals(stack.getSkyblockId(), "JUNGLE_KEY"));
+ return CLIENT.player != null && CLIENT.player.getInventory().main.stream().anyMatch(stack -> stack != null && stack.getSkyblockId().equals("JUNGLE_KEY"));
}
private static Zone getZoneOfLocation(Vec3d location) {
@@ -269,7 +268,7 @@ public class WishingCompassSolver {
}
ItemStack stack = CLIENT.player.getStackInHand(hand);
//make sure the user is in the crystal hollows and holding the wishing compass
- if (!Utils.isInCrystalHollows() || !SkyblockerConfigManager.get().mining.crystalsWaypoints.wishingCompassSolver || !Objects.equals(stack.getSkyblockId(), "WISHING_COMPASS")) {
+ if (!Utils.isInCrystalHollows() || !SkyblockerConfigManager.get().mining.crystalsWaypoints.wishingCompassSolver || !stack.getSkyblockId().equals("WISHING_COMPASS")) {
return ActionResult.PASS;
}
if (useCompass()) {
@@ -285,7 +284,7 @@ public class WishingCompassSolver {
}
ItemStack stack = CLIENT.player.getStackInHand(hand);
//make sure the user is in the crystal hollows and holding the wishing compass
- if (!Utils.isInCrystalHollows() || !SkyblockerConfigManager.get().mining.crystalsWaypoints.wishingCompassSolver || !Objects.equals(stack.getSkyblockId(), "WISHING_COMPASS")) {
+ if (!Utils.isInCrystalHollows() || !SkyblockerConfigManager.get().mining.crystalsWaypoints.wishingCompassSolver || !stack.getSkyblockId().equals("WISHING_COMPASS")) {
return TypedActionResult.pass(stack);
}
if (useCompass()) {
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java
index 84013f0b..adc25a82 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/garden/FarmingHudWidget.java
@@ -1,7 +1,6 @@
package de.hysky.skyblocker.skyblock.garden;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
-import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip;
import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType;
import de.hysky.skyblocker.skyblock.itemlist.ItemRepository;
import de.hysky.skyblocker.skyblock.tabhud.util.Ico;
@@ -64,7 +63,7 @@ public class FarmingHudWidget extends Widget {
ItemStack farmingToolStack = client.player.getMainHandStack();
if (farmingToolStack == null) return;
String cropItemId = FARMING_TOOLS.get(ItemUtils.getItemId(farmingToolStack));
- ItemStack cropStack = ItemRepository.getItemStack(ItemTooltip.getNeuName(cropItemId, cropItemId)); // The cropItemId is being used as the api id in the second parameter because the skyblock id and api id are the same for all crops.
+ ItemStack cropStack = ItemRepository.getItemStack(cropItemId.replace(":", "-")); // Hacky conversion to neu id since ItemUtils.getNeuId requires an item stack.
String counterText = FarmingHud.counterText();
String counterNumber = FarmingHud.NUMBER_FORMAT.format(FarmingHud.counter());
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PrehistoricEggAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PrehistoricEggAdder.java
index abaccd0a..ac418b77 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PrehistoricEggAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/PrehistoricEggAdder.java
@@ -1,7 +1,7 @@
package de.hysky.skyblocker.skyblock.item.slottext.adders;
-import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
+import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
import de.hysky.skyblocker.utils.ItemUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
@@ -9,7 +9,6 @@ import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtElement;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
-import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -18,7 +17,7 @@ import java.util.List;
public class PrehistoricEggAdder extends SimpleSlotTextAdder {
@Override
public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) {
- if (!stack.isOf(Items.PLAYER_HEAD) || !StringUtils.equals(stack.getSkyblockId(), "PREHISTORIC_EGG")) return List.of();
+ if (!stack.isOf(Items.PLAYER_HEAD) || !stack.getSkyblockId().equals("PREHISTORIC_EGG")) return List.of();
NbtCompound nbt = ItemUtils.getCustomData(stack);
if (!nbt.contains("blocks_walked", NbtElement.INT_TYPE)) return List.of();
int walked = nbt.getInt("blocks_walked");
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java
index 1de67074..6e547078 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/RancherBootsSpeedAdder.java
@@ -1,13 +1,12 @@
package de.hysky.skyblocker.skyblock.item.slottext.adders;
-import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder;
+import de.hysky.skyblocker.skyblock.item.slottext.SlotText;
import de.hysky.skyblocker.utils.ItemUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
-import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -24,8 +23,7 @@ public class RancherBootsSpeedAdder extends SimpleSlotTextAdder {
@Override
public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) {
- // V null-safe equals.
- if (!stack.isOf(Items.LEATHER_BOOTS) && !StringUtils.equals(stack.getSkyblockId(), "RANCHERS_BOOTS")) return List.of();
+ if (!stack.isOf(Items.LEATHER_BOOTS) && !stack.getSkyblockId().equals("RANCHERS_BOOTS")) return List.of();
Matcher matcher = ItemUtils.getLoreLineIfMatch(stack, SPEED_PATTERN);
if (matcher == null) return List.of();
String speed = matcher.group(2);
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java
index 32626b17..79f1f650 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/ItemTooltip.java
@@ -4,12 +4,13 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.config.configs.GeneralConfig;