diff options
| author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2024-07-31 14:06:48 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-31 14:06:48 +0800 |
| commit | 4326f83dfef63eaa1541b4c559289f1d82e8d1e2 (patch) | |
| tree | 150dfd28518d3cb852578daf44baebb9e178db40 /src/main/java | |
| parent | b498af11f092ee31da124e1c8714f213d253439f (diff) | |
| parent | 22fbe20bc27535d81c213e45777efa9792c11667 (diff) | |
| download | Skyblocker-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')
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; |
