Display broken favourites

This commit is contained in:
nea
2023-05-04 15:34:02 +02:00
parent 857427b076
commit bcd86e2822
3 changed files with 11 additions and 7 deletions

View File

@@ -8,16 +8,18 @@ import moe.nea.notenoughupdates.repo.RepoManager
import moe.nea.notenoughupdates.util.SkyblockId
object NEUItemEntrySerializer : EntrySerializer<NEUItem?> {
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<NEUItem?>, value: NEUItem?): NbtCompound {
return NbtCompound().apply {
putString("SKYBLOCK_ID", value?.skyblockItemId ?: "null")
putString(SKYBLOCK_ID_ENTRY, value?.skyblockItemId ?: "null")
}
}
}

View File

@@ -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<NEUItem>.asItemEntry(): EntryStack<ItemStack> {
return EntryStack.of(VanillaEntryTypes.ITEM, value.asItemStack())
return EntryStack.of(VanillaEntryTypes.ITEM, value?.asItemStack())
}
val SKYBLOCK_ITEM_TYPE_ID = Identifier("notenoughupdates", "skyblockitems")

View File

@@ -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()