User: strokkur24 Date: 09 Jan 26 21:23 Revision: e4b8eddc5ba61549fd58d9503e48178ac8eb253c Summary: refactor: use MinecraftVersions field for version comparison TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=10390&personal=false Index: src/main/kotlin/creator/custom/derivation/ExtractPaperApiVersionPropertyDerivation.kt =================================================================== --- src/main/kotlin/creator/custom/derivation/ExtractPaperApiVersionPropertyDerivation.kt (revision f21969d04435878d00c5635aa83ee16696287d1a) +++ src/main/kotlin/creator/custom/derivation/ExtractPaperApiVersionPropertyDerivation.kt (revision e4b8eddc5ba61549fd58d9503e48178ac8eb253c) @@ -23,39 +23,20 @@ import com.demonwav.mcdev.creator.custom.PropertyDerivation import com.demonwav.mcdev.creator.custom.TemplateValidationReporter import com.demonwav.mcdev.creator.custom.types.CreatorProperty +import com.demonwav.mcdev.util.MinecraftVersions import com.demonwav.mcdev.util.SemanticVersion class ExtractPaperApiVersionPropertyDerivation : ExtractVersionMajorMinorPropertyDerivation() { - override fun derive(parentValues: List): Any { + override fun derive(parentValues: List): Any? { val from = parentValues[0] as SemanticVersion - if (from.parts.size < 2) { - return SemanticVersion(emptyList()) + if (from >= MinecraftVersions.MC1_20_5) { + return from } - if (from.parts.size == 3) { - val (part1, part2, part3) = from.parts - if (part1 is SemanticVersion.Companion.VersionPart.ReleasePart && - part2 is SemanticVersion.Companion.VersionPart.ReleasePart && - part3 is SemanticVersion.Companion.VersionPart.ReleasePart - ) { - // From Minecraft version 1.20.5 onwards, the Paper API version also contains the 'minor' number. - if (part1.version >= 26 || (part2.version >= 21) || (part2.version == 20 && part3.version >= 5)) { - return SemanticVersion(listOf(part1, part2, part3)) + return super.derive(parentValues); - } + } - } - } - val (part1, part2) = from.parts - if (part1 is SemanticVersion.Companion.VersionPart.ReleasePart && - part2 is SemanticVersion.Companion.VersionPart.ReleasePart - ) { - return SemanticVersion(listOf(part1, part2)) - } - - return SemanticVersion(emptyList()) - } - companion object : PropertyDerivationFactory { override fun create(