diff options
author | Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> | 2024-06-23 20:06:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-23 20:06:17 +0200 |
commit | 6eb085f4e2ba69e98934ffa9489c8679ba23d244 (patch) | |
tree | 6f3f4abe26118a5c14ed84ce48408b17665be79f /src/main/java/at/hannibal2/skyhanni/data/jsonobjects | |
parent | 78f5f7b94bdc48c3395ef17f30022b8cd653a776 (diff) | |
download | skyhanni-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() } } -*/ } |