SCRATCH remove remaining references to MultiMC.h and fix legacy LWJGL
This commit is contained in:
parent
382ae78a0b
commit
d313e9ab09
@ -392,7 +392,7 @@ void MultiMC::initGlobalSettings(bool test_mode)
|
||||
}
|
||||
m_settings->registerSetting("ConsoleFontSize", defaultSize);
|
||||
|
||||
FTBPlugin::initialize();
|
||||
FTBPlugin::initialize(m_settings);
|
||||
|
||||
// Folders
|
||||
m_settings->registerSetting("InstanceDir", "instances");
|
||||
@ -467,6 +467,7 @@ std::shared_ptr<LWJGLVersionList> MultiMC::lwjgllist()
|
||||
if (!m_lwjgllist)
|
||||
{
|
||||
m_lwjgllist.reset(new LWJGLVersionList());
|
||||
ENV.registerVersionList("org.lwjgl.legacy", m_lwjgllist);
|
||||
}
|
||||
return m_lwjgllist;
|
||||
}
|
||||
@ -476,6 +477,7 @@ std::shared_ptr<ForgeVersionList> MultiMC::forgelist()
|
||||
if (!m_forgelist)
|
||||
{
|
||||
m_forgelist.reset(new ForgeVersionList());
|
||||
ENV.registerVersionList("net.minecraftforge", m_forgelist);
|
||||
}
|
||||
return m_forgelist;
|
||||
}
|
||||
@ -485,6 +487,7 @@ std::shared_ptr<LiteLoaderVersionList> MultiMC::liteloaderlist()
|
||||
if (!m_liteloaderlist)
|
||||
{
|
||||
m_liteloaderlist.reset(new LiteLoaderVersionList());
|
||||
ENV.registerVersionList("com.mumfrey.liteloader", m_liteloaderlist);
|
||||
}
|
||||
return m_liteloaderlist;
|
||||
}
|
||||
@ -494,6 +497,7 @@ std::shared_ptr<MinecraftVersionList> MultiMC::minecraftlist()
|
||||
if (!m_minecraftlist)
|
||||
{
|
||||
m_minecraftlist.reset(new MinecraftVersionList());
|
||||
ENV.registerVersionList("net.minecraft", m_liteloaderlist);
|
||||
}
|
||||
return m_minecraftlist;
|
||||
}
|
||||
@ -503,6 +507,7 @@ std::shared_ptr<JavaVersionList> MultiMC::javalist()
|
||||
if (!m_javalist)
|
||||
{
|
||||
m_javalist.reset(new JavaVersionList());
|
||||
ENV.registerVersionList("com.java", m_liteloaderlist);
|
||||
}
|
||||
return m_javalist;
|
||||
}
|
||||
|
12
MultiMC.h
12
MultiMC.h
@ -61,8 +61,8 @@ public:
|
||||
{
|
||||
return m_settings;
|
||||
}
|
||||
// InstanceList, OneSixUpdate, MinecraftInstance, OneSixProfileStrategy
|
||||
std::shared_ptr<MinecraftVersionList> minecraftlist();
|
||||
|
||||
|
||||
|
||||
QIcon getThemedIcon(const QString& name);
|
||||
|
||||
@ -74,16 +74,10 @@ public:
|
||||
return m_updateChecker;
|
||||
}
|
||||
|
||||
// LegacyUpdate
|
||||
std::shared_ptr<MinecraftVersionList> minecraftlist();
|
||||
std::shared_ptr<LWJGLVersionList> lwjgllist();
|
||||
|
||||
// APPLICATION ONLY
|
||||
std::shared_ptr<ForgeVersionList> forgelist();
|
||||
|
||||
// APPLICATION ONLY
|
||||
std::shared_ptr<LiteLoaderVersionList> liteloaderlist();
|
||||
|
||||
// APPLICATION ONLY
|
||||
std::shared_ptr<JavaVersionList> javalist();
|
||||
|
||||
// APPLICATION ONLY
|
||||
|
@ -13,7 +13,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "MultiMC.h"
|
||||
#include "BaseInstance.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
|
@ -1,13 +1,19 @@
|
||||
#include "Env.h"
|
||||
#include "logic/net/HttpMetaCache.h"
|
||||
#include "icons/IconList.h"
|
||||
#include "BaseVersion.h"
|
||||
#include "BaseVersionList.h"
|
||||
#include <QDir>
|
||||
#include <QNetworkProxy>
|
||||
#include <QNetworkAccessManager>
|
||||
#include "logger/QsLog.h"
|
||||
|
||||
#include "logic/tasks/Task.h"
|
||||
#include <QDebug>
|
||||
|
||||
/*
|
||||
* The *NEW* global rat nest of an object. Handle with care.
|
||||
*/
|
||||
|
||||
Env::Env()
|
||||
{
|
||||
m_qnam = std::make_shared<QNetworkAccessManager>();
|
||||
@ -17,6 +23,8 @@ void Env::destroy()
|
||||
{
|
||||
m_metacache.reset();
|
||||
m_qnam.reset();
|
||||
m_icons.reset();
|
||||
m_versionLists.clear();
|
||||
}
|
||||
|
||||
Env& Env::Env::getInstance()
|
||||
@ -41,6 +49,86 @@ std::shared_ptr<IconList> Env::icons()
|
||||
Q_ASSERT(m_icons != nullptr);
|
||||
return m_icons;
|
||||
}
|
||||
/*
|
||||
class NullVersion : public BaseVersion
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
virtual QString name()
|
||||
{
|
||||
return "null";
|
||||
}
|
||||
virtual QString descriptor()
|
||||
{
|
||||
return "null";
|
||||
}
|
||||
virtual QString typeString() const
|
||||
{
|
||||
return "Null";
|
||||
}
|
||||
};
|
||||
|
||||
class NullTask: public Task
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
virtual void executeTask()
|
||||
{
|
||||
emitFailed(tr("Nothing to do."));
|
||||
}
|
||||
};
|
||||
|
||||
class NullVersionList: public BaseVersionList
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
virtual const BaseVersionPtr at(int i) const
|
||||
{
|
||||
return std::make_shared<NullVersion>();
|
||||
}
|
||||
virtual int count() const
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
virtual Task* getLoadTask()
|
||||
{
|
||||
return new NullTask;
|
||||
}
|
||||
virtual bool isLoaded()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
virtual void sort()
|
||||
{
|
||||
}
|
||||
virtual void updateListData(QList< BaseVersionPtr >)
|
||||
{
|
||||
}
|
||||
};
|
||||
*/
|
||||
|
||||
BaseVersionPtr Env::getVersion(QString component, QString version)
|
||||
{
|
||||
auto list = getVersionList(component);
|
||||
return list->findVersion(version);
|
||||
}
|
||||
|
||||
std::shared_ptr< BaseVersionList > Env::getVersionList(QString component)
|
||||
{
|
||||
auto iter = m_versionLists.find(component);
|
||||
if(iter != m_versionLists.end())
|
||||
{
|
||||
return *iter;
|
||||
}
|
||||
//return std::make_shared<NullVersionList>();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Env::registerVersionList(QString name, std::shared_ptr< BaseVersionList > vlist)
|
||||
{
|
||||
m_versionLists[name] = vlist;
|
||||
}
|
||||
|
||||
|
||||
void Env::initHttpMetaCache(QString rootPath, QString staticDataPath)
|
||||
{
|
||||
@ -121,3 +209,5 @@ void Env::updateProxySettings(QString proxyTypeStr, QString addr, int port, QStr
|
||||
.arg(proxy.password());
|
||||
QLOG_INFO() << proxyDesc;
|
||||
}
|
||||
|
||||
#include "Env.moc"
|
11
logic/Env.h
11
logic/Env.h
@ -2,10 +2,13 @@
|
||||
|
||||
#include <memory>
|
||||
#include <QString>
|
||||
#include <QMap>
|
||||
|
||||
class IconList;
|
||||
class QNetworkAccessManager;
|
||||
class HttpMetaCache;
|
||||
class BaseVersionList;
|
||||
class BaseVersion;
|
||||
|
||||
#if defined(ENV)
|
||||
#undef ENV
|
||||
@ -35,8 +38,16 @@ public:
|
||||
/// Updates the application proxy settings from the settings object.
|
||||
void updateProxySettings(QString proxyTypeStr, QString addr, int port, QString user, QString password);
|
||||
|
||||
/// get a version list by name
|
||||
std::shared_ptr<BaseVersionList> getVersionList(QString component);
|
||||
|
||||
/// get a version by list name and version name
|
||||
std::shared_ptr<BaseVersion> getVersion(QString component, QString version);
|
||||
|
||||
void registerVersionList(QString name, std::shared_ptr<BaseVersionList> vlist);
|
||||
protected:
|
||||
std::shared_ptr<QNetworkAccessManager> m_qnam;
|
||||
std::shared_ptr<HttpMetaCache> m_metacache;
|
||||
std::shared_ptr<IconList> m_icons;
|
||||
QMap<QString, std::shared_ptr<BaseVersionList>> m_versionLists;
|
||||
};
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include <QRegularExpression>
|
||||
#include <pathutils.h>
|
||||
|
||||
#include "MultiMC.h"
|
||||
#include "logic/InstanceList.h"
|
||||
#include "logic/icons/IconList.h"
|
||||
#include "logic/minecraft/MinecraftVersionList.h"
|
||||
@ -309,7 +308,7 @@ InstanceList::InstListError InstanceList::loadList()
|
||||
}
|
||||
|
||||
// FIXME: generalize
|
||||
FTBPlugin::loadInstances(groupMap, tempList);
|
||||
FTBPlugin::loadInstances(m_globalSettings, groupMap, tempList);
|
||||
|
||||
beginResetModel();
|
||||
m_instances.clear();
|
||||
|
@ -20,8 +20,6 @@
|
||||
#include <pathutils.h>
|
||||
#include <cmdutils.h>
|
||||
|
||||
#include "MultiMC.h"
|
||||
|
||||
#include "LegacyInstance.h"
|
||||
|
||||
#include "logic/LegacyUpdate.h"
|
||||
@ -38,6 +36,7 @@
|
||||
LegacyInstance::LegacyInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir)
|
||||
: MinecraftInstance(globalSettings, settings, rootDir)
|
||||
{
|
||||
m_lwjglFolderSetting = globalSettings->getSetting("LWJGLDir");
|
||||
settings->registerSetting("NeedsRebuild", true);
|
||||
settings->registerSetting("ShouldUpdate", false);
|
||||
settings->registerSetting("JarVersion", "Unknown");
|
||||
@ -142,7 +141,7 @@ BaseProcess *LegacyInstance::prepareForLaunch(AuthSessionPtr account)
|
||||
.arg(settings().get("MinecraftWinWidth").toInt())
|
||||
.arg(settings().get("MinecraftWinHeight").toInt());
|
||||
|
||||
QString lwjgl = QDir(MMC->settings()->get("LWJGLDir").toString() + "/" + lwjglVersion())
|
||||
QString lwjgl = QDir(m_lwjglFolderSetting->get().toString() + "/" + lwjglVersion())
|
||||
.absolutePath();
|
||||
launchScript += "userName " + account->player_name + "\n";
|
||||
launchScript += "sessionId " + account->session + "\n";
|
||||
@ -340,3 +339,8 @@ QString LegacyInstance::getStatusbarDescription()
|
||||
}
|
||||
return tr("Legacy : %1").arg(intendedVersionId());
|
||||
}
|
||||
|
||||
QString LegacyInstance::lwjglFolder() const
|
||||
{
|
||||
return m_lwjglFolderSetting->get().toString();
|
||||
}
|
||||
|
@ -91,6 +91,10 @@ public:
|
||||
|
||||
//! The version of LWJGL that this instance uses.
|
||||
QString lwjglVersion() const;
|
||||
|
||||
//! Where the lwjgl versions foor this instance can be found... HACK HACK HACK
|
||||
QString lwjglFolder() const;
|
||||
|
||||
/// st the version of LWJGL libs this instance will use
|
||||
void setLWJGLVersion(QString val);
|
||||
|
||||
@ -116,7 +120,7 @@ protected:
|
||||
mutable std::shared_ptr<ModList> core_mod_list;
|
||||
mutable std::shared_ptr<ModList> loader_mod_list;
|
||||
mutable std::shared_ptr<ModList> texture_pack_list;
|
||||
|
||||
std::shared_ptr<Setting> m_lwjglFolderSetting;
|
||||
protected
|
||||
slots:
|
||||
virtual void jarModsChanged();
|
||||
|
@ -31,7 +31,6 @@
|
||||
#include "logger/QsLog.h"
|
||||
#include "logic/net/URLConstants.h"
|
||||
#include "JarUtils.h"
|
||||
#include "MultiMC.h"
|
||||
|
||||
LegacyUpdate::LegacyUpdate(BaseInstance *inst, QObject *parent) : Task(parent), m_inst(inst)
|
||||
{
|
||||
@ -168,7 +167,7 @@ void LegacyUpdate::lwjglStart()
|
||||
LegacyInstance *inst = (LegacyInstance *)m_inst;
|
||||
|
||||
lwjglVersion = inst->lwjglVersion();
|
||||
lwjglTargetPath = PathCombine(MMC->settings()->get("LWJGLDir").toString(), lwjglVersion);
|
||||
lwjglTargetPath = PathCombine(inst->lwjglFolder(), lwjglVersion);
|
||||
lwjglNativesPath = PathCombine(lwjglTargetPath, "natives");
|
||||
|
||||
// if the 'done' file exists, we don't have to download this again
|
||||
@ -179,7 +178,7 @@ void LegacyUpdate::lwjglStart()
|
||||
return;
|
||||
}
|
||||
|
||||
auto list = MMC->lwjgllist();
|
||||
auto list = std::dynamic_pointer_cast<LWJGLVersionList>(ENV.getVersionList("org.lwjgl.legacy"));
|
||||
if (!list->isLoaded())
|
||||
{
|
||||
emitFailed("Too soon! Let the LWJGL list load :)");
|
||||
@ -187,7 +186,7 @@ void LegacyUpdate::lwjglStart()
|
||||
}
|
||||
|
||||
setStatus(tr("Downloading new LWJGL..."));
|
||||
auto version = list->getVersion(lwjglVersion);
|
||||
auto version = std::dynamic_pointer_cast<LWJGLVersion>(list->findVersion(lwjglVersion));
|
||||
if (!version)
|
||||
{
|
||||
emitFailed("Game update failed: the selected LWJGL version is invalid.");
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
#define RSS_URL "http://sourceforge.net/projects/java-game-lib/rss"
|
||||
|
||||
LWJGLVersionList::LWJGLVersionList(QObject *parent) : QAbstractListModel(parent)
|
||||
LWJGLVersionList::LWJGLVersionList(QObject *parent) : BaseVersionList(parent)
|
||||
{
|
||||
setLoading(false);
|
||||
}
|
||||
@ -37,7 +37,7 @@ QVariant LWJGLVersionList::data(const QModelIndex &index, int role) const
|
||||
if (index.row() > count())
|
||||
return QVariant();
|
||||
|
||||
const PtrLWJGLVersion version = at(index.row());
|
||||
const PtrLWJGLVersion version = m_vlist.at(index.row());
|
||||
|
||||
switch (role)
|
||||
{
|
||||
@ -151,7 +151,7 @@ void LWJGLVersionList::netRequestComplete()
|
||||
continue;
|
||||
}
|
||||
QLOG_INFO() << "Discovered LWGL version" << name << "at" << link;
|
||||
tempList.append(LWJGLVersion::Create(name, link));
|
||||
tempList.append(std::make_shared<LWJGLVersion>(name, link));
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,17 +171,6 @@ void LWJGLVersionList::netRequestComplete()
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
const PtrLWJGLVersion LWJGLVersionList::getVersion(const QString &versionName)
|
||||
{
|
||||
for (int i = 0; i < count(); i++)
|
||||
{
|
||||
QString name = at(i)->name();
|
||||
if (name == versionName)
|
||||
return at(i);
|
||||
}
|
||||
return PtrLWJGLVersion();
|
||||
}
|
||||
|
||||
void LWJGLVersionList::failed(QString msg)
|
||||
{
|
||||
QLOG_ERROR() << msg;
|
||||
|
@ -21,32 +21,35 @@
|
||||
#include <QNetworkReply>
|
||||
|
||||
#include <memory>
|
||||
#include "BaseVersion.h"
|
||||
#include "BaseVersionList.h"
|
||||
|
||||
class LWJGLVersion;
|
||||
typedef std::shared_ptr<LWJGLVersion> PtrLWJGLVersion;
|
||||
|
||||
class LWJGLVersion : public QObject
|
||||
class LWJGLVersion : public BaseVersion
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
LWJGLVersion(const QString &name, const QString &url, QObject *parent = 0)
|
||||
: QObject(parent), m_name(name), m_url(url)
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
static PtrLWJGLVersion Create(const QString &name, const QString &url, QObject *parent = 0)
|
||||
LWJGLVersion(const QString &name, const QString &url)
|
||||
: m_name(name), m_url(url)
|
||||
{
|
||||
return PtrLWJGLVersion(new LWJGLVersion(name, url, parent));
|
||||
}
|
||||
;
|
||||
|
||||
QString name() const
|
||||
virtual QString descriptor()
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
virtual QString name()
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
virtual QString typeString() const
|
||||
{
|
||||
return QObject::tr("Upstream");
|
||||
}
|
||||
|
||||
QString url() const
|
||||
{
|
||||
return m_url;
|
||||
@ -57,7 +60,7 @@ protected:
|
||||
QString m_url;
|
||||
};
|
||||
|
||||
class LWJGLVersionList : public QAbstractListModel
|
||||
class LWJGLVersionList : public BaseVersionList
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
@ -67,17 +70,20 @@ public:
|
||||
{
|
||||
return m_vlist.length() > 0;
|
||||
}
|
||||
virtual const BaseVersionPtr at(int i) const override
|
||||
{
|
||||
return m_vlist[i];
|
||||
}
|
||||
|
||||
const PtrLWJGLVersion getVersion(const QString &versionName);
|
||||
PtrLWJGLVersion at(int index)
|
||||
virtual Task* getLoadTask()
|
||||
{
|
||||
return m_vlist[index];
|
||||
}
|
||||
const PtrLWJGLVersion at(int index) const
|
||||
{
|
||||
return m_vlist[index];
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual void sort() {};
|
||||
|
||||
virtual void updateListData(QList< BaseVersionPtr > versions) {};
|
||||
|
||||
int count() const
|
||||
{
|
||||
return m_vlist.length();
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include <QIcon>
|
||||
#include <pathutils.h>
|
||||
#include "logger/QsLog.h"
|
||||
#include "MultiMC.h"
|
||||
#include "MMCError.h"
|
||||
|
||||
#include "logic/OneSixInstance.h"
|
||||
|
@ -13,7 +13,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "MultiMC.h"
|
||||
#include "logic/Env.h"
|
||||
#include "OneSixUpdate.h"
|
||||
|
||||
@ -52,7 +51,7 @@ void OneSixUpdate::executeTask()
|
||||
|
||||
// Get a pointer to the version object that corresponds to the instance's version.
|
||||
targetVersion = std::dynamic_pointer_cast<MinecraftVersion>(
|
||||
MMC->minecraftlist()->findVersion(m_inst->intendedVersionId()));
|
||||
ENV.getVersion("net.minecraft", m_inst->intendedVersionId()));
|
||||
if (targetVersion == nullptr)
|
||||
{
|
||||
// don't do anything if it was invalid
|
||||
@ -65,7 +64,7 @@ void OneSixUpdate::executeTask()
|
||||
jarlibStart();
|
||||
return;
|
||||
}
|
||||
versionUpdateTask = MMC->minecraftlist()->createUpdateTask(m_inst->intendedVersionId());
|
||||
versionUpdateTask = std::dynamic_pointer_cast<MinecraftVersionList>(ENV.getVersionList("net.minecraft"))->createUpdateTask(m_inst->intendedVersionId());
|
||||
if (!versionUpdateTask)
|
||||
{
|
||||
QLOG_DEBUG() << "Didn't spawn an update task.";
|
||||
@ -443,3 +442,4 @@ void OneSixUpdate::fmllibsFailed()
|
||||
emitFailed("Game update failed: it was impossible to fetch the required FML libraries.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include <logic/InstanceList.h>
|
||||
#include <logic/minecraft/MinecraftVersionList.h>
|
||||
#include <logic/settings/INISettingsObject.h>
|
||||
#include "MultiMC.h"
|
||||
#include <pathutils.h>
|
||||
#include "QDebug"
|
||||
#include <QXmlStreamReader>
|
||||
@ -33,11 +32,11 @@ inline uint qHash(FTBRecord record)
|
||||
return qHash(record.instanceDir);
|
||||
}
|
||||
|
||||
QSet<FTBRecord> discoverFTBInstances()
|
||||
QSet<FTBRecord> discoverFTBInstances(SettingsObjectPtr globalSettings)
|
||||
{
|
||||
QSet<FTBRecord> records;
|
||||
QDir dir = QDir(MMC->settings()->get("FTBLauncherDataRoot").toString());
|
||||
QDir dataDir = QDir(MMC->settings()->get("FTBRoot").toString());
|
||||
QDir dir = QDir(globalSettings->get("FTBLauncherDataRoot").toString());
|
||||
QDir dataDir = QDir(globalSettings->get("FTBRoot").toString());
|
||||
if (!dataDir.exists())
|
||||
{
|
||||
qDebug() << "The FTB directory specified does not exist. Please check your settings";
|
||||
@ -131,7 +130,7 @@ QSet<FTBRecord> discoverFTBInstances()
|
||||
return records;
|
||||
}
|
||||
|
||||
InstancePtr loadInstance(const QString &instDir)
|
||||
InstancePtr loadInstance(SettingsObjectPtr globalSettings, const QString &instDir)
|
||||
{
|
||||
auto m_settings = std::make_shared<INISettingsObject>(PathCombine(instDir, "instance.cfg"));
|
||||
|
||||
@ -143,17 +142,17 @@ InstancePtr loadInstance(const QString &instDir)
|
||||
|
||||
if (inst_type == "LegacyFTB")
|
||||
{
|
||||
inst.reset(new LegacyFTBInstance(MMC->settings(), m_settings, instDir));
|
||||
inst.reset(new LegacyFTBInstance(globalSettings, m_settings, instDir));
|
||||
}
|
||||
else if (inst_type == "OneSixFTB")
|
||||
{
|
||||
inst.reset(new OneSixFTBInstance(MMC->settings(), m_settings, instDir));
|
||||
inst.reset(new OneSixFTBInstance(globalSettings, m_settings, instDir));
|
||||
}
|
||||
inst->init();
|
||||
return inst;
|
||||
}
|
||||
|
||||
InstancePtr createInstance(MinecraftVersionPtr version, const QString &instDir)
|
||||
InstancePtr createInstance(SettingsObjectPtr globalSettings, MinecraftVersionPtr version, const QString &instDir)
|
||||
{
|
||||
QDir rootDir(instDir);
|
||||
|
||||
@ -178,28 +177,28 @@ InstancePtr createInstance(MinecraftVersionPtr version, const QString &instDir)
|
||||
if (version->usesLegacyLauncher())
|
||||
{
|
||||
m_settings->set("InstanceType", "LegacyFTB");
|
||||
inst.reset(new LegacyFTBInstance(MMC->settings(),m_settings, instDir));
|
||||
inst.reset(new LegacyFTBInstance(globalSettings, m_settings, instDir));
|
||||
inst->setIntendedVersionId(version->descriptor());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_settings->set("InstanceType", "OneSixFTB");
|
||||
inst.reset(new OneSixFTBInstance(MMC->settings(),m_settings, instDir));
|
||||
inst.reset(new OneSixFTBInstance(globalSettings, m_settings, instDir));
|
||||
inst->setIntendedVersionId(version->descriptor());
|
||||
inst->init();
|
||||
}
|
||||
return inst;
|
||||
}
|
||||
|
||||
void FTBPlugin::loadInstances(QMap<QString, QString> &groupMap, QList<InstancePtr> &tempList)
|
||||
void FTBPlugin::loadInstances(SettingsObjectPtr globalSettings, QMap<QString, QString> &groupMap, QList<InstancePtr> &tempList)
|
||||
{
|
||||
// nothing to load when we don't have
|
||||
if (MMC->settings()->get("TrackFTBInstances").toBool() != true)
|
||||
if (globalSettings->get("TrackFTBInstances").toBool() != true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
auto records = discoverFTBInstances();
|
||||
auto records = discoverFTBInstances(globalSettings);
|
||||
if (!records.size())
|
||||
{
|
||||
qDebug() << "No FTB instances to load.";
|
||||
@ -218,7 +217,7 @@ void FTBPlugin::loadInstances(QMap<QString, QString> &groupMap, QList<InstancePt
|
||||
if (!QFileInfo(PathCombine(record.instanceDir, "instance.cfg")).exists())
|
||||
{
|
||||
qDebug() << "Converting " << record.name << " as new.";
|
||||
auto mcVersion = std::dynamic_pointer_cast<MinecraftVersion>(MMC->minecraftlist()->findVersion(record.mcVersion));
|
||||
auto mcVersion = std::dynamic_pointer_cast<MinecraftVersion>(ENV.getVersion("net.minecraft", record.mcVersion));
|
||||
if (!mcVersion)
|
||||
{
|
||||
qCritical() << "Can't load instance " << record.instanceDir
|
||||
@ -227,7 +226,7 @@ void FTBPlugin::loadInstances(QMap<QString, QString> &groupMap, QList<InstancePt
|
||||
continue;
|
||||
}
|
||||
|
||||
auto instPtr = createInstance(mcVersion, record.instanceDir);
|
||||
auto instPtr = createInstance(globalSettings, mcVersion, record.instanceDir);
|
||||
if (!instPtr)
|
||||
{
|
||||
continue;
|
||||
@ -245,7 +244,7 @@ void FTBPlugin::loadInstances(QMap<QString, QString> &groupMap, QList<InstancePt
|
||||
else
|
||||
{
|
||||
qDebug() << "Loading existing " << record.name;
|
||||
auto instPtr = loadInstance(record.instanceDir);
|
||||
auto instPtr = loadInstance(globalSettings, record.instanceDir);
|
||||
if (!instPtr)
|
||||
{
|
||||
continue;
|
||||
@ -270,11 +269,10 @@ void FTBPlugin::loadInstances(QMap<QString, QString> &groupMap, QList<InstancePt
|
||||
static const int APPDATA_BUFFER_SIZE = 1024;
|
||||
#endif
|
||||
|
||||
void FTBPlugin::initialize()
|
||||
void FTBPlugin::initialize(SettingsObjectPtr globalSettings)
|
||||
{
|
||||
auto m_settings = MMC->settings();
|
||||
// FTB
|
||||
m_settings->registerSetting("TrackFTBInstances", false);
|
||||
globalSettings->registerSetting("TrackFTBInstances", false);
|
||||
QString ftbDataDefault;
|
||||
#ifdef Q_OS_LINUX
|
||||
QString ftbDefault = ftbDataDefault = QDir::home().absoluteFilePath(".ftblauncher");
|
||||
@ -315,16 +313,16 @@ void FTBPlugin::initialize()
|
||||
QString ftbDefault = ftbDataDefault =
|
||||
PathCombine(QDir::homePath(), "Library/Application Support/ftblauncher");
|
||||
#endif
|
||||
m_settings->registerSetting("FTBLauncherDataRoot", ftbDataDefault);
|
||||
m_settings->registerSetting("FTBLauncherRoot", ftbDefault);
|
||||
qDebug() << "FTB Launcher paths:" << m_settings->get("FTBLauncherDataRoot").toString()
|
||||
<< "and" << m_settings->get("FTBLauncherRoot").toString();
|
||||
globalSettings->registerSetting("FTBLauncherDataRoot", ftbDataDefault);
|
||||
globalSettings->registerSetting("FTBLauncherRoot", ftbDefault);
|
||||
qDebug() << "FTB Launcher paths:" << globalSettings->get("FTBLauncherDataRoot").toString()
|
||||
<< "and" << globalSettings->get("FTBLauncherRoot").toString();
|
||||
|
||||
m_settings->registerSetting("FTBRoot");
|
||||
if (m_settings->get("FTBRoot").isNull())
|
||||
globalSettings->registerSetting("FTBRoot");
|
||||
if (globalSettings->get("FTBRoot").isNull())
|
||||
{
|
||||
QString ftbRoot;
|
||||
QFile f(QDir(m_settings->get("FTBLauncherRoot").toString())
|
||||
QFile f(QDir(globalSettings->get("FTBLauncherRoot").toString())
|
||||
.absoluteFilePath("ftblaunch.cfg"));
|
||||
qDebug() << "Attempting to read" << f.fileName();
|
||||
if (f.open(QFile::ReadOnly))
|
||||
@ -348,7 +346,7 @@ void FTBPlugin::initialize()
|
||||
else
|
||||
{
|
||||
qDebug() << "FTB is installed at" << ftbRoot;
|
||||
m_settings->set("FTBRoot", ftbRoot);
|
||||
globalSettings->set("FTBRoot", ftbRoot);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -6,6 +6,6 @@
|
||||
class FTBPlugin
|
||||
{
|
||||
public:
|
||||
static void initialize();
|
||||
static void loadInstances(QMap<QString, QString> &groupMap, QList<InstancePtr> &tempList);
|
||||
static void initialize(SettingsObjectPtr globalSettings);
|
||||
static void loadInstances(SettingsObjectPtr globalSettings, QMap<QString, QString> &groupMap, QList<InstancePtr> &tempList);
|
||||
};
|
||||
|
@ -3,8 +3,6 @@
|
||||
#include "logic/ftb/OneSixFTBInstance.h"
|
||||
#include "logic/minecraft/MinecraftVersionList.h"
|
||||
|
||||
#include "MultiMC.h"
|
||||
|
||||
#include <pathutils.h>
|
||||
#include <QDir>
|
||||
#include <QUuid>
|
||||
|
@ -8,12 +8,12 @@
|
||||
#include "logic/forge/ForgeInstaller.h"
|
||||
#include "logic/forge/ForgeVersionList.h"
|
||||
#include <logic/settings/INISettingsObject.h>
|
||||
#include "MultiMC.h"
|
||||
#include "pathutils.h"
|
||||
|
||||
OneSixFTBInstance::OneSixFTBInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir) :
|
||||
OneSixInstance(globalSettings, settings, rootDir)
|
||||
{
|
||||
m_globalSettings = globalSettings;
|
||||
}
|
||||
|
||||
void OneSixFTBInstance::copy(const QDir &newDir)
|
||||
@ -108,12 +108,12 @@ QString OneSixFTBInstance::id() const
|
||||
|
||||
QDir OneSixFTBInstance::librariesPath() const
|
||||
{
|
||||
return QDir(MMC->settings()->get("FTBRoot").toString() + "/libraries");
|
||||
return QDir(m_globalSettings->get("FTBRoot").toString() + "/libraries");
|
||||
}
|
||||
|
||||
QDir OneSixFTBInstance::versionsPath() const
|
||||
{
|
||||
return QDir(MMC->settings()->get("FTBRoot").toString() + "/versions");
|
||||
return QDir(m_globalSettings->get("FTBRoot").toString() + "/versions");
|
||||
}
|
||||
|
||||
bool OneSixFTBInstance::providesVersionFile() const
|
||||
|
@ -24,4 +24,6 @@ public:
|
||||
QDir librariesPath() const override;
|
||||
QDir versionsPath() const override;
|
||||
bool providesVersionFile() const override;
|
||||
private:
|
||||
SettingsObjectPtr m_globalSettings;
|
||||
};
|
||||
|
@ -1,10 +1,11 @@
|
||||
#include "JavaChecker.h"
|
||||
#include "MultiMC.h"
|
||||
#include <pathutils.h>
|
||||
#include <QFile>
|
||||
#include <QProcess>
|
||||
#include <QMap>
|
||||
#include <QTemporaryFile>
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
|
||||
JavaChecker::JavaChecker(QObject *parent) : QObject(parent)
|
||||
{
|
||||
@ -20,9 +21,9 @@ void JavaChecker::performCheck()
|
||||
process->setArguments(args);
|
||||
process->setProgram(path);
|
||||
process->setProcessChannelMode(QProcess::SeparateChannels);
|
||||
QLOG_DEBUG() << "Running java checker!";
|
||||
QLOG_DEBUG() << "Java: " + path;
|
||||
QLOG_DEBUG() << "Args: {" + args.join("|") + "}";
|
||||
qDebug() << "Running java checker!";
|
||||
qDebug() << "Java: " + path;
|
||||
qDebug() << "Args: {" + args.join("|") + "}";
|
||||
|
||||
connect(process.get(), SIGNAL(finished(int, QProcess::ExitStatus)), this,
|
||||
SLOT(finished(int, QProcess::ExitStatus)));
|
||||
@ -45,18 +46,18 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
|
||||
result.path = path;
|
||||
result.id = id;
|
||||
}
|
||||
QLOG_DEBUG() << "Java checker finished with status " << status << " exit code " << exitcode;
|
||||
qDebug() << "Java checker finished with status " << status << " exit code " << exitcode;
|
||||
|
||||
if (status == QProcess::CrashExit || exitcode == 1)
|
||||
{
|
||||
QLOG_DEBUG() << "Java checker failed!";
|
||||
qDebug() << "Java checker failed!";
|
||||
emit checkFinished(result);
|
||||
return;
|
||||
}
|
||||
|
||||
bool success = true;
|
||||
QString p_stdout = _process->readAllStandardOutput();
|
||||
QLOG_DEBUG() << p_stdout;
|
||||
qDebug() << p_stdout;
|
||||
|
||||
QMap<QString, QString> results;
|
||||
QStringList lines = p_stdout.split("\n", QString::SkipEmptyParts);
|
||||
@ -77,7 +78,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
|
||||
|
||||
if(!results.contains("os.arch") || !results.contains("java.version") || !success)
|
||||
{
|
||||
QLOG_DEBUG() << "Java checker failed - couldn't extract required information.";
|
||||
qDebug() << "Java checker failed - couldn't extract required information.";
|
||||
emit checkFinished(result);
|
||||
return;
|
||||
}
|
||||
@ -92,7 +93,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
|
||||
result.mojangPlatform = is_64 ? "64" : "32";
|
||||
result.realPlatform = os_arch;
|
||||
result.javaVersion = java_version;
|
||||
QLOG_DEBUG() << "Java checker succeeded.";
|
||||
qDebug() << "Java checker succeeded.";
|
||||
emit checkFinished(result);
|
||||
}
|
||||
|
||||
@ -101,7 +102,7 @@ void JavaChecker::error(QProcess::ProcessError err)
|
||||
if(err == QProcess::FailedToStart)
|
||||
{
|
||||
killTimer.stop();
|
||||
QLOG_DEBUG() << "Java checker has failed to start.";
|
||||
qDebug() << "Java checker has failed to start.";
|
||||
JavaCheckResult result;
|
||||
{
|
||||
result.path = path;
|
||||
@ -118,7 +119,7 @@ void JavaChecker::timeout()
|
||||
// NO MERCY. NO ABUSE.
|
||||
if(process)
|
||||
{
|
||||
QLOG_DEBUG() << "Java checker has been killed by timeout.";
|
||||
qDebug() << "Java checker has been killed by timeout.";
|
||||
process->kill();
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
#include "JavaCheckerJob.h"
|
||||
#include "pathutils.h"
|
||||
#include "MultiMC.h"
|
||||
|
||||
#include "logger/QsLog.h"
|
||||
|
||||
|
@ -21,8 +21,6 @@
|
||||
#include <logic/settings/Setting.h>
|
||||
#include <pathutils.h>
|
||||
|
||||
#include "MultiMC.h"
|
||||
|
||||
#include "logger/QsLog.h"
|
||||
#include "logic/java/JavaUtils.h"
|
||||
#include "logic/java/JavaCheckerJob.h"
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include <QtXml>
|
||||
#include <QRegExp>
|
||||
|
||||
#include "MultiMC.h"
|
||||
#include "logger/QsLog.h"
|
||||
|
||||
#include "logic/java/JavaVersionList.h"
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "logic/minecraft/MinecraftProfile.h"
|
||||
#include "logic/minecraft/OneSixLibrary.h"
|
||||
#include "logic/OneSixInstance.h"
|
||||
#include "MultiMC.h"
|
||||
#include "logic/liteloader/LiteLoaderVersionList.h"
|
||||
|
||||
LiteLoaderInstaller::LiteLoaderInstaller() : BaseInstaller()
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "MinecraftInstance.h"
|
||||
#include "MultiMC.h"
|
||||
#include "logic/settings/SettingsObject.h"
|
||||
#include <pathutils.h>
|
||||
#include "logic/Env.h"
|
||||
#include "logic/minecraft/MinecraftVersionList.h"
|
||||
|
||||
MinecraftInstance::MinecraftInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr settings, const QString &rootDir)
|
||||
@ -51,6 +51,5 @@ QString MinecraftInstance::minecraftRoot() const
|
||||
|
||||
std::shared_ptr< BaseVersionList > MinecraftInstance::versionList() const
|
||||
{
|
||||
return std::dynamic_pointer_cast<BaseVersionList>(MMC->minecraftlist());
|
||||
return ENV.getVersionList("net.minecraft");
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include "MultiMC.h"
|
||||
#include "BuildConfig.h"
|
||||
|
||||
#include "logic/minecraft/MinecraftProcess.h"
|
||||
@ -26,6 +25,7 @@
|
||||
#include <QProcessEnvironment>
|
||||
#include <QRegularExpression>
|
||||
#include <QStandardPaths>
|
||||
#include <QCoreApplication>
|
||||
|
||||
#include "osutils.h"
|
||||
#include "pathutils.h"
|
||||
|
@ -3,7 +3,6 @@
|
||||
#include "VersionBuildError.h"
|
||||
#include "VersionBuilder.h"
|
||||
#include "ProfileUtils.h"
|
||||
#include "MultiMC.h"
|
||||
#include "logic/settings/SettingsObject.h"
|
||||
|
||||
bool MinecraftVersion::usesLegacyLauncher()
|
||||
|
@ -2,8 +2,7 @@
|
||||
#include "logic/minecraft/VersionBuildError.h"
|
||||
#include "logic/OneSixInstance.h"
|
||||
#include "logic/minecraft/MinecraftVersionList.h"
|
||||
|
||||
#include "MultiMC.h"
|
||||
#include "logic/Env.h"
|
||||
|
||||
#include <pathutils.h>
|
||||
#include <QDir>
|
||||
@ -73,8 +72,7 @@ void OneSixProfileStrategy::loadDefaultBuiltinPatches()
|
||||
}
|
||||
else
|
||||
{
|
||||
auto minecraftList = MMC->minecraftlist();
|
||||
auto mcversion = minecraftList->findVersion(m_instance->intendedVersionId());
|
||||
auto mcversion = ENV.getVersion("net.minecraft", m_instance->intendedVersionId());
|
||||
minecraftPatch = std::dynamic_pointer_cast<ProfilePatch>(mcversion);
|
||||
}
|
||||
if (!minecraftPatch)
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
#include "NetJob.h"
|
||||
#include "pathutils.h"
|
||||
#include "MultiMC.h"
|
||||
#include "MD5EtagDownload.h"
|
||||
#include "ByteArrayDownload.h"
|
||||
#include "CacheDownload.h"
|
||||
|
Loading…
Reference in New Issue
Block a user