getOrPut

inline fun <T> getOrPut(namespace: String, key: String, defaultValue: () -> T): T
inline fun <T> getOrPut(id: ResourceLocation, defaultValue: () -> T): T
inline fun <T> getOrPut(key: NamespacedKey, defaultValue: () -> T): T
inline fun <T> getOrPut(addon: Addon, key: String, defaultValue: () -> T): T