aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-02-17 13:36:37 +0100
committerLinnea Gräf <nea@nea.moe>2024-02-17 13:36:37 +0100
commit2e571210c948d90a7d0ea8b07184102ceb401962 (patch)
tree2266caacfcda621d9420f411a92e66b70bc9574f /src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt
parenta20e3696ece23ba4389deeebf63e1cc33f717705 (diff)
downloadFirmament-2e571210c948d90a7d0ea8b07184102ceb401962.tar.gz
Firmament-2e571210c948d90a7d0ea8b07184102ceb401962.tar.bz2
Firmament-2e571210c948d90a7d0ea8b07184102ceb401962.zip
Fix missing ids for runes and enchantment books
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt b/src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt
index 37a1f0c..fb63eba 100644
--- a/src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt
+++ b/src/main/kotlin/moe/nea/firmament/util/SkyblockId.kt
@@ -1,5 +1,6 @@
/*
* SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
+ * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@@ -94,12 +95,36 @@ val ItemStack.petData: HypixelPetInfo?
val ItemStack.skyBlockId: SkyblockId?
get() {
return when (val id = extraAttributes.getString("id")) {
+ "" -> {
+ null
+ }
+
"PET" -> {
petData?.skyblockId ?: SkyblockId.PET_NULL
}
- // TODO: RUNE, ENCHANTED_BOOK, PARTY_HAT_CRAB{,_ANIMATED}, ABICASE
+
+ "RUNE", "UNIQUE_RUNE" -> {
+ val runeData = extraAttributes.getCompound("runes")
+ val runeKind = runeData.keys.singleOrNull()
+ if (runeKind == null) SkyblockId("RUNE")
+ else SkyblockId("${runeKind.uppercase()}_RUNE;${runeData.getInt(runeKind)}")
+ }
+
+ "ABICASE" -> {
+ SkyblockId("ABICASE_${extraAttributes.getString("model").uppercase()}")
+ }
+
+ "ENCHANTED_BOOK" -> {
+ val enchantmentData = extraAttributes.getCompound("enchantments")
+ val enchantName = enchantmentData.keys.singleOrNull()
+ if (enchantName == null) SkyblockId("ENCHANTED_BOOK")
+ else SkyblockId("${enchantName.uppercase()};${enchantmentData.getInt(enchantName)}")
+ }
+
+ // TODO: PARTY_HAT_CRAB{,_ANIMATED,_SLOTH}
else -> {
SkyblockId(id)
}
}
}
+