Basic 1.6 mod management (no jar mods)
This commit is contained in:
@ -87,6 +87,11 @@ MinecraftProcess* LegacyInstance::prepareForLaunch(QString user, QString session
|
||||
return proc;
|
||||
}
|
||||
|
||||
void LegacyInstance::cleanupAfterRun()
|
||||
{
|
||||
//FIXME: delete the launcher and icons and whatnot.
|
||||
}
|
||||
|
||||
QSharedPointer< ModList > LegacyInstance::coreModList()
|
||||
{
|
||||
I_D(LegacyInstance);
|
||||
@ -136,7 +141,7 @@ QSharedPointer< ModList > LegacyInstance::texturePackList()
|
||||
I_D(LegacyInstance);
|
||||
if(!d->texture_pack_list)
|
||||
{
|
||||
d->texture_pack_list.reset(new ModList(texturePackDir()));
|
||||
d->texture_pack_list.reset(new ModList(texturePacksDir()));
|
||||
}
|
||||
else
|
||||
d->texture_pack_list->update();
|
||||
@ -150,12 +155,6 @@ QDialog * LegacyInstance::createModEditDialog ( QWidget* parent )
|
||||
}
|
||||
|
||||
|
||||
void LegacyInstance::cleanupAfterRun()
|
||||
{
|
||||
//FIXME: delete the launcher and icons and whatnot.
|
||||
}
|
||||
|
||||
|
||||
QString LegacyInstance::jarModsDir() const
|
||||
{
|
||||
return PathCombine(instanceRoot(), "instMods");
|
||||
@ -185,7 +184,7 @@ QString LegacyInstance::resourceDir() const
|
||||
{
|
||||
return PathCombine(minecraftRoot(), "resources");
|
||||
}
|
||||
QString LegacyInstance::texturePackDir() const
|
||||
QString LegacyInstance::texturePacksDir() const
|
||||
{
|
||||
return PathCombine(minecraftRoot(), "texturepacks");
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ public:
|
||||
|
||||
////// Directories //////
|
||||
QString savesDir() const;
|
||||
QString texturePackDir() const;
|
||||
QString texturePacksDir() const;
|
||||
QString jarModsDir() const;
|
||||
QString binDir() const;
|
||||
QString loaderModsDir() const;
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <pathutils.h>
|
||||
#include <cmdutils.h>
|
||||
#include <JlCompress.h>
|
||||
#include <gui/OneSixModEditDialog.h>
|
||||
|
||||
OneSixInstance::OneSixInstance ( const QString& rootDir, SettingsObject* setting_obj, QObject* parent )
|
||||
: BaseInstance ( new OneSixInstancePrivate(), rootDir, setting_obj, parent )
|
||||
@ -155,12 +156,35 @@ void OneSixInstance::cleanupAfterRun()
|
||||
dir.removeRecursively();
|
||||
}
|
||||
|
||||
QDialog * OneSixInstance::createModEditDialog ( QWidget* parent )
|
||||
QSharedPointer< ModList > OneSixInstance::loaderModList()
|
||||
{
|
||||
return nullptr;
|
||||
I_D(OneSixInstance);
|
||||
if(!d->loader_mod_list)
|
||||
{
|
||||
d->loader_mod_list.reset(new ModList(loaderModsDir()));
|
||||
}
|
||||
else
|
||||
d->loader_mod_list->update();
|
||||
return d->loader_mod_list;
|
||||
}
|
||||
|
||||
QSharedPointer< ModList > OneSixInstance::resourcePackList()
|
||||
{
|
||||
I_D(OneSixInstance);
|
||||
if(!d->resource_pack_list)
|
||||
{
|
||||
d->resource_pack_list.reset(new ModList(resourcePacksDir()));
|
||||
}
|
||||
else
|
||||
d->resource_pack_list->update();
|
||||
return d->resource_pack_list;
|
||||
}
|
||||
|
||||
|
||||
QDialog * OneSixInstance::createModEditDialog ( QWidget* parent )
|
||||
{
|
||||
return new OneSixModEditDialog(this, parent);
|
||||
}
|
||||
|
||||
bool OneSixInstance::setIntendedVersionId ( QString version )
|
||||
{
|
||||
@ -215,7 +239,7 @@ bool OneSixInstance::reloadFullVersion()
|
||||
return false;
|
||||
}
|
||||
|
||||
QSharedPointer< FullVersion > OneSixInstance::getFullVersion()
|
||||
QSharedPointer< OneSixVersion > OneSixInstance::getFullVersion()
|
||||
{
|
||||
I_D(OneSixInstance);
|
||||
return d->version;
|
||||
@ -235,8 +259,6 @@ bool OneSixInstance::menuActionEnabled ( QString action_name ) const
|
||||
{
|
||||
if(action_name == "actionChangeInstLWJGLVersion")
|
||||
return false;
|
||||
if(action_name == "actionEditInstMods")
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -245,6 +267,16 @@ QString OneSixInstance::getStatusbarDescription()
|
||||
return "One Six : " + intendedVersionId();
|
||||
}
|
||||
|
||||
QString OneSixInstance::loaderModsDir() const
|
||||
{
|
||||
return PathCombine(minecraftRoot(), "mods");
|
||||
}
|
||||
|
||||
QString OneSixInstance::resourcePacksDir() const
|
||||
{
|
||||
return PathCombine(minecraftRoot(), "resourcepacks");
|
||||
}
|
||||
|
||||
QString OneSixInstance::instanceConfigFolder() const
|
||||
{
|
||||
return PathCombine(minecraftRoot(), "config");
|
||||
|
@ -2,14 +2,26 @@
|
||||
|
||||
#include "BaseInstance.h"
|
||||
#include <QStringList>
|
||||
class FullVersion;
|
||||
class OneSixVersion;
|
||||
class BaseUpdate;
|
||||
class ModList;
|
||||
|
||||
class OneSixInstance : public BaseInstance
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit OneSixInstance(const QString &rootDir, SettingsObject * settings, QObject *parent = 0);
|
||||
|
||||
|
||||
////// Mod Lists //////
|
||||
QSharedPointer<ModList> loaderModList();
|
||||
QSharedPointer<ModList> resourcePackList();
|
||||
|
||||
////// Directories //////
|
||||
QString resourcePacksDir() const;
|
||||
QString loaderModsDir() const;
|
||||
virtual QString instanceConfigFolder() const;
|
||||
|
||||
virtual BaseUpdate* doUpdate();
|
||||
virtual MinecraftProcess* prepareForLaunch ( QString user, QString session );
|
||||
virtual void cleanupAfterRun();
|
||||
@ -28,15 +40,13 @@ public:
|
||||
/// reload the full version json file. return true on success!
|
||||
bool reloadFullVersion();
|
||||
/// get the current full version info
|
||||
QSharedPointer<FullVersion> getFullVersion();
|
||||
QSharedPointer<OneSixVersion> getFullVersion();
|
||||
|
||||
virtual QString defaultBaseJar() const;
|
||||
virtual QString defaultCustomBaseJar() const;
|
||||
|
||||
virtual bool menuActionEnabled ( QString action_name ) const;
|
||||
virtual QString getStatusbarDescription();
|
||||
virtual QString instanceConfigFolder() const;
|
||||
|
||||
private:
|
||||
QStringList processMinecraftArgs( QString user, QString session );
|
||||
};
|
@ -2,8 +2,11 @@
|
||||
|
||||
#include "BaseInstance_p.h"
|
||||
#include "OneSixVersion.h"
|
||||
#include "ModList.h"
|
||||
|
||||
struct OneSixInstancePrivate: public BaseInstancePrivate
|
||||
{
|
||||
QSharedPointer<FullVersion> version;
|
||||
QSharedPointer<OneSixVersion> version;
|
||||
QSharedPointer<ModList> loader_mod_list;
|
||||
QSharedPointer<ModList> resource_pack_list;
|
||||
};
|
@ -129,7 +129,7 @@ void OneSixUpdate::jarlibStart()
|
||||
return;
|
||||
}
|
||||
|
||||
QSharedPointer<FullVersion> version = inst->getFullVersion();
|
||||
QSharedPointer<OneSixVersion> version = inst->getFullVersion();
|
||||
|
||||
// download the right jar, save it in versions/$version/$version.jar
|
||||
QString urlstr("http://s3.amazonaws.com/Minecraft.Download/versions/");
|
||||
|
@ -103,7 +103,7 @@ QString Library::storagePath()
|
||||
}
|
||||
|
||||
|
||||
QList<QSharedPointer<Library> > FullVersion::getActiveNormalLibs()
|
||||
QList<QSharedPointer<Library> > OneSixVersion::getActiveNormalLibs()
|
||||
{
|
||||
QList<QSharedPointer<Library> > output;
|
||||
for ( auto lib: libraries )
|
||||
@ -116,7 +116,7 @@ QList<QSharedPointer<Library> > FullVersion::getActiveNormalLibs()
|
||||
return output;
|
||||
}
|
||||
|
||||
QList<QSharedPointer<Library> > FullVersion::getActiveNativeLibs()
|
||||
QList<QSharedPointer<Library> > OneSixVersion::getActiveNativeLibs()
|
||||
{
|
||||
QList<QSharedPointer<Library> > output;
|
||||
for ( auto lib: libraries )
|
||||
|
@ -147,7 +147,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
class FullVersion
|
||||
class OneSixVersion
|
||||
{
|
||||
public:
|
||||
/// the ID - determines which jar to use! ACTUALLY IMPORTANT!
|
||||
@ -203,7 +203,7 @@ public:
|
||||
// QList<Rule> rules;
|
||||
|
||||
public:
|
||||
FullVersion()
|
||||
OneSixVersion()
|
||||
{
|
||||
minimumLauncherVersion = 0xDEADBEEF;
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ QList<QSharedPointer<Rule> > FullVersionFactory::parse4rules(QJsonObject & baseO
|
||||
}
|
||||
|
||||
|
||||
QSharedPointer<FullVersion> FullVersionFactory::parse4(QJsonObject root, QSharedPointer<FullVersion> fullVersion)
|
||||
QSharedPointer<OneSixVersion> FullVersionFactory::parse4(QJsonObject root, QSharedPointer<OneSixVersion> fullVersion)
|
||||
{
|
||||
fullVersion->id = root.value("id").toString();
|
||||
|
||||
@ -154,9 +154,9 @@ QSharedPointer<FullVersion> FullVersionFactory::parse4(QJsonObject root, QShared
|
||||
return fullVersion;
|
||||
}
|
||||
|
||||
QSharedPointer<FullVersion> FullVersionFactory::parse(QByteArray data)
|
||||
QSharedPointer<OneSixVersion> FullVersionFactory::parse(QByteArray data)
|
||||
{
|
||||
QSharedPointer<FullVersion> readVersion(new FullVersion());
|
||||
QSharedPointer<OneSixVersion> readVersion(new OneSixVersion());
|
||||
|
||||
QJsonParseError jsonError;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError);
|
||||
@ -165,14 +165,14 @@ QSharedPointer<FullVersion> FullVersionFactory::parse(QByteArray data)
|
||||
{
|
||||
error_string = QString( "Error reading version file :") + " " + jsonError.errorString();
|
||||
m_error = FullVersionFactory::ParseError;
|
||||
return QSharedPointer<FullVersion>();
|
||||
return QSharedPointer<OneSixVersion>();
|
||||
}
|
||||
|
||||
if(!jsonDoc.isObject())
|
||||
{
|
||||
error_string = "Error reading version file.";
|
||||
m_error = FullVersionFactory::ParseError;
|
||||
return QSharedPointer<FullVersion>();
|
||||
return QSharedPointer<OneSixVersion>();
|
||||
}
|
||||
QJsonObject root = jsonDoc.object();
|
||||
|
||||
@ -184,7 +184,7 @@ QSharedPointer<FullVersion> FullVersionFactory::parse(QByteArray data)
|
||||
{
|
||||
error_string = "Version file was for an unrecognized launcher version. RIP";
|
||||
m_error = FullVersionFactory::UnsupportedVersion;
|
||||
return QSharedPointer<FullVersion>();
|
||||
return QSharedPointer<OneSixVersion>();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
#include <QtCore>
|
||||
|
||||
struct FullVersion;
|
||||
struct OneSixVersion;
|
||||
class Rule;
|
||||
|
||||
class FullVersionFactory
|
||||
@ -17,8 +17,8 @@ public:
|
||||
|
||||
public:
|
||||
FullVersionFactory();
|
||||
QSharedPointer<FullVersion> parse(QByteArray data);
|
||||
QSharedPointer<OneSixVersion> parse(QByteArray data);
|
||||
private:
|
||||
QSharedPointer<FullVersion> parse4(QJsonObject root, QSharedPointer<FullVersion> product);
|
||||
QSharedPointer<OneSixVersion> parse4(QJsonObject root, QSharedPointer<OneSixVersion> product);
|
||||
QList<QSharedPointer<Rule> > parse4rules(QJsonObject & baseObj);
|
||||
};
|
Reference in New Issue
Block a user