summaryrefslogtreecommitdiffstats
path: root/logic/minecraft/RawLibrary.h
diff options
context:
space:
mode:
Diffstat (limited to 'logic/minecraft/RawLibrary.h')
-rw-r--r--logic/minecraft/RawLibrary.h36
1 files changed, 26 insertions, 10 deletions
diff --git a/logic/minecraft/RawLibrary.h b/logic/minecraft/RawLibrary.h
index a3990740..3f3cb925 100644
--- a/logic/minecraft/RawLibrary.h
+++ b/logic/minecraft/RawLibrary.h
@@ -5,6 +5,7 @@
#include <QStringList>
#include <QMap>
#include <QDir>
+#include <QUrl>
#include <memory>
#include "minecraft/OneSixRule.h"
@@ -33,7 +34,7 @@ public: /* methods */
{
return m_name;
}
-
+
void setRawName(const GradleSpecifier & spec)
{
m_name = spec;
@@ -43,7 +44,7 @@ public: /* methods */
{
m_name.setClassifier(spec);
}
-
+
/// returns the full group and artifact prefix
QString artifactPrefix() const
{
@@ -68,8 +69,24 @@ public: /* methods */
return m_native_classifiers.size() != 0;
}
+ void setStoragePrefix(QString prefix = QString());
+
+ /// the default storage prefix used by MultiMC
+ static QString defaultStoragePrefix();
+
+ bool storagePathIsDefault() const;
+
+ /// Get the prefix - root of the storage to be used
+ QString storagePrefix() const;
+
+ /// Get the relative path where the library should be saved
+ QString storageSuffix() const;
+
+ /// Get the absolute path where the library should be saved
+ QString storagePath() const;
+
/// Set the url base for downloads
- void setBaseUrl(const QString &base_url)
+ void setBaseUrl(const QUrl &base_url)
{
m_base_url = base_url;
}
@@ -110,11 +127,7 @@ public: /* methods */
bool isActive() const;
/// Get the URL to download the library from
- QString downloadUrl() const;
-
- /// Get the relative path where the library should be saved
- QString storagePath() const;
-
+ QUrl url() const;
protected: /* data */
/// the basic gradle dependency specifier.
@@ -128,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
- QString m_base_url;
+ QUrl m_base_url;
/// DEPRECATED: absolute URL. takes precedence the normal download URL, if defined
QString m_absolute_url;
@@ -136,6 +149,9 @@ public: /* data */
/// type hint - modifies how the library is treated
QString m_hint;
+ /// storage - by default the local libraries folder in multimc, but could be elsewhere
+ QString m_storagePrefix;
+
/// true if the library had an extract/excludes section (even empty)
bool applyExcludes = false;
@@ -160,7 +176,7 @@ public: /* data */
Replace
} insertType = Append;
QString insertData;
-
+
/// determines how can libraries be applied. conflicting dependencies cause errors.
enum DependType
{