Utilisation et contraintes
Déclarez la version d’API requise par l’extension. L’API 1.0.0 est distincte de la version du mod et du protocole réseau. La version majeure doit être compatible, avec au minimum les niveaux mineur et correctif demandés.
NebulaApiVersion
package dev.nebulastorage.api
/** API version, independent of the mod's release and wire protocol. Compatibility requires the same major and a sufficient minor/patch. */
data class NebulaApiVersion(val major: Int, val minor: Int, val patch: Int) : Comparable<NebulaApiVersion> {
init { require(major > 0 && minor >= 0 && patch >= 0) }
override fun compareTo(other: NebulaApiVersion): Int = compareValuesBy(this, other, { it.major }, { it.minor }, { it.patch })
fun supports(required: NebulaApiVersion): Boolean = major == required.major && this >= required
override fun toString(): String = "$major.$minor.$patch"
companion object {
@JvmField val CURRENT = NebulaApiVersion(1, 0, 0)
}
}
/** Optional minimum API declaration checked before registration. Existing unversioned extensions remain supported. */
interface NebulaVersionedExtension : NebulaExtension {
val requiredApiVersion: NebulaApiVersion
}
Source
src/main/kotlin/dev/nebulastorage/api/NebulaApiVersion.kt; editorial/fr.json
43b4d12d69e6033c24fa8c39dac383ef2429b446