diff options
| author | hannibal2 <24389977+hannibal002@users.noreply.github.com> | 2024-07-02 09:00:36 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-02 09:00:36 +0200 |
| commit | 8d0758ecf3ccffef632a3d6e2c84fd705a0035b7 (patch) | |
| tree | 0a533a927f1834ac23ada7dfe77a5d1dea9b2109 /src/main/java/at/hannibal2/skyhanni/utils | |
| parent | 30b08ee4185f6924857762f0ece55598a2a24bea (diff) | |
| download | skyhanni-8d0758ecf3ccffef632a3d6e2c84fd705a0035b7.tar.gz skyhanni-8d0758ecf3ccffef632a3d6e2c84fd705a0035b7.tar.bz2 skyhanni-8d0758ecf3ccffef632a3d6e2c84fd705a0035b7.zip | |
Fix: Gillsplash in Estimated Item Value (#2173)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt | 21 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt | 5 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt index 67f2865eb..c094df489 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt @@ -2,8 +2,10 @@ package at.hannibal2.skyhanni.utils import at.hannibal2.skyhanni.data.PetAPI import at.hannibal2.skyhanni.test.command.ErrorManager +import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName import at.hannibal2.skyhanni.utils.NEUItems.getItemStackOrNull +import at.hannibal2.skyhanni.utils.NEUItems.getPrice import at.hannibal2.skyhanni.utils.NumberUtil.formatInt import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.RegexUtils.matches @@ -14,6 +16,7 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.StringUtils.removeResets import com.google.gson.GsonBuilder import com.google.gson.JsonObject +import io.github.moulberry.notenoughupdates.recipes.NeuRecipe import net.minecraft.client.Minecraft import net.minecraft.init.Items import net.minecraft.item.ItemStack @@ -339,7 +342,7 @@ object ItemUtils { "internal name" to pet.getInternalName(), "item name" to name, "rarity id" to rarityId, - "inventory name" to InventoryUtils.openInventoryName() + "inventory name" to InventoryUtils.openInventoryName(), ) } return rarity @@ -409,4 +412,20 @@ object ItemUtils { } return list } + + fun neededItems(recipe: NeuRecipe): Map<NEUInternalName, Int> { + val neededItems = mutableMapOf<NEUInternalName, Int>() + for (ingredient in recipe.ingredients) { + val material = ingredient.internalItemId.asInternalName() + val amount = ingredient.count.toInt() + neededItems.addOrPut(material, amount) + } + return neededItems + } + + fun getRecipePrice(recipe: NeuRecipe): Double = + neededItems(recipe).map { + it.key.getPrice() * it.value + }.sum() + } diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt index 4b334d027..75d394631 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt @@ -197,7 +197,10 @@ object NEUItems { return getNpcPriceOrNull() ?: getRawCraftCostOrNull() } - fun NEUInternalName.getRawCraftCostOrNull(): Double? = manager.auctionManager.getCraftCost(asString())?.craftCost + // If NEU fails to calculate the craft costs, we calculate it ourself. + fun NEUInternalName.getRawCraftCostOrNull(): Double? = manager.auctionManager.getCraftCost(asString())?.craftCost ?: run { + getRecipes(this).map { ItemUtils.getRecipePrice(it) }.minOrNull() + } fun NEUInternalName.getItemStackOrNull(): ItemStack? = ItemResolutionQuery(manager) .withKnownInternalName(asString()) |
