diff options
author | Petr Mrázek <peterix@users.noreply.github.com> | 2021-06-25 12:20:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-25 12:20:27 +0200 |
commit | d92733feaeca6a471063a86afe8dad613bedd689 (patch) | |
tree | 670eed6bc00107519f73d1ad7b95f46e4d38f6fe /api/logic/minecraft/launch | |
parent | 27d3ae145a2efd00be76b2c5b5c797b7807b852c (diff) | |
parent | a20a7e987fcc6e2d43a1686a175447495245615c (diff) | |
download | PrismLauncher-d92733feaeca6a471063a86afe8dad613bedd689.tar.gz PrismLauncher-d92733feaeca6a471063a86afe8dad613bedd689.tar.bz2 PrismLauncher-d92733feaeca6a471063a86afe8dad613bedd689.zip |
Merge pull request #3897 from jamierocks/atl-opt-mod-install-btn
NOISSUE Close optional mod dialog with Install button
Diffstat (limited to 'api/logic/minecraft/launch')
-rw-r--r-- | api/logic/minecraft/launch/VerifyJavaInstall.cpp | 34 | ||||
-rw-r--r-- | api/logic/minecraft/launch/VerifyJavaInstall.h | 17 |
2 files changed, 51 insertions, 0 deletions
diff --git a/api/logic/minecraft/launch/VerifyJavaInstall.cpp b/api/logic/minecraft/launch/VerifyJavaInstall.cpp new file mode 100644 index 00000000..657669af --- /dev/null +++ b/api/logic/minecraft/launch/VerifyJavaInstall.cpp @@ -0,0 +1,34 @@ +#include "VerifyJavaInstall.h" + +#include <launch/LaunchTask.h> +#include <minecraft/MinecraftInstance.h> +#include <minecraft/PackProfile.h> +#include <minecraft/VersionFilterData.h> + +void VerifyJavaInstall::executeTask() { + auto m_inst = std::dynamic_pointer_cast<MinecraftInstance>(m_parent->instance()); + + auto javaVersion = m_inst->getJavaVersion(); + auto minecraftComponent = m_inst->getPackProfile()->getComponent("net.minecraft"); + + // Java 16 requirement + if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java16BeginsDate) { + if (javaVersion.major() < 16) { + emit logLine("Minecraft 21w19a and above require the use of Java 16", + MessageLevel::Fatal); + emitFailed(tr("Minecraft 21w19a and above require the use of Java 16")); + return; + } + } + // Java 8 requirement + else if (minecraftComponent->getReleaseDateTime() >= g_VersionFilterData.java8BeginsDate) { + if (javaVersion.major() < 8) { + emit logLine("Minecraft 17w13a and above require the use of Java 8", + MessageLevel::Fatal); + emitFailed(tr("Minecraft 17w13a and above require the use of Java 8")); + return; + } + } + + emitSucceeded(); +} diff --git a/api/logic/minecraft/launch/VerifyJavaInstall.h b/api/logic/minecraft/launch/VerifyJavaInstall.h new file mode 100644 index 00000000..a553106d --- /dev/null +++ b/api/logic/minecraft/launch/VerifyJavaInstall.h @@ -0,0 +1,17 @@ +#pragma once + +#include <launch/LaunchStep.h> + +class VerifyJavaInstall : public LaunchStep { + Q_OBJECT + +public: + explicit VerifyJavaInstall(LaunchTask *parent) : LaunchStep(parent) { + }; + ~VerifyJavaInstall() override = default; + + void executeTask() override; + bool canAbort() const override { + return false; + } +}; |