summaryrefslogtreecommitdiffstats
path: root/libraries/logic/minecraft/Library.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/logic/minecraft/Library.h')
-rw-r--r--libraries/logic/minecraft/Library.h184
1 files changed, 0 insertions, 184 deletions
diff --git a/libraries/logic/minecraft/Library.h b/libraries/logic/minecraft/Library.h
deleted file mode 100644
index fdce93f3..00000000
--- a/libraries/logic/minecraft/Library.h
+++ /dev/null
@@ -1,184 +0,0 @@
-#pragma once
-#include <QString>
-#include <net/NetAction.h>
-#include <QPair>
-#include <QList>
-#include <QStringList>
-#include <QMap>
-#include <QDir>
-#include <QUrl>
-#include <memory>
-
-#include "Rule.h"
-#include "minecraft/OpSys.h"
-#include "GradleSpecifier.h"
-#include "net/URLConstants.h"
-#include "MojangDownloadInfo.h"
-
-#include "multimc_logic_export.h"
-
-class Library;
-
-typedef std::shared_ptr<Library> LibraryPtr;
-
-class MULTIMC_LOGIC_EXPORT Library
-{
- friend class OneSixVersionFormat;
- friend class MojangVersionFormat;
- friend class LibraryTest;
-public:
- Library()
- {
- }
- Library(const QString &name)
- {
- m_name = name;
- }
- /// limited copy without some data. TODO: why?
- static LibraryPtr limitedCopy(LibraryPtr base)
- {
- auto newlib = std::make_shared<Library>();
- newlib->m_name = base->m_name;
- newlib->m_repositoryURL = base->m_repositoryURL;
- newlib->m_hint = base->m_hint;
- newlib->m_absoluteURL = base->m_absoluteURL;
- newlib->m_extractExcludes = base->m_extractExcludes;
- newlib->m_nativeClassifiers = base->m_nativeClassifiers;
- newlib->m_rules = base->m_rules;
- newlib->m_storagePrefix = base->m_storagePrefix;
- newlib->m_mojangDownloads = base->m_mojangDownloads;
- return newlib;
- }
-
-public: /* methods */
- /// Returns the raw name field
- const GradleSpecifier & rawName() const
- {
- return m_name;
- }
-
- void setRawName(const GradleSpecifier & spec)
- {
- m_name = spec;
- }
-
- void setClassifier(const QString & spec)
- {
- m_name.setClassifier(spec);
- }
-
- /// returns the full group and artifact prefix
- QString artifactPrefix() const
- {
- return m_name.artifactPrefix();
- }
-
- /// get the artifact ID
- QString artifactId() const
- {
- return m_name.artifactId();
- }
-
- /// get the artifact version
- QString version() const
- {
- return m_name.version();
- }
-
- /// Returns true if the library is native
- bool isNative() const
- {
- return m_nativeClassifiers.size() != 0;
- }
-
- void setStoragePrefix(QString prefix = QString());
-
- /// Set the url base for downloads
- void setRepositoryURL(const QString &base_url)
- {
- m_repositoryURL = base_url;
- }
-
- void getApplicableFiles(OpSys system, QStringList & jar, QStringList & native, QStringList & native32, QStringList & native64) const;
-
- void setAbsoluteUrl(const QString &absolute_url)
- {
- m_absoluteURL = absolute_url;
- }
-
- void setMojangDownloadInfo(MojangLibraryDownloadInfo::Ptr info)
- {
- m_mojangDownloads = info;
- }
-
- void setHint(const QString &hint)
- {
- m_hint = hint;
- }
-
- /// Set the load rules
- void setRules(QList<std::shared_ptr<Rule>> rules)
- {
- m_rules = rules;
- }
-
- /// Returns true if the library should be loaded (or extracted, in case of natives)
- bool isActive() const;
-
- // Get a list of downloads for this library
- QList<NetActionPtr> getDownloads(OpSys system, class HttpMetaCache * cache, QStringList &failedFiles) const;
-
-private: /* methods */
- /// the default storage prefix used by MultiMC
- static QString defaultStoragePrefix();
-
- /// 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(OpSys system) const;
-
- QString hint() const
- {
- return m_hint;
- }
-
-protected: /* data */
- /// the basic gradle dependency specifier.
- GradleSpecifier m_name;
-
- /// DEPRECATED URL prefix of the maven repo where the file can be downloaded
- QString m_repositoryURL;
-
- /// DEPRECATED: MultiMC-specific absolute URL. takes precedence over the implicit maven repo URL, if defined
- QString m_absoluteURL;
-
- /**
- * MultiMC-specific type hint - modifies how the library is treated
- */
- QString m_hint;
-
- /**
- * storage - by default the local libraries folder in multimc, but could be elsewhere
- * MultiMC specific, because of FTB.
- */
- QString m_storagePrefix;
-
- /// true if the library had an extract/excludes section (even empty)
- bool m_hasExcludes = false;
-
- /// a list of files that shouldn't be extracted from the library
- QStringList m_extractExcludes;
-
- /// native suffixes per OS
- QMap<OpSys, QString> m_nativeClassifiers;
-
- /// true if the library had a rules section (even empty)
- bool applyRules = false;
-
- /// rules associated with the library
- QList<std::shared_ptr<Rule>> m_rules;
-
- /// MOJANG: container with Mojang style download info
- MojangLibraryDownloadInfo::Ptr m_mojangDownloads;
-};