diff options
author | Petr Mrázek <peterix@gmail.com> | 2014-07-19 23:16:02 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2014-07-19 23:16:02 +0200 |
commit | c767707c951bff6ff525a507be0393119e050b40 (patch) | |
tree | df40eca462f302f34b92db689ac1ce564375207b /logic/minecraft/OneSixLibrary.cpp | |
parent | 8a56ab6780f525472dce4dccdd53fec41390d586 (diff) | |
download | MultiMC-c767707c951bff6ff525a507be0393119e050b40.tar MultiMC-c767707c951bff6ff525a507be0393119e050b40.tar.gz MultiMC-c767707c951bff6ff525a507be0393119e050b40.tar.lz MultiMC-c767707c951bff6ff525a507be0393119e050b40.tar.xz MultiMC-c767707c951bff6ff525a507be0393119e050b40.zip |
Make forge work.
Using classifiers FTW.
Diffstat (limited to 'logic/minecraft/OneSixLibrary.cpp')
-rw-r--r-- | logic/minecraft/OneSixLibrary.cpp | 57 |
1 files changed, 25 insertions, 32 deletions
diff --git a/logic/minecraft/OneSixLibrary.cpp b/logic/minecraft/OneSixLibrary.cpp index f9a274bd..c562f353 100644 --- a/logic/minecraft/OneSixLibrary.cpp +++ b/logic/minecraft/OneSixLibrary.cpp @@ -30,7 +30,7 @@ OneSixLibrary::OneSixLibrary(RawLibraryPtr base) m_hint = base->m_hint; m_absolute_url = base->m_absolute_url; extract_excludes = base->extract_excludes; - m_native_suffixes = base->m_native_suffixes; + m_native_classifiers = base->m_native_classifiers; m_rules = base->m_rules; finalize(); } @@ -42,34 +42,8 @@ OneSixLibraryPtr OneSixLibrary::fromRawLibrary(RawLibraryPtr lib) void OneSixLibrary::finalize() { - QStringList parts = m_name.split(':'); - QString relative = parts[0]; - relative.replace('.', '/'); - relative += '/' + parts[1] + '/' + parts[2] + '/' + parts[1] + '-' + parts[2]; - - if (!isNative()) - relative += ".jar"; - else - { - if (m_native_suffixes.contains(currentSystem)) - { - relative += "-" + m_native_suffixes[currentSystem] + ".jar"; - } - else - { - // really, bad. - relative += ".jar"; - } - } - - m_decentname = parts[1]; - m_decentversion = minVersion = parts[2]; - m_storage_path = relative; - if(m_base_url.isEmpty()) - m_download_url = QString("https://" + URLConstants::LIBRARY_BASE) + relative; - else - m_download_url = m_base_url + relative; - + QString relative; + if (m_rules.empty()) { m_is_active = true; @@ -87,13 +61,32 @@ void OneSixLibrary::finalize() } if (isNative()) { - m_is_active = m_is_active && m_native_suffixes.contains(currentSystem); + GradleSpecifier nativeSpec = m_name; + m_is_active = m_is_active && m_native_classifiers.contains(currentSystem); m_decenttype = "Native"; + if(m_native_classifiers.contains(currentSystem)) + { + nativeSpec.setClassifier(m_native_classifiers[currentSystem]); + } + else + { + nativeSpec.setClassifier("INVALID"); + } + relative = nativeSpec.toPath(); } else { + relative = m_name.toPath(); m_decenttype = "Java"; } + + m_decentname = m_name.artifactId(); + m_decentversion = minVersion = m_name.version(); + m_storage_path = relative; + if(m_base_url.isEmpty()) + m_download_url = QString("https://" + URLConstants::LIBRARY_BASE) + relative; + else + m_download_url = m_base_url + relative; } void OneSixLibrary::setName(const QString &name) @@ -106,11 +99,11 @@ void OneSixLibrary::setBaseUrl(const QString &base_url) } void OneSixLibrary::addNative(OpSys os, const QString &suffix) { - m_native_suffixes[os] = suffix; + m_native_classifiers[os] = suffix; } void OneSixLibrary::clearSuffixes() { - m_native_suffixes.clear(); + m_native_classifiers.clear(); } void OneSixLibrary::setRules(QList<std::shared_ptr<Rule>> rules) { |