Add compatibility for new Minecraft version numbering

- Use ^ version range for major version 26+ instead of ~
- Match only major version for 26+ in latest compatible version lookup
This commit is contained in:
CPTProgrammer 2026-07-02 17:21:47 +08:00
parent e1ef1dd38f
commit d9df910db4
No known key found for this signature in database
3 changed files with 5 additions and 3 deletions

View File

@ -20,6 +20,8 @@ assert loomRemapStr in ["true", "false"] :
def loomRemap = loomRemapStr.toBoolean() def loomRemap = loomRemapStr.toBoolean()
apply plugin: loomRemap ? "net.fabricmc.fabric-loom-remap" : "net.fabricmc.fabric-loom" apply plugin: loomRemap ? "net.fabricmc.fabric-loom-remap" : "net.fabricmc.fabric-loom"
boolean hasNewVersionScheme = project.targetVersion.tokenize(".")*.toInteger()[0] >= 26
generateBuildProperties(project.minecraftVersions, project.targetVersion) generateBuildProperties(project.minecraftVersions, project.targetVersion)
version = "${project.mod_version}-mc${project.targetVersion}" version = "${project.mod_version}-mc${project.targetVersion}"
@ -119,7 +121,7 @@ processResources {
def expandProperties = [ def expandProperties = [
"version": mod_version, "version": mod_version,
"group": maven_group, "group": maven_group,
"minecraft_version": minecraft_version, "minecraft_version_range": "${hasNewVersionScheme ? "^" : "~"}${targetVersion}",
"java_version": java_version, "java_version": java_version,
"fabric_loader_version": fabric_loader_version, "fabric_loader_version": fabric_loader_version,
"fabric_loader_version_range": hasProperty("min_fabric_loader_version") && !min_fabric_loader_version.allWhitespace ? ">=${min_fabric_loader_version}" : "*", "fabric_loader_version_range": hasProperty("min_fabric_loader_version") && !min_fabric_loader_version.allWhitespace ? ">=${min_fabric_loader_version}" : "*",

View File

@ -60,7 +60,7 @@ static String findLatestCompatibleVersion(List<String> sortedVersions, String ve
sortedVersions.findAll { sortedVersions.findAll {
def versionList = it.tokenize(".")*.toInteger() def versionList = it.tokenize(".")*.toInteger()
compareMinecraftVersion(versionList, targetVersionList) <= 0 && compareMinecraftVersion(versionList, targetVersionList) <= 0 &&
(targetVersionList[0] == versionList[0] && targetVersionList[1] == versionList[1]) (targetVersionList[0] == versionList[0] && (targetVersionList[0] >= 26 || targetVersionList[1] == versionList[1]))
}.max { a, b -> compareMinecraftVersion(a, b) } }.max { a, b -> compareMinecraftVersion(a, b) }
} }

View File

@ -25,7 +25,7 @@
], ],
"depends": { "depends": {
"fabricloader": "${fabric_loader_version_range}", "fabricloader": "${fabric_loader_version_range}",
"minecraft": "~${minecraft_version}", "minecraft": "${minecraft_version_range}",
"java": ">=${java_version}", "java": ">=${java_version}",
"${fabric_api_mod_id}": ">=${fabric_api_version}" "${fabric_api_mod_id}": ">=${fabric_api_version}"
} }