diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt | 31 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt | 32 |
2 files changed, 33 insertions, 30 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt index 925ab11fa..eea1138fa 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataGrabber.kt @@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.features.bazaar import at.hannibal2.skyhanni.utils.APIUtil import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.LorenzUtils.round +import at.hannibal2.skyhanni.utils.StringUtils.firstLetterUppercase import kotlin.concurrent.fixedRateTimer internal class BazaarDataGrabber(private var bazaarMap: MutableMap<String, BazaarData>) { @@ -84,19 +85,12 @@ internal class BazaarDataGrabber(private var bazaarMap: MutableMap<String, Bazaa for (entry in products.entrySet()) { val apiName = entry.key + //TODO use repo if (apiName == "ENCHANTED_CARROT_ON_A_STICK") continue if (apiName == "BAZAAR_COOKIE") continue val itemData = entry.value.asJsonObject - - val itemName = itemNames.getOrDefault(apiName, null) - if (itemName == null) { - //TODO need to re enable this later again -// LorenzUtils.error("Bazaar item name is null for '$apiName'! Restart to fix this problem!") - continue - } - - val sellPrice: Double = try { + val sellPrice = try { itemData["sell_summary"].asJsonArray[0].asJsonObject["pricePerUnit"].asDouble.round(1) } catch (e: Exception) { 0.0 @@ -107,8 +101,27 @@ internal class BazaarDataGrabber(private var bazaarMap: MutableMap<String, Bazaa 0.0 } + val itemName = getItemName(apiName) ?: continue val data = BazaarData(apiName, itemName, sellPrice, buyPrice) bazaarMap[itemName] = data } } + + private fun getItemName(apiName: String): String? { + var itemName = itemNames.getOrDefault(apiName, null) + + //Crimson Essence + //ESSENCE_CRIMSON + return itemName ?: if (apiName.startsWith("ESSENCE_")) { + val type = apiName.split("_")[1].firstLetterUppercase() + itemName = "$type Essence"; + itemNames[apiName] = itemName + itemName + } else { + //TODO need to re enable this later again + println("unknown bazaar item: '$apiName'") +// LorenzUtils.error("Bazaar item name is null for '$apiName'! Restart to fix this problem!") + null + } + } }
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt index 18822e7c2..ab398a5bf 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt @@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.features.bazaar import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.utils.ItemUtils.getLore +import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.LorenzColor import at.hannibal2.skyhanni.utils.RenderUtils.highlight import net.minecraft.client.gui.inventory.GuiChest @@ -40,16 +41,15 @@ class BazaarOrderHelper { if (slot.stack == null) continue val stack = slot.stack - val displayName = stack.displayName - val isSelling = displayName.startsWith("§6§lSELL§7: ") - val isBuying = displayName.startsWith("§a§lBUY§7: ") + val itemName = stack.name ?: continue + + val isSelling = itemName.startsWith("§6§lSELL ") + val isBuying = itemName.startsWith("§a§lBUY ") if (!isSelling && !isBuying) continue - val text = displayName.split("§7: ")[1] - val name = BazaarApi.getCleanBazaarName(text) - val data = BazaarApi.getBazaarDataForName(name) - val buyPrice = data.buyPrice - val sellPrice = data.sellPrice + val rawName = itemName.split(if (isBuying) "BUY " else "SELL ")[1] + val bazaarName = BazaarApi.getCleanBazaarName(rawName) + val data = BazaarApi.getBazaarDataForName(bazaarName) val itemLore = stack.getLore() for (line in itemLore) { @@ -59,25 +59,15 @@ class BazaarOrderHelper { continue@out } } - } - for (line in itemLore) { if (line.startsWith("§7Price per unit:")) { var text = line.split(": §6")[1] text = text.substring(0, text.length - 6) text = text.replace(",", "") val price = text.toDouble() - if (isSelling) { - if (buyPrice < price) { - slot highlight LorenzColor.GOLD - continue@out - } - } else { - if (sellPrice > price) { - slot highlight LorenzColor.GOLD - continue@out - } + if (isSelling && price > data.buyPrice || isBuying && price < data.sellPrice) { + slot highlight LorenzColor.GOLD + continue@out } - } } } |