From f0957316c4daaed50e6188869d9fff0f07a9b9ab Mon Sep 17 00:00:00 2001 From: WieszczY Date: Fri, 28 Aug 2026 06:55:14 +0200 Subject: [PATCH 1/2] Add missing SemanticVersion compatibility model --- .../plotsx/loader/SemanticVersion.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/kotlin/pl/syntaxdevteam/plotsx/loader/SemanticVersion.kt diff --git a/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/SemanticVersion.kt b/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/SemanticVersion.kt new file mode 100644 index 0000000..6e44db3 --- /dev/null +++ b/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/SemanticVersion.kt @@ -0,0 +1,38 @@ +package pl.syntaxdevteam.plotsx.loader + +data class SemanticVersion( + val major: Int, + val minor: Int, + val patch: Int +) : Comparable { + override fun compareTo(other: SemanticVersion): Int { + return compareValuesBy( + this, + other, + SemanticVersion::major, + SemanticVersion::minor, + SemanticVersion::patch + ) + } + + override fun toString(): String = "$major.$minor.$patch" + + companion object { + private val VERSION_PATTERN = Regex("\\d+(?:\\.\\d+){0,2}") + + fun parse(raw: String): SemanticVersion { + val clean = VERSION_PATTERN.find(raw)?.value ?: "0.0.0" + val parts = clean.split('.') + val major = parts.getOrNull(0)?.toIntOrNull() ?: 0 + val minor = parts.getOrNull(1)?.toIntOrNull() ?: 0 + val patch = parts.getOrNull(2)?.toIntOrNull() ?: 0 + return SemanticVersion(major, minor, patch) + } + } +} + +fun SemanticVersion.isBetween(start: SemanticVersion, endInclusive: SemanticVersion?): Boolean { + if (this < start) return false + if (endInclusive == null) return true + return this <= endInclusive +} From ddb359cd198d445dd2272db99c311d908617f5ab Mon Sep 17 00:00:00 2001 From: WieszczY Date: Fri, 28 Aug 2026 06:55:22 +0200 Subject: [PATCH 2/2] Fix VersionChecker compatibility imports --- .../kotlin/pl/syntaxdevteam/plotsx/loader/VersionChecker.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/VersionChecker.kt b/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/VersionChecker.kt index 8231234..074dd63 100644 --- a/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/VersionChecker.kt +++ b/src/main/kotlin/pl/syntaxdevteam/plotsx/loader/VersionChecker.kt @@ -1,7 +1,9 @@ package pl.syntaxdevteam.plotsx.loader import org.bukkit.Bukkit +import pl.syntaxdevteam.core.platform.ServerEnvironment import pl.syntaxdevteam.plotsx.PlotsX + class VersionChecker(private val plugin: PlotsX) { companion object { @@ -22,7 +24,7 @@ class VersionChecker(private val plugin: PlotsX) { SemanticVersion(26, 1, 0), SemanticVersion(26, 1, 1), SemanticVersion(26, 1, 2), - SemanticVersion(26,2,0) + SemanticVersion(26, 2, 0) ) fun isVersionSupported(version: String): Boolean = @@ -58,5 +60,3 @@ class VersionChecker(private val plugin: PlotsX) { return current >= required } } - -