@@ -87,31 +87,6 @@ class VersionController(
8787 logger.warning(" No Lambda versions found for Minecraft $minecraftVersion " )
8888 logger.warning(" Available versions: ${versions.joinToString(" , " )} " )
8989 }
90-
91- // Try to find closest version by matching major.minor version (e.g., 1.21.x)
92- val minecraftMajorMinor = minecraftVersion.split(" ." ).take(2 ).joinToString(" ." )
93- val closeMatchVersions = versions.filter { version ->
94- version.contains(" +$minecraftMajorMinor ." )
95- }
96-
97- if (closeMatchVersions.isNotEmpty()) {
98- val fallbackVersion = closeMatchVersions.last()
99- if (ConfigManager .config.debug) {
100- logger.warning(" Falling back to closest version: $fallbackVersion " )
101- }
102- return fallbackVersion
103- }
104-
105- // Last resort: use the latest available version
106- if (versions.isNotEmpty()) {
107- val lastResortVersion = versions.last()
108- if (ConfigManager .config.debug) {
109- logger.warning(" No close match found. Using latest available version: $lastResortVersion " )
110- logger.warning(" This may cause compatibility issues!" )
111- }
112- return lastResortVersion
113- }
114-
11590 return null
11691 }
11792
@@ -192,23 +167,46 @@ class VersionController(
192167
193168 private fun getJarUrl (): String? {
194169 return when (ConfigManager .config.releaseMode) {
195- ReleaseMode .STABLE -> getReleaseJarUrl()
170+ ReleaseMode .STABLE -> {
171+ val releaseUrl = getReleaseJarUrl()
172+ if (releaseUrl == null ) {
173+ logger.warning(" No stable version found for Minecraft $minecraftVersion , falling back to snapshot" )
174+ getSnapshotJarUrl()
175+ } else {
176+ releaseUrl
177+ }
178+ }
196179 ReleaseMode .SNAPSHOT -> getSnapshotJarUrl()
197180 }
198181 }
199182
200183 private fun getChecksumUrl (): String? {
201184 return when (ConfigManager .config.releaseMode) {
202- ReleaseMode .STABLE -> getReleaseChecksumUrl()
185+ ReleaseMode .STABLE -> {
186+ val releaseChecksumUrl = getReleaseChecksumUrl()
187+ if (releaseChecksumUrl == null ) {
188+ logger.warning(" No stable version checksum found for Minecraft $minecraftVersion , falling back to snapshot" )
189+ getSnapshotChecksumUrl()
190+ } else {
191+ releaseChecksumUrl
192+ }
193+ }
203194 ReleaseMode .SNAPSHOT -> getSnapshotChecksumUrl()
204195 }
205196 }
206197
207198 private fun getCacheFileName (): String? {
208199 return when (ConfigManager .config.releaseMode) {
209200 ReleaseMode .STABLE -> {
210- val version = checkReleasesVersion() ? : return null
211- " lambda-$version .jar"
201+ val version = checkReleasesVersion()
202+ if (version == null ) {
203+ logger.warning(" No stable cache filename found for Minecraft $minecraftVersion , falling back to snapshot" )
204+ val snapshotInfo = getLatestSnapshotInfo() ? : return null
205+ val baseVersion = snapshotInfo.version.replace(" -SNAPSHOT" , " " )
206+ " lambda-$baseVersion -${snapshotInfo.timestamp} -${snapshotInfo.buildNumber} .jar"
207+ } else {
208+ " lambda-$version .jar"
209+ }
212210 }
213211
214212 ReleaseMode .SNAPSHOT -> {
@@ -318,7 +316,23 @@ class VersionController(
318316 return try {
319317 // Ensure the latest version is cached
320318 if (! ensureLatestVersionCached()) {
321- logger.severe(" Failed to ensure latest version is cached" )
319+ // Check if both stable and snapshot versions are unavailable
320+ val stableVersion = checkReleasesVersion()
321+ val snapshotVersion = checkSnapshotVersion()
322+
323+ if (stableVersion == null && snapshotVersion == null ) {
324+ logger.severe(" ═══════════════════════════════════════════════════════════" )
325+ logger.severe(" FATAL ERROR: No Lambda Client version found!" )
326+ logger.severe(" Minecraft version: $minecraftVersion " )
327+ logger.severe(" Neither STABLE nor SNAPSHOT versions are available for this Minecraft version." )
328+ logger.severe(" Please check:" )
329+ logger.severe(" 1. Your internet connection" )
330+ logger.severe(" 2. Maven repository availability at: $mavenUrl " )
331+ logger.severe(" 3. If Lambda Client supports Minecraft $minecraftVersion " )
332+ logger.severe(" ═══════════════════════════════════════════════════════════" )
333+ } else {
334+ logger.severe(" Failed to ensure latest version is cached" )
335+ }
322336 return null
323337 }
324338
0 commit comments