From 69c3e7111f93290d1278d6116e9fd50079b4fe79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 11 May 2014 12:37:21 +0200 Subject: Make 1.6+ work with new instance format. --- logic/minecraft/RawLibrary.h | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) (limited to 'logic/minecraft/RawLibrary.h') diff --git a/logic/minecraft/RawLibrary.h b/logic/minecraft/RawLibrary.h index 46178d8e..f5a28c61 100644 --- a/logic/minecraft/RawLibrary.h +++ b/logic/minecraft/RawLibrary.h @@ -1,9 +1,14 @@ #pragma once #include #include +#include +#include +#include #include -#include "OneSixRule.h" +#include "logic/minecraft/OneSixRule.h" +#include "logic/minecraft/OpSys.h" +#include "logic/net/URLConstants.h" class RawLibrary; typedef std::shared_ptr RawLibraryPtr; @@ -11,24 +16,36 @@ typedef std::shared_ptr RawLibraryPtr; class RawLibrary { public: /* methods */ + /// read and create a basic library static RawLibraryPtr fromJson(const QJsonObject &libObj, const QString &filename); + /// read and create a MultiMC '+' library. Those have some extra fields. + static RawLibraryPtr fromJsonPlus(const QJsonObject &libObj, const QString &filename); + QJsonObject toJson(); + + QString fullname(); + QString version(); + QString group(); public: /* data */ - QString name; - QString url; - QString hint; - QString absoluteUrl; + QString m_name; + QString m_base_url = "https://" + URLConstants::LIBRARY_BASE; + /// type hint - modifies how the library is treated + QString m_hint; + /// absolute URL. takes precedence over m_download_path, if defined + QString m_absolute_url; bool applyExcludes = false; - QStringList excludes; + QStringList extract_excludes; - bool applyNatives = false; - QList> natives; + /// Returns true if the library is native + bool isNative() const; + /// native suffixes per OS + QMap m_native_suffixes; bool applyRules = false; - QList> rules; + QList> m_rules; - // user for '+' libraries + // used for '+' libraries enum InsertType { Apply, -- cgit v1.2.3