diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/bazaar')
3 files changed, 23 insertions, 19 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt index 52227e4f7..1d9c20dea 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt @@ -2,13 +2,10 @@ package at.hannibal2.skyhanni.features.bazaar import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.* +import at.hannibal2.skyhanni.utils.* import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName 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.LorenzUtils -import at.hannibal2.skyhanni.utils.NEUItems -import at.hannibal2.skyhanni.utils.OSUtils import at.hannibal2.skyhanni.utils.RenderUtils.highlight import at.hannibal2.skyhanni.utils.StringUtils.removeColor import net.minecraft.client.gui.inventory.GuiChest @@ -27,14 +24,19 @@ class BazaarApi { fun getBazaarDataByName(name: String): BazaarData? = NEUItems.getInternalNameOrNull(name)?.let { getBazaarDataByInternalName(it) } - fun getBazaarDataByInternalName(internalName: String): BazaarData? { - return if (isBazaarItem(internalName)) { + fun getBazaarDataByInternalName(internalName: String) = + getBazaarDataByInternalName_new(NEUInternalName.from(internalName)) + + fun getBazaarDataByInternalName_new(internalName: NEUInternalName) = if (isBazaarItem(internalName)) { holder.getData(internalName) } else null - } fun isBazaarItem(stack: ItemStack) = isBazaarItem(stack.getInternalName()) + fun isBazaarItem(internalName: NEUInternalName): Boolean { + return NEUItems.manager.auctionManager.getBazaarInfo(internalName.asString()) != null + } + fun isBazaarItem(internalName: String): Boolean { return NEUItems.manager.auctionManager.getBazaarInfo(internalName) != null } @@ -91,7 +93,9 @@ class BazaarApi { @SubscribeEvent fun onChat(event: LorenzChatEvent) { - if ("\\[Bazaar] (Buy Order Setup!|Bought).*$currentSearchedItem.*".toRegex().matches(event.message.removeColor())) { + if ("\\[Bazaar] (Buy Order Setup!|Bought).*$currentSearchedItem.*".toRegex() + .matches(event.message.removeColor()) + ) { currentSearchedItem = "" } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarData.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarData.kt index e9511d1b1..3562be68a 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarData.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarData.kt @@ -1,7 +1,6 @@ package at.hannibal2.skyhanni.features.bazaar data class BazaarData( - val apiName: String, val displayName: String, val sellPrice: Double, val buyPrice: Double, diff --git a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataHolder.kt b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataHolder.kt index 53ae2935e..c6d31cede 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataHolder.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataHolder.kt @@ -5,6 +5,7 @@ import at.hannibal2.skyhanni.features.rift.everywhere.RiftAPI import at.hannibal2.skyhanni.utils.APIUtil import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NEUItems import at.hannibal2.skyhanni.utils.StringUtils.removeColor import kotlinx.coroutines.launch @@ -13,15 +14,15 @@ import kotlin.concurrent.fixedRateTimer class BazaarDataHolder { companion object { - private val bazaarData = mutableMapOf<String, BazaarData>() - private var npcPrices = mapOf<String, Double>() + private val bazaarData = mutableMapOf<NEUInternalName, BazaarData>() + private var npcPrices = mapOf<NEUInternalName, Double>() } - private fun loadNpcPrices(): MutableMap<String, Double> { - val list = mutableMapOf<String, Double>() + private fun loadNpcPrices(): MutableMap<NEUInternalName, Double> { + val list = mutableMapOf<NEUInternalName, Double>() try { val itemsData = APIUtil.getJSONResponse("https://api.hypixel.net/resources/skyblock/items") - val motesPrice = mutableMapOf<String, Double>() + val motesPrice = mutableMapOf<NEUInternalName, Double>() for (element in itemsData["items"].asJsonArray) { val jsonObject = element.asJsonObject val hypixelId = jsonObject["id"].asString @@ -52,10 +53,10 @@ class BazaarDataHolder { } } - fun getData(internalName: String) = bazaarData[internalName] ?: createNewData(internalName) + fun getData(internalName: NEUInternalName) = bazaarData[internalName] ?: createNewData(internalName) - private fun createNewData(internalName: String): BazaarData? { - val stack = NEUItems.getItemStackOrNull(internalName) + private fun createNewData(internalName: NEUInternalName): BazaarData? { + val stack = NEUItems.getItemStackOrNull(internalName.asString()) if (stack == null) { LorenzUtils.debug("Bazaar data is null: '$internalName'") return null @@ -65,14 +66,14 @@ class BazaarDataHolder { val buyPrice = NEUItems.getPrice(internalName, false) val npcPrice = npcPrices[internalName].let { if (it == null) { - if (!ignoreNoNpcPrice(internalName)) { + if (!ignoreNoNpcPrice(internalName.asString())) { LorenzUtils.debug("NPC price not found for item '$internalName'") } 0.0 } else it } - val data = BazaarData(internalName, displayName, sellPrice, buyPrice, npcPrice) + val data = BazaarData(displayName, sellPrice, buyPrice, npcPrice) bazaarData[internalName] = data return data } |
