diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-06-26 11:19:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-26 11:19:53 +0200 |
commit | d25452a64e86024fe3ea3b46fe9ef34c3d380080 (patch) | |
tree | e67f7a6ba41c48df59622a1930d93fc2669ec2aa /launcher/launch/steps/CheckJava.cpp | |
parent | 41d0f74750344eddfa5d0e89bb376941357f3b62 (diff) | |
parent | 8bebd7f042fc912dedb652c613a76a346c29a38f (diff) | |
download | PrismLauncher-d25452a64e86024fe3ea3b46fe9ef34c3d380080.tar.gz PrismLauncher-d25452a64e86024fe3ea3b46fe9ef34c3d380080.tar.bz2 PrismLauncher-d25452a64e86024fe3ea3b46fe9ef34c3d380080.zip |
Merge pull request #1274 from TheKodeToad/java-signature
Diffstat (limited to 'launcher/launch/steps/CheckJava.cpp')
-rw-r--r-- | launcher/launch/steps/CheckJava.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/launcher/launch/steps/CheckJava.cpp b/launcher/launch/steps/CheckJava.cpp index f0187586..7d697ba9 100644 --- a/launcher/launch/steps/CheckJava.cpp +++ b/launcher/launch/steps/CheckJava.cpp @@ -81,15 +81,20 @@ void CheckJava::executeTask() } QFileInfo javaInfo(realJavaPath); - qlonglong javaUnixTime = javaInfo.lastModified().toMSecsSinceEpoch(); - auto storedUnixTime = settings->get("JavaTimestamp").toLongLong(); + qint64 javaUnixTime = javaInfo.lastModified().toMSecsSinceEpoch(); + auto storedSignature = settings->get("JavaSignature").toString(); auto storedArchitecture = settings->get("JavaArchitecture").toString(); auto storedRealArchitecture = settings->get("JavaRealArchitecture").toString(); auto storedVersion = settings->get("JavaVersion").toString(); auto storedVendor = settings->get("JavaVendor").toString(); - m_javaUnixTime = javaUnixTime; + + QCryptographicHash hash(QCryptographicHash::Sha1); + hash.addData(QByteArray::number(javaUnixTime)); + hash.addData(m_javaPath.toUtf8()); + m_javaSignature = hash.result().toHex(); + // if timestamps are not the same, or something is missing, check! - if (javaUnixTime != storedUnixTime || storedVersion.size() == 0 + if (m_javaSignature != storedSignature || storedVersion.size() == 0 || storedArchitecture.size() == 0 || storedRealArchitecture.size() == 0 || storedVendor.size() == 0) { @@ -140,7 +145,7 @@ void CheckJava::checkJavaFinished(JavaCheckResult result) instance->settings()->set("JavaArchitecture", result.mojangPlatform); instance->settings()->set("JavaRealArchitecture", result.realPlatform); instance->settings()->set("JavaVendor", result.javaVendor); - instance->settings()->set("JavaTimestamp", m_javaUnixTime); + instance->settings()->set("JavaSignature", m_javaSignature); emitSucceeded(); return; } |