package moe.nea.firmament.util.mc import com.mojang.serialization.DynamicOps import java.util.Optional import net.minecraft.core.Registry import net.minecraft.resources.ResourceKey import net.minecraft.resources.RegistryOps import net.minecraft.core.HolderLookup import net.minecraft.core.HolderOwner class TolerantRegistriesOps( delegate: DynamicOps, registryInfoGetter: RegistryInfoLookup ) : RegistryOps(delegate, registryInfoGetter) { constructor(delegate: DynamicOps, registry: HolderLookup.Provider) : this(delegate, HolderLookupAdapter(registry)) class TolerantOwner : HolderOwner { override fun canSerializeIn(other: HolderOwner?): Boolean { return true } } override fun owner(registryRef: ResourceKey>?): Optional> { return super.owner(registryRef).map { TolerantOwner() } } }