From 50f4f74efadd429165f456e0e1747f60cbeb6029 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Thu, 11 Nov 2021 18:17:23 +0000 Subject: [PATCH] Fix extractServerJar jar task to use the path found in versions.list. --- build.gradle | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index cc6ac183e5..866c4dc7b3 100644 --- a/build.gradle +++ b/build.gradle @@ -258,13 +258,27 @@ task extractServerJar(dependsOn: downloadMcJars) { doLast { new ZipFile(serverBootstrapJar as File).withCloseable { zip -> - def entry = zip.getEntry("META-INF/versions/${minecraft_version}/server-${minecraft_version}.jar") + def serverVersionsEntry = zip.getEntry("META-INF/versions.list") - if (!entry) { - throw new RuntimeException("Failed to find server jar entry: ") + if (!serverVersionsEntry) { + throw new RuntimeException("Could not find versions.list") } - zip.getInputStream(entry).withCloseable { is -> + def jarPath = null + + zip.getInputStream(serverVersionsEntry).withCloseable { is -> + def versions = is.text.split("\t") + assert versions.length == 3 + jarPath = versions[2] + } + + def serverJarEntry = zip.getEntry("META-INF/versions/${jarPath}") + + if (!serverJarEntry) { + throw new RuntimeException("Failed to find server jar entry ${jarPath}") + } + + zip.getInputStream(serverJarEntry).withCloseable { is -> serverJar.bytes = is.readAllBytes() } }