summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorThunderblade73 <85900443+Thunderblade73@users.noreply.github.com>2024-04-12 19:11:02 +0200
committerGitHub <noreply@github.com>2024-04-12 19:11:02 +0200
commit5ff579652ef80207a780a80399be376c345342b0 (patch)
tree6f80311a35d8fd6bb41d63b8ce2758891146d128 /src/main/java/at/hannibal2/skyhanni/data
parent7960d2ad27ac68ea9dcfaf848bd611b13db0af87 (diff)
downloadskyhanni-5ff579652ef80207a780a80399be376c345342b0.tar.gz
skyhanni-5ff579652ef80207a780a80399be376c345342b0.tar.bz2
skyhanni-5ff579652ef80207a780a80399be376c345342b0.zip
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>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt24
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuRNGScore.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt63
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt (renamed from src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt)3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSkillLevelJson.kt8
5 files changed, 105 insertions, 2 deletions
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<String, SackGemstone>()
private val stackList = mutableMapOf<Int, ItemStack>()
+ var sackListInternalNames = emptySet<String>()
+ private set
+
+ var sackListNames = emptySet<String>()
+ private set
+
@SubscribeEvent
fun onInventoryClose(event: InventoryCloseEvent) {
inSackInventory = false
@@ -235,6 +244,21 @@ object SackAPI {
}
}
+ @SubscribeEvent
+ fun onNeuRepoReload(event: NeuRepositoryReloadEvent) {
+ val sacksData = event.readConstant<NeuSacksJson>("sacks").sacks
+ val uniqueSackItems = mutableSetOf<NEUInternalName>()
+
+ 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/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<String, Map<NEUInternalName, Long>>,
+ @Expose val slayer: Map<String, Map<NEUInternalName, Long>>
+)
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<LorenzRarity>,
+ @Expose val reforgeCosts: Map<LorenzRarity, Long>,
+ @Expose val reforgeStats: Map<LorenzRarity, Map<String, Double>>,
+ @Expose @SerializedName("reforgeAbility") val rawReforgeAbility: Any?,
+) {
+
+ private lateinit var reforgeAbilityField: Map<LorenzRarity, String>
+
+ 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<String, String>)?.mapKeys {
+ LorenzRarity.valueOf(
+ it.key.uppercase().replace(" ", "_")
+ )
+ } ?: emptyMap()
+
+ else -> emptyMap()
+ }
+ reforgeAbilityField
+ }
+
+ /* used in ReforgeAPI which isn't in beta yet
+ val itemType: Pair<String, List<NEUInternalName>> 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<String, List<String>> ?: 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/other/NeuSacksJson.kt b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt
index c323211fb..fe0ae5b49 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/other/NeuSacksJson.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuSacksJson.kt
@@ -1,9 +1,8 @@
-package at.hannibal2.skyhanni.data.jsonobjects.other
+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<String, SackInfo>
)
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<Int>
+)