aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data/jsonobjects
diff options
context:
space:
mode:
authorThunderblade73 <85900443+Thunderblade73@users.noreply.github.com>2024-06-23 20:06:17 +0200
committerGitHub <noreply@github.com>2024-06-23 20:06:17 +0200
commit6eb085f4e2ba69e98934ffa9489c8679ba23d244 (patch)
tree6f3f4abe26118a5c14ed84ce48408b17665be79f /src/main/java/at/hannibal2/skyhanni/data/jsonobjects
parent78f5f7b94bdc48c3395ef17f30022b8cd653a776 (diff)
downloadskyhanni-6eb085f4e2ba69e98934ffa9489c8679ba23d244.tar.gz
skyhanni-6eb085f4e2ba69e98934ffa9489c8679ba23d244.tar.bz2
skyhanni-6eb085f4e2ba69e98934ffa9489c8679ba23d244.zip
Feature: Reforge helper (#1437)
Co-authored-by: CalMWolfs <94038482+CalMWolfs@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal002@users.noreply.github.com> Co-authored-by: Cal <cwolfson58@gmail.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data/jsonobjects')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeJson.kt (renamed from src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt)28
1 files changed, 16 insertions, 12 deletions
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/NeuReforgeJson.kt
index 8ebe2dea6..a8c8f3fe4 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeStoneJson.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/jsonobjects/repo/neu/NeuReforgeJson.kt
@@ -1,21 +1,26 @@
package at.hannibal2.skyhanni.data.jsonobjects.repo.neu
+import at.hannibal2.skyhanni.data.model.SkyblockStatList
import at.hannibal2.skyhanni.utils.LorenzRarity
import at.hannibal2.skyhanni.utils.NEUInternalName
+import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
+import at.hannibal2.skyhanni.utils.NEUItems
import com.google.gson.annotations.Expose
import com.google.gson.annotations.SerializedName
+import net.minecraft.item.Item
-data class NeuReforgeStoneJson(
- @Expose val internalName: NEUInternalName,
+data class NeuReforgeJson(
+ @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 val reforgeCosts: Map<LorenzRarity, Long>?,
+ @Expose val reforgeStats: Map<LorenzRarity, SkyblockStatList>?,
@Expose @SerializedName("reforgeAbility") val rawReforgeAbility: Any?,
) {
private lateinit var reforgeAbilityField: Map<LorenzRarity, String>
+ private lateinit var itemTypeField: Pair<String, List<NEUInternalName>>
val reforgeAbility
get() = if (this::reforgeAbilityField.isInitialized) reforgeAbilityField
@@ -27,7 +32,7 @@ data class NeuReforgeStoneJson(
is Map<*, *> -> (this.rawReforgeAbility as? Map<String, String>)?.mapKeys {
LorenzRarity.valueOf(
- it.key.uppercase().replace(" ", "_")
+ it.key.uppercase().replace(" ", "_"),
)
} ?: emptyMap()
@@ -36,28 +41,27 @@ data class NeuReforgeStoneJson(
reforgeAbilityField
}
- /* used in ReforgeAPI which isn't in beta yet
- val itemType: Pair<String, List<NEUInternalName>> by lazy {
+ val itemType: Pair<String, List<NEUInternalName>>
+ get() = if (this::itemTypeField.isInitialized) itemTypeField
+ else run {
val any = this.rawItemTypes
- return@lazy when (any) {
+ return 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 map = any as? Map<String, List<String>> ?: return type to emptyList()
val internalNames = map["internalName"]?.map { it.asInternalName() } ?: emptyList()
val itemType = map["itemid"]?.map {
NEUItems.getInternalNamesForItemId(Item.getByNameOrId(it))
- }?.flatten()
- ?: emptyList()
+ }?.flatten() ?: emptyList()
type to (internalNames + itemType)
}
else -> throw IllegalStateException()
}
}
-*/
}