From 5ff579652ef80207a780a80399be376c345342b0 Mon Sep 17 00:00:00 2001 From: Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> Date: Fri, 12 Apr 2024 19:11:02 +0200 Subject: Backend: Remove Neu Constant (#1191) Co-authored-by: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- .../java/at/hannibal2/skyhanni/data/SackAPI.kt | 24 +++++++++ .../data/jsonobjects/other/NeuSacksJson.kt | 14 ----- .../data/jsonobjects/repo/neu/NeuRNGScore.kt | 9 ++++ .../jsonobjects/repo/neu/NeuReforgeStoneJson.kt | 63 ++++++++++++++++++++++ .../data/jsonobjects/repo/neu/NeuSacksJson.kt | 13 +++++ .../data/jsonobjects/repo/neu/NeuSkillLevelJson.kt | 8 +++ 6 files changed, 117 insertions(+), 14 deletions(-) delete mode 100644 src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt create mode 100644 src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuRNGScore.kt create mode 100644 src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt create mode 100644 src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt create mode 100644 src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSkillLevelJson.kt (limited to 'src/main/java/at/hannibal2/skyhanni/data') diff --git a/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt index fe7c388f4..328031478 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt @@ -3,9 +3,11 @@ package at.hannibal2.skyhanni.data import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigFileType import at.hannibal2.skyhanni.config.features.inventory.SackDisplayConfig.PriceFrom +import at.hannibal2.skyhanni.data.jsonobjects.repo.neu.NeuSacksJson import at.hannibal2.skyhanni.events.InventoryCloseEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.events.NeuRepositoryReloadEvent import at.hannibal2.skyhanni.events.SackChangeEvent import at.hannibal2.skyhanni.events.SackDataUpdateEvent import at.hannibal2.skyhanni.features.fishing.FishingAPI @@ -14,6 +16,7 @@ import at.hannibal2.skyhanni.features.inventory.SackDisplay import at.hannibal2.skyhanni.utils.CollectionUtils.editCopy import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName import at.hannibal2.skyhanni.utils.ItemUtils.getLore +import at.hannibal2.skyhanni.utils.ItemUtils.itemNameWithoutColor import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.NEUInternalName import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName @@ -62,6 +65,12 @@ object SackAPI { val gemstoneItem = mutableMapOf() private val stackList = mutableMapOf() + var sackListInternalNames = emptySet() + private set + + var sackListNames = emptySet() + private set + @SubscribeEvent fun onInventoryClose(event: InventoryCloseEvent) { inSackInventory = false @@ -235,6 +244,21 @@ object SackAPI { } } + @SubscribeEvent + fun onNeuRepoReload(event: NeuRepositoryReloadEvent) { + val sacksData = event.readConstant("sacks").sacks + val uniqueSackItems = mutableSetOf() + + sacksData.values.forEach { sackInfo -> + sackInfo.contents.forEach { content -> + uniqueSackItems.add(content) + } + } + + sackListInternalNames = uniqueSackItems.map { it.asString() }.toSet() + sackListNames = uniqueSackItems.map { it.itemNameWithoutColor.uppercase() }.toSet() + } + private fun updateSacks(changes: SackChangeEvent) { sackData = ProfileStorageData.sackProfiles?.sackContents ?: return diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt deleted file mode 100644 index c323211fb..000000000 --- a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt +++ /dev/null @@ -1,14 +0,0 @@ -package at.hannibal2.skyhanni.data.jsonobjects.other - -import at.hannibal2.skyhanni.utils.NEUInternalName -import com.google.gson.annotations.Expose - - -data class NeuSacksJson( - @Expose val sacks: Map -) - -data class SackInfo( - @Expose val item: NEUInternalName, - @Expose val contents: List -) diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuRNGScore.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuRNGScore.kt new file mode 100644 index 000000000..d63a9ae79 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuRNGScore.kt @@ -0,0 +1,9 @@ +package at.hannibal2.skyhanni.data.jsonobjects.repo.neu + +import at.hannibal2.skyhanni.utils.NEUInternalName +import com.google.gson.annotations.Expose + +data class NeuRNGScore( + @Expose val catacombs: Map>, + @Expose val slayer: Map> +) diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt new file mode 100644 index 000000000..c450e3910 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt @@ -0,0 +1,63 @@ +package at.hannibal2.skyhanni.data.jsonobjects.repo.neu; + +import at.hannibal2.skyhanni.utils.LorenzRarity +import at.hannibal2.skyhanni.utils.NEUInternalName +import com.google.gson.annotations.Expose +import com.google.gson.annotations.SerializedName + +data class NeuReforgeStoneJson( + @Expose val internalName: NEUInternalName, + @Expose val reforgeName: String, + @Expose @SerializedName("itemTypes") val rawItemTypes: Any, + @Expose val requiredRarities: List, + @Expose val reforgeCosts: Map, + @Expose val reforgeStats: Map>, + @Expose @SerializedName("reforgeAbility") val rawReforgeAbility: Any?, +) { + + private lateinit var reforgeAbilityField: Map + + val reforgeAbility + get() = if (this::reforgeAbilityField.isInitialized) reforgeAbilityField + else { + reforgeAbilityField = when (this.rawReforgeAbility) { + is String -> { + this.requiredRarities.associateWith { this.rawReforgeAbility } + } + + is Map<*, *> -> (this.rawReforgeAbility as? Map)?.mapKeys { + LorenzRarity.valueOf( + it.key.uppercase().replace(" ", "_") + ) + } ?: emptyMap() + + else -> emptyMap() + } + reforgeAbilityField + } + + /* used in ReforgeAPI which isn't in beta yet + val itemType: Pair> by lazy { + val any = this.rawItemTypes + return@lazy when (any) { + is String -> { + any.replace("/", "_AND_").uppercase() to emptyList() + } + + is Map<*, *> -> { + val type = "SPECIAL_ITEMS" + val map = any as? Map> ?: return@lazy type to emptyList() + val internalNames = map["internalName"]?.map { it.asInternalName() } ?: emptyList() + val itemType = map["itemid"]?.map { + NEUItems.getInternalNamesForItemId(Item.getByNameOrId(it)) + }?.flatten() + ?: emptyList() + type to (internalNames + itemType) + } + + else -> throw IllegalStateException() + } + } +*/ +} + diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt new file mode 100644 index 000000000..fe0ae5b49 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt @@ -0,0 +1,13 @@ +package at.hannibal2.skyhanni.data.jsonobjects.repo.neu + +import at.hannibal2.skyhanni.utils.NEUInternalName +import com.google.gson.annotations.Expose + +data class NeuSacksJson( + @Expose val sacks: Map +) + +data class SackInfo( + @Expose val item: NEUInternalName, + @Expose val contents: List +) diff --git a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSkillLevelJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSkillLevelJson.kt new file mode 100644 index 000000000..d8ac8c838 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSkillLevelJson.kt @@ -0,0 +1,8 @@ +package at.hannibal2.skyhanni.data.jsonobjects.repo.neu + +import com.google.gson.annotations.Expose +import com.google.gson.annotations.SerializedName + +data class NeuSkillLevelJson( + @Expose @SerializedName("leveling_xp") val levelingXp: List +) -- cgit