From bcd86e28228d2ee35a2009d4f7e2fea55ea3c02f Mon Sep 17 00:00:00 2001 From: nea Date: Thu, 4 May 2023 15:34:02 +0200 Subject: Display broken favourites --- .../moe/nea/notenoughupdates/rei/NEUItemEntrySerializer.kt | 6 ++++-- src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt | 3 ++- src/main/kotlin/moe/nea/notenoughupdates/repo/ItemCache.kt | 9 +++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUItemEntrySerializer.kt b/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUItemEntrySerializer.kt index 97082e2..b6c81a7 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUItemEntrySerializer.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUItemEntrySerializer.kt @@ -8,16 +8,18 @@ import moe.nea.notenoughupdates.repo.RepoManager import moe.nea.notenoughupdates.util.SkyblockId object NEUItemEntrySerializer : EntrySerializer { + const val SKYBLOCK_ID_ENTRY = "SKYBLOCK_ID" + override fun supportSaving(): Boolean = true override fun supportReading(): Boolean = true override fun read(tag: NbtCompound): NEUItem? { - return RepoManager.getNEUItem(SkyblockId(tag.getString("SKYBLOCK_ID"))) + return RepoManager.getNEUItem(SkyblockId(tag.getString(SKYBLOCK_ID_ENTRY))) } override fun save(entry: EntryStack, value: NEUItem?): NbtCompound { return NbtCompound().apply { - putString("SKYBLOCK_ID", value?.skyblockItemId ?: "null") + putString(SKYBLOCK_ID_ENTRY, value?.skyblockItemId ?: "null") } } } diff --git a/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt b/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt index e89b007..88f7abc 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/rei/NEUReiPlugin.kt @@ -9,6 +9,7 @@ import me.shedaniel.rei.api.common.entry.type.EntryTypeRegistry import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes import net.minecraft.item.ItemStack import net.minecraft.util.Identifier +import moe.nea.notenoughupdates.repo.ItemCache import moe.nea.notenoughupdates.repo.ItemCache.asItemStack import moe.nea.notenoughupdates.repo.RepoManager @@ -17,7 +18,7 @@ class NEUReiPlugin : REIClientPlugin { companion object { fun EntryStack.asItemEntry(): EntryStack { - return EntryStack.of(VanillaEntryTypes.ITEM, value.asItemStack()) + return EntryStack.of(VanillaEntryTypes.ITEM, value?.asItemStack()) } val SKYBLOCK_ITEM_TYPE_ID = Identifier("notenoughupdates", "skyblockitems") diff --git a/src/main/kotlin/moe/nea/notenoughupdates/repo/ItemCache.kt b/src/main/kotlin/moe/nea/notenoughupdates/repo/ItemCache.kt index 5f9159e..cf2fc21 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/repo/ItemCache.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/repo/ItemCache.kt @@ -56,10 +56,10 @@ object ItemCache : IReloadable { null } - private fun brokenItemStack(neuItem: NEUItem): ItemStack { + fun brokenItemStack(neuItem: NEUItem?): ItemStack { return ItemStack(Items.PAINTING).apply { - setCustomName(Text.literal(neuItem.displayName)) - appendLore(listOf(Text.translatable("notenoughupdates.repo.brokenitem", neuItem.skyblockItemId))) + setCustomName(Text.literal(neuItem?.displayName ?: "null")) + appendLore(listOf(Text.translatable("notenoughupdates.repo.brokenitem", neuItem?.skyblockItemId))) } } @@ -79,7 +79,8 @@ object ItemCache : IReloadable { } } - fun NEUItem.asItemStack(): ItemStack { + fun NEUItem?.asItemStack(): ItemStack { + if (this == null) return brokenItemStack(null) var s = cache[this.skyblockItemId] if (s == null) { s = asItemStackNow() -- cgit