preparing java autodownload

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97 2024-02-03 00:11:05 +02:00
parent 0384e652fb
commit 82b15268bc
No known key found for this signature in database
GPG Key ID: 55EF5DA53DB36318
5 changed files with 22 additions and 8 deletions

View File

@ -30,11 +30,11 @@ class JavaVersion {
QString toString() const; QString toString() const;
int major() { return m_major; } int major() const { return m_major; }
int minor() { return m_minor; } int minor() const { return m_minor; }
int security() { return m_security; } int security() const { return m_security; }
QString build() { return m_prerelease; } QString build() const { return m_prerelease; }
QString name() { return m_name; } QString name() const { return m_name; }
private: private:
QString m_string; QString m_string;

View File

@ -164,6 +164,10 @@ void LaunchProfile::applyCompatibleJavaMajors(QList<int>& javaMajor)
{ {
m_compatibleJavaMajors.append(javaMajor); m_compatibleJavaMajors.append(javaMajor);
} }
void LaunchProfile::applyCompatibleJavaName(QString javaName)
{
m_compatibleJavaName = javaName;
}
void LaunchProfile::applyLibrary(LibraryPtr library, const RuntimeContext& runtimeContext) void LaunchProfile::applyLibrary(LibraryPtr library, const RuntimeContext& runtimeContext)
{ {
@ -334,6 +338,11 @@ const QList<int>& LaunchProfile::getCompatibleJavaMajors() const
return m_compatibleJavaMajors; return m_compatibleJavaMajors;
} }
const QString LaunchProfile::getCompatibleJavaName() const
{
return m_compatibleJavaName;
}
void LaunchProfile::getLibraryFiles(const RuntimeContext& runtimeContext, void LaunchProfile::getLibraryFiles(const RuntimeContext& runtimeContext,
QStringList& jars, QStringList& jars,
QStringList& nativeJars, QStringList& nativeJars,

View File

@ -59,6 +59,7 @@ class LaunchProfile : public ProblemProvider {
void applyMavenFile(LibraryPtr library, const RuntimeContext& runtimeContext); void applyMavenFile(LibraryPtr library, const RuntimeContext& runtimeContext);
void applyAgent(AgentPtr agent, const RuntimeContext& runtimeContext); void applyAgent(AgentPtr agent, const RuntimeContext& runtimeContext);
void applyCompatibleJavaMajors(QList<int>& javaMajor); void applyCompatibleJavaMajors(QList<int>& javaMajor);
void applyCompatibleJavaName(QString javaName);
void applyMainJar(LibraryPtr jar); void applyMainJar(LibraryPtr jar);
void applyProblemSeverity(ProblemSeverity severity); void applyProblemSeverity(ProblemSeverity severity);
/// clear the profile /// clear the profile
@ -80,6 +81,7 @@ class LaunchProfile : public ProblemProvider {
const QList<LibraryPtr>& getMavenFiles() const; const QList<LibraryPtr>& getMavenFiles() const;
const QList<AgentPtr>& getAgents() const; const QList<AgentPtr>& getAgents() const;
const QList<int>& getCompatibleJavaMajors() const; const QList<int>& getCompatibleJavaMajors() const;
const QString getCompatibleJavaName() const;
const LibraryPtr getMainJar() const; const LibraryPtr getMainJar() const;
void getLibraryFiles(const RuntimeContext& runtimeContext, void getLibraryFiles(const RuntimeContext& runtimeContext,
QStringList& jars, QStringList& jars,
@ -150,5 +152,7 @@ class LaunchProfile : public ProblemProvider {
/// compatible java major versions /// compatible java major versions
QList<int> m_compatibleJavaMajors; QList<int> m_compatibleJavaMajors;
QString m_compatibleJavaName;
ProblemSeverity m_problemSeverity = ProblemSeverity::None; ProblemSeverity m_problemSeverity = ProblemSeverity::None;
}; };

View File

@ -73,6 +73,7 @@ void VersionFile::applyTo(LaunchProfile* profile, const RuntimeContext& runtimeC
profile->applyMods(mods); profile->applyMods(mods);
profile->applyTraits(traits); profile->applyTraits(traits);
profile->applyCompatibleJavaMajors(compatibleJavaMajors); profile->applyCompatibleJavaMajors(compatibleJavaMajors);
profile->applyCompatibleJavaName(compatibleJavaName);
for (auto library : libraries) { for (auto library : libraries) {
profile->applyLibrary(library, runtimeContext); profile->applyLibrary(library, runtimeContext);

View File

@ -45,9 +45,9 @@ namespace Java {
Downloader::Downloader(QWidget* parent) : QDialog(parent), ui(new Ui::JavaDownloader) Downloader::Downloader(QWidget* parent) : QDialog(parent), ui(new Ui::JavaDownloader)
{ {
ui->setupUi(this); ui->setupUi(this);
auto versionList = new Meta::VersionList("net.minecraft.java", this); auto versionList = APPLICATION->metadataIndex()->get("net.minecraft.java");
versionList->setProvidedRoles({ BaseVersionList::VersionRole, BaseVersionList::RecommendedRole, BaseVersionList::VersionPointerRole }); versionList->setProvidedRoles({ BaseVersionList::VersionRole, BaseVersionList::RecommendedRole, BaseVersionList::VersionPointerRole });
ui->majorVersionSelect->initialize(versionList); ui->majorVersionSelect->initialize(versionList.get());
ui->majorVersionSelect->selectCurrent(); ui->majorVersionSelect->selectCurrent();
ui->majorVersionSelect->setEmptyString(tr("No java versions are currently available in the meta")); ui->majorVersionSelect->setEmptyString(tr("No java versions are currently available in the meta"));
ui->majorVersionSelect->setEmptyErrorString(tr("Couldn't load or download the java version lists!")); ui->majorVersionSelect->setEmptyErrorString(tr("Couldn't load or download the java version lists!"));
@ -85,7 +85,7 @@ void Downloader::accept()
return; return;
} }
Task::Ptr task; Task::Ptr task;
auto final_path = FS::PathCombine(APPLICATION->dataRoot(), "java", meta->m_name); auto final_path = FS::PathCombine(APPLICATION->dataRoot(), "java", meta->vendor, meta->m_name);
switch (meta->downloadType) { switch (meta->downloadType) {
case Java::DownloadType::Manifest: case Java::DownloadType::Manifest:
task = makeShared<ManifestDownloadTask>(meta->url, final_path, meta->checksumType, meta->checksumHash); task = makeShared<ManifestDownloadTask>(meta->url, final_path, meta->checksumType, meta->checksumHash);