diff options
author | Petr Mrázek <peterix@gmail.com> | 2015-05-31 17:51:20 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2015-05-31 17:51:20 +0200 |
commit | ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355 (patch) | |
tree | 3d8cf8491aaba702a1ccf2280136a0689af1519c /logic | |
parent | 84757f485b51bd54926807d05fe4fa503a09ea4c (diff) | |
download | MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar.gz MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar.lz MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.tar.xz MultiMC-ff64b6cf1d21e35cbc10ebc6cf3838f5b0244355.zip |
GH-1020 use plain strings for library URLs
Because the URLs can contain {}, which are percent encoded in URLs and this breaks variable substitution
Diffstat (limited to 'logic')
-rw-r--r-- | logic/minecraft/OneSixUpdate.cpp | 2 | ||||
-rw-r--r-- | logic/minecraft/RawLibrary.cpp | 13 | ||||
-rw-r--r-- | logic/minecraft/RawLibrary.h | 6 |
3 files changed, 14 insertions, 7 deletions
diff --git a/logic/minecraft/OneSixUpdate.cpp b/logic/minecraft/OneSixUpdate.cpp index 9dcb977b..485727ec 100644 --- a/logic/minecraft/OneSixUpdate.cpp +++ b/logic/minecraft/OneSixUpdate.cpp @@ -228,7 +228,7 @@ void OneSixUpdate::jarlibStart() } QString raw_storage = lib->storageSuffix(); - QString raw_dl = lib->url().toString(); + QString raw_dl = lib->url(); auto f = [&](QString storage, QString dl) { diff --git a/logic/minecraft/RawLibrary.cpp b/logic/minecraft/RawLibrary.cpp index fa8270cd..bae6c66a 100644 --- a/logic/minecraft/RawLibrary.cpp +++ b/logic/minecraft/RawLibrary.cpp @@ -157,7 +157,7 @@ QJsonObject RawLibrary::toJson() const m_base_url != "https://" + URLConstants::AWS_DOWNLOAD_LIBRARIES && m_base_url != "https://" + URLConstants::LIBRARY_BASE && !m_base_url.isEmpty()) { - libRoot.insert("url", m_base_url.toString()); + libRoot.insert("url", m_base_url); } if (isNative()) { @@ -224,7 +224,7 @@ bool RawLibrary::filesExist(const QDir &base) const } return true; } -QUrl RawLibrary::url() const +QString RawLibrary::url() const { if (!m_absolute_url.isEmpty()) { @@ -236,7 +236,14 @@ QUrl RawLibrary::url() const return QString("https://" + URLConstants::LIBRARY_BASE) + storageSuffix(); } - return m_base_url.resolved(storageSuffix()); + if(m_base_url.endsWith('/')) + { + return m_base_url + storageSuffix(); + } + else + { + return m_base_url + QChar('/') + storageSuffix(); + } } bool RawLibrary::isActive() const diff --git a/logic/minecraft/RawLibrary.h b/logic/minecraft/RawLibrary.h index 3f3cb925..e51cbf4c 100644 --- a/logic/minecraft/RawLibrary.h +++ b/logic/minecraft/RawLibrary.h @@ -86,7 +86,7 @@ public: /* methods */ QString storagePath() const; /// Set the url base for downloads - void setBaseUrl(const QUrl &base_url) + void setBaseUrl(const QString &base_url) { m_base_url = base_url; } @@ -127,7 +127,7 @@ public: /* methods */ bool isActive() const; /// Get the URL to download the library from - QUrl url() const; + QString url() const; protected: /* data */ /// the basic gradle dependency specifier. @@ -141,7 +141,7 @@ protected: /* data */ public: /* data */ // TODO: make all of these protected, clean up semantics of implicit vs. explicit values. /// URL where the file can be downloaded - QUrl m_base_url; + QString m_base_url; /// DEPRECATED: absolute URL. takes precedence the normal download URL, if defined QString m_absolute_url; |