Skip to content
This repository was archived by the owner on Dec 30, 2022. It is now read-only.

Commit c9f7e76

Browse files
authored
Merge pull request #71 from DeathsGun/bugs/70_invalid_download_url
Encoding whitespaces in download urls
2 parents ac8ba8b + 23f4142 commit c9f7e76

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/main/kotlin/xyz/deathsgun/modmanager/update/UpdateManager.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ class UpdateManager {
262262
?: return ModUpdateResult.Error(TranslatableText("modmanager.error.update.noFabricJar"))
263263
}
264264
val jar = dir.resolve(asset.filename) // Download into same directory where the old jar was
265-
val request = HttpRequest.newBuilder(URI.create(asset.url)).GET()
265+
val request = HttpRequest.newBuilder(URI.create(encodeURI(asset.url))).GET()
266266
.setHeader("User-Agent", "ModManager ${ModManager.getVersion()}").build()
267267
val response = this.http.send(request, HttpResponse.BodyHandlers.ofFile(jar))
268268
if (response.statusCode() != 200) {
@@ -285,6 +285,7 @@ class UpdateManager {
285285
ModManager.modManager.changed = true
286286
ModUpdateResult.Success
287287
} catch (e: Exception) {
288+
e.printStackTrace()
288289
ModUpdateResult.Error(TranslatableText("modmanager.error.unknown.update", e))
289290
}
290291
}
@@ -413,4 +414,9 @@ class UpdateManager {
413414
return ModRemoveResult.Error(TranslatableText("modmanager.error.jar.failedDelete", e))
414415
}
415416
}
417+
418+
private fun encodeURI(url: String): String {
419+
return URI("dummy", url, null).rawSchemeSpecificPart
420+
}
421+
416422
}

0 commit comments

Comments
 (0)