Merge pull request #4254 from jamierocks/java-17-requirement

NOISSUE Error on launch when launching 1.18 with < Java 17
This commit is contained in:
Petr Mrázek 2021-11-16 19:33:36 +01:00 committed by GitHub
commit 0022aed8bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 1 deletions

View File

@ -68,4 +68,5 @@ VersionFilterData::VersionFilterData()
java8BeginsDate = timeFromS3Time("2017-03-30T09:32:19+00:00"); java8BeginsDate = timeFromS3Time("2017-03-30T09:32:19+00:00");
java16BeginsDate = timeFromS3Time("2021-05-12T11:19:15+00:00"); java16BeginsDate = timeFromS3Time("2021-05-12T11:19:15+00:00");
java17BeginsDate = timeFromS3Time("2021-11-16T17:04:48+00:00");
} }

View File

@ -25,5 +25,7 @@ struct VersionFilterData
QDateTime java8BeginsDate; QDateTime java8BeginsDate;
// release data of first version to require Java 16 (21w19a) // release data of first version to require Java 16 (21w19a)
QDateTime java16BeginsDate; QDateTime java16BeginsDate;
// release data of first version to require Java 17 (1.18 Pre Release 2)
QDateTime java17BeginsDate;
}; };
extern VersionFilterData g_VersionFilterData; extern VersionFilterData g_VersionFilterData;

View File

@ -11,8 +11,17 @@ void VerifyJavaInstall::executeTask() {
auto javaVersion = m_inst->getJavaVersion(); auto javaVersion = m_inst->getJavaVersion();
auto minecraftComponent = m_inst->getPackProfile()->getComponent("net.minecraft"); auto minecraftComponent = m_inst->getPackProfile()->getComponent("net.minecraft");
// Java 17 requirement
if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java17BeginsDate) {
if (javaVersion.major() < 17) {
emit logLine("Minecraft 1.18 Pre Release 2 and above require the use of Java 17",
MessageLevel::Fatal);
emitFailed(tr("Minecraft 1.18 Pre Release 2 and above require the use of Java 17"));
return;
}
}
// Java 16 requirement // Java 16 requirement
if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java16BeginsDate) { else if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java16BeginsDate) {
if (javaVersion.major() < 16) { if (javaVersion.major() < 16) {
emit logLine("Minecraft 21w19a and above require the use of Java 16", emit logLine("Minecraft 21w19a and above require the use of Java 16",
MessageLevel::Fatal); MessageLevel::Fatal);