diff options
author | nea <nea@nea.moe> | 2023-06-11 02:43:14 +0200 |
---|---|---|
committer | nea <nea@nea.moe> | 2023-06-11 02:43:14 +0200 |
commit | a36c8f1c0eae969dcee8cf690f12d9121350212d (patch) | |
tree | ea93f19bf5f77f8b5e42a7b56162d9b6492b7fed /src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt | |
parent | 040f7c7275568d783bfa5e4ed20412f72d126549 (diff) | |
download | firmament-a36c8f1c0eae969dcee8cf690f12d9121350212d.tar.gz firmament-a36c8f1c0eae969dcee8cf690f12d9121350212d.tar.bz2 firmament-a36c8f1c0eae969dcee8cf690f12d9121350212d.zip |
Add collection info to skill page
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt b/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt index 25fb7d3..78627cd 100644 --- a/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt +++ b/src/main/kotlin/moe/nea/firmament/util/ItemUtil.kt @@ -33,6 +33,16 @@ fun ItemStack.appendLore(args: List<Text>) { } } +fun ItemStack.modifyLore(update: (List<Text>) -> List<Text>) { + val compoundTag = getOrCreateSubNbt("display") + val loreList = compoundTag.getOrCreateList("Lore", NbtString.STRING_TYPE) + val parsed = loreList.map { Text.Serializer.fromJson(it.asString())!! } + val updated = update(parsed) + loreList.clear() + loreList.addAll(updated.map { NbtString.of(Text.Serializer.toJson(it)) }) +} + + fun NbtCompound.getOrCreateList(label: String, tag: Byte): NbtList = getList(label, tag.toInt()).also { put(label, it) } |