Skip to content

Commit

Permalink
fix JavaChecker: legacyJavaChecker doesn't set JavaBinaryPath property
Browse files Browse the repository at this point in the history
  • Loading branch information
AlphaBs committed Jun 14, 2021
1 parent 6a78a57 commit 0efdd8d
Showing 1 changed file with 26 additions and 15 deletions.
41 changes: 26 additions & 15 deletions CmlLib/Core/Files/JavaChecker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,23 @@ public class JavaChecker : IFileChecker
if (string.IsNullOrEmpty(javaVersion))
javaVersion = "jre-legacy";

version.JavaBinaryPath = Path.Combine(path.Runtime, javaVersion, "bin", JavaBinaryName);
var files = internalCheckFile(
javaVersion, path, downloadProgress, out string binPath);

version.JavaBinaryPath = binPath;
return files;
}

public Task<DownloadFile[]?> CheckFilesTaskAsync(MinecraftPath path, MVersion version,
IProgress<DownloadFileChangedEventArgs>? downloadProgress)
{
return Task.Run(() => CheckFiles(path, version, downloadProgress));
}

private DownloadFile[]? internalCheckFile(string javaVersion, MinecraftPath path,
IProgress<DownloadFileChangedEventArgs>? downloadProgress, out string binPath)
{
binPath = Path.Combine(path.Runtime, javaVersion, "bin", JavaBinaryName);

try
{
Expand All @@ -41,30 +57,24 @@ public class JavaChecker : IFileChecker
if (javaManifest == null)
javaManifest = getJavaVersionManifest(javaVersions, "jre-legacy");
if (javaManifest == null)
return legacyJavaChecker(path);
return legacyJavaChecker(path, out binPath);

var files = javaManifest["files"] as JObject;
if (files == null)
return legacyJavaChecker(path);
return legacyJavaChecker(path, out binPath);

return toDownloadFiles(javaVersion, files, path, downloadProgress);
}
else
return legacyJavaChecker(path);
return legacyJavaChecker(path, out binPath);
}
catch (Exception e)
{
Debug.WriteLine(e);
return null;
return legacyJavaChecker(path, out binPath);
}
}

public Task<DownloadFile[]?> CheckFilesTaskAsync(MinecraftPath path, MVersion version,
IProgress<DownloadFileChangedEventArgs>? downloadProgress)
{
return Task.Run(() => CheckFiles(path, version, downloadProgress));
}

private string getJavaOSName()
{
string osName = "";
Expand Down Expand Up @@ -148,7 +158,7 @@ private DownloadFile[] toDownloadFiles(string javaVersionName, JObject manifest,
if (executable)
file.AfterDownload = new Func<Task>[]
{
() => Task.Run(() => TryChmod755(filePath))
() => Task.Run(() => tryChmod755(filePath))
};
files.Add(file);
}
Expand Down Expand Up @@ -189,10 +199,11 @@ private DownloadFile[] toDownloadFiles(string javaVersionName, JObject manifest,
};
}

private DownloadFile[] legacyJavaChecker(MinecraftPath path)
private DownloadFile[] legacyJavaChecker(MinecraftPath path, out string binPath)
{
string legacyJavaPath = Path.Combine(path.Runtime, "m-legacy");
MJava mJava = new MJava(legacyJavaPath);
binPath = mJava.GetBinaryPath();

if (mJava.CheckJavaExistence())
return new DownloadFile[] {};
Expand All @@ -214,15 +225,15 @@ private DownloadFile[] legacyJavaChecker(MinecraftPath path)
var z = new SharpZip(zipPath);
z.Unzip(legacyJavaPath);

TryChmod755(mJava.GetBinaryPath());
tryChmod755(mJava.GetBinaryPath());
})
}
};

return new[] {file};
}

private void TryChmod755(string path)
private void tryChmod755(string path)
{
try
{
Expand Down

0 comments on commit 0efdd8d

Please sign in to comment.