diff options
Diffstat (limited to 'src/main')
3 files changed, 25 insertions, 41 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/SkyblockItemsDataJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/SkyblockItemsDataJson.kt new file mode 100644 index 000000000..0676a5e8e --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/SkyblockItemsDataJson.kt @@ -0,0 +1,14 @@ +package at.hannibal2.skyhanni.data.jsonobjects.other + +import com.google.gson.annotations.Expose +import com.google.gson.annotations.SerializedName + +data class SkyblockItemsDataJson( + @Expose val items: List<SkyblockItemData> +) + +data class SkyblockItemData( + @Expose val id: String?, + @Expose @SerializedName("npc_sell_price") val npcPrice: Double?, + @Expose @SerializedName("motes_sell_price") val motesPrice: 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 44ce4b481..02e1f1446 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataHolder.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarDataHolder.kt @@ -1,6 +1,8 @@ package at.hannibal2.skyhanni.features.bazaar import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigManager +import at.hannibal2.skyhanni.data.jsonobjects.other.SkyblockItemsDataJson import at.hannibal2.skyhanni.features.rift.RiftAPI import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.APIUtil @@ -11,8 +13,7 @@ import at.hannibal2.skyhanni.utils.NEUItems import at.hannibal2.skyhanni.utils.NEUItems.getItemStackOrNull import at.hannibal2.skyhanni.utils.NEUItems.getPrice import at.hannibal2.skyhanni.utils.StringUtils.removeColor -import at.hannibal2.skyhanni.utils.getDoubleOrNull -import at.hannibal2.skyhanni.utils.getStringOrNull +import at.hannibal2.skyhanni.utils.fromJson import kotlinx.coroutines.launch import kotlin.concurrent.fixedRateTimer @@ -28,28 +29,21 @@ class BazaarDataHolder { private fun loadNpcPrices(): MutableMap<NEUInternalName, Double> { val list = mutableMapOf<NEUInternalName, Double>() - val itemsData = APIUtil.getJSONResponse("https://api.hypixel.net/v2/resources/skyblock/items") - + val apiResponse = APIUtil.getJSONResponse("https://api.hypixel.net/v2/resources/skyblock/items") try { - val motesPrice = mutableMapOf<NEUInternalName, Double>() - for (item in itemsData.getAsJsonArray("items")) { - val itemData = item.asJsonObject + val itemsData = ConfigManager.gson.fromJson<SkyblockItemsDataJson>(apiResponse) - val hypixelId = itemData.getStringOrNull("id") ?: continue - val neuItemId = NEUItems.transHypixelNameToInternalName(hypixelId) - - itemData.getDoubleOrNull("npc_sell_price")?.let { - list[neuItemId] = it - } - itemData.getDoubleOrNull("motes_sell_price")?.let { - motesPrice[neuItemId] = it - } + val motesPrice = mutableMapOf<NEUInternalName, Double>() + for (item in itemsData.items) { + val neuItemId = NEUItems.transHypixelNameToInternalName(item.id ?: continue) + item.npcPrice?.let { list[neuItemId] = it } + item.motesPrice?.let { motesPrice[neuItemId] = it } } RiftAPI.motesPrice = motesPrice } catch (e: Throwable) { ErrorManager.logErrorWithData( e, "Error getting npc sell prices", - "hypixelApiResponse" to itemsData + "hypixelApiResponse" to apiResponse ) } return list diff --git a/src/main/java/at/hannibal2/skyhanni/utils/JsonUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/JsonUtils.kt index 6cbba135b..e9d755fab 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/JsonUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/JsonUtils.kt @@ -37,27 +37,3 @@ fun JsonObject.getStringOrValue(key: String, alternative: String): String { alternative } } - -fun JsonObject.getStringOrNull(key: String): String? { - return if (has(key)) { - try { - get(key).asString - } catch (_: Exception) { - null - } - } else { - null - } -} - -fun JsonObject.getDoubleOrNull(key: String): Double? { - return if (has(key)) { - try { - get(key).asDouble - } catch (_: Exception) { - null - } - } else { - null - } -} |