|
11 | 11 |
|
12 | 12 | VersionManager::VersionManager(QObject *parent) : QObject(parent) {} |
13 | 13 |
|
14 | | -QString VersionManager::getVersionPath(const QString &versionName) const { |
15 | | - return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/mcpelauncher/versions/" + versionName; |
| 14 | +QStringList VersionManager::getInstalledVersions() const { |
| 15 | + QString versionsDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) |
| 16 | + + "/mcpelauncher/versions"; |
| 17 | + QDir dir(versionsDir); |
| 18 | + if (dir.exists()) { |
| 19 | + return dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); |
| 20 | + } |
| 21 | + return QStringList(); |
16 | 22 | } |
17 | 23 |
|
18 | | -bool VersionManager::isVersionValid(const QString &versionName) const { |
19 | | - QString path = getVersionPath(versionName); |
20 | | - // Check for the presence of the lib folder containing the game library |
21 | | - return QDir(path + "/version_content/lib").exists(); |
| 24 | +QString VersionManager::getVersionPath(const QString &versionName) const { |
| 25 | + return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) |
| 26 | + + "/mcpelauncher/versions/" + versionName; |
22 | 27 | } |
23 | 28 |
|
24 | | -QStringList VersionManager::getInstalledVersions() const{ |
25 | | - QString versionsDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/mcpelauncher/versions/"; |
26 | | - QDir dir(versionsDir); |
27 | | - QStringList versions = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); |
28 | | - |
29 | | - // Filter valid versions (those containing lib/x86_64/libminecraftpe.so) |
30 | | - QStringList validVersions; |
31 | | - for (const QString &version : versions) { |
32 | | - if (isVersionValid(version)) { |
33 | | - validVersions << version; |
34 | | - } |
35 | | - } |
36 | | - return validVersions; |
| 29 | +// Check for the main runtime library (libminecraftpe.so). |
| 30 | +// See: https://github.com/minecraft-linux/mcpelauncher-manifest (GPLv3) |
| 31 | +bool VersionManager::isVersionValid(const QString &versionName) const { |
| 32 | + QString libPath = getVersionPath(versionName) + "/lib/x86_64/libminecraftpe.so"; |
| 33 | + return QFileInfo::exists(libPath); |
37 | 34 | } |
38 | 35 |
|
39 | 36 | bool VersionManager::extractApk(const QString &apkPath, const QString &versionName, QString &errorMsg) { |
|
0 commit comments