diff options
author | flow <flowlnlnln@gmail.com> | 2022-09-15 19:23:58 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-09-15 19:27:42 -0300 |
commit | 81e326571bb31dc4a92f1dbe32cb3ec50ace71f8 (patch) | |
tree | b61ca70fe0a167e3728a2768a211be1d1ec899dc /launcher/minecraft | |
parent | 1b2a7de4e2d643f49c36dc424c9244a98ce93f7e (diff) | |
download | PrismLauncher-81e326571bb31dc4a92f1dbe32cb3ec50ace71f8.tar.gz PrismLauncher-81e326571bb31dc4a92f1dbe32cb3ec50ace71f8.tar.bz2 PrismLauncher-81e326571bb31dc4a92f1dbe32cb3ec50ace71f8.zip |
fix: enable demo launch only on supported instances
e.g. >= 1.3.1 instances
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/minecraft')
-rw-r--r-- | launcher/minecraft/MinecraftInstance.cpp | 8 | ||||
-rw-r--r-- | launcher/minecraft/MinecraftInstance.h | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/launcher/minecraft/MinecraftInstance.cpp b/launcher/minecraft/MinecraftInstance.cpp index 9478b1b8..ab904fa2 100644 --- a/launcher/minecraft/MinecraftInstance.cpp +++ b/launcher/minecraft/MinecraftInstance.cpp @@ -245,6 +245,14 @@ QString MinecraftInstance::getLocalLibraryPath() const return libraries_dir.absolutePath(); } +bool MinecraftInstance::supportsDemo() const +{ + Version instance_ver { getPackProfile()->getComponentVersion("net.minecraft") }; + // Demo mode was introduced in 1.3.1: https://minecraft.fandom.com/wiki/Demo_mode#History + // FIXME: Due to Version constraints atm, this can't handle well non-release versions + return instance_ver >= Version("1.3.1"); +} + QString MinecraftInstance::jarModsDir() const { QDir jarmods_dir(FS::PathCombine(instanceRoot(), "jarmods/")); diff --git a/launcher/minecraft/MinecraftInstance.h b/launcher/minecraft/MinecraftInstance.h index d62ac655..fe39674a 100644 --- a/launcher/minecraft/MinecraftInstance.h +++ b/launcher/minecraft/MinecraftInstance.h @@ -69,6 +69,8 @@ public: // where the instance-local libraries should be QString getLocalLibraryPath() const; + /** Returns whether the instance, with its version, has support for demo mode. */ + [[nodiscard]] bool supportsDemo() const; ////// Profile management ////// std::shared_ptr<PackProfile> getPackProfile() const; |