From 4c3bd416c65ec887209fa06b0a5634099b77f322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 5 May 2014 00:10:59 +0200 Subject: Much change, very jarmod. --- CMakeLists.txt | 10 +- MultiMC.cpp | 12 ++ MultiMC.h | 6 + .../org/multimc/onesix/OneSixLauncher.java | 2 + gui/dialogs/InstanceEditDialog.cpp | 57 ------ logic/BaseInstance.h | 2 +- logic/LegacyUpdate.cpp | 2 +- logic/LegacyUpdate.h | 2 +- logic/OneSixInstance.cpp | 70 +++++-- logic/OneSixInstance.h | 5 +- logic/OneSixUpdate.cpp | 214 ++++++++++++++++++++- logic/OneSixUpdate.h | 11 ++ logic/URNResolver.cpp | 98 ++++++++++ logic/URNResolver.h | 18 ++ logic/VersionFile.cpp | 1 + logic/VersionFilterData.cpp | 64 ++++++ logic/VersionFilterData.h | 23 +++ logic/VersionFinal.cpp | 69 +++++-- logic/VersionFinal.h | 3 + logic/forge/ForgeData.cpp | 62 ------ logic/forge/ForgeData.h | 21 -- logic/forge/ForgeInstaller.cpp | 24 ++- logic/forge/ForgeVersion.cpp | 4 +- logic/forge/ForgeVersionList.cpp | 1 + logic/forge/ForgeVersionList.h | 2 + logic/lists/MinecraftVersionList.cpp | 26 --- logic/lists/MinecraftVersionList.h | 1 - resources/versions/1.0.json | 153 +++++++++++++++ resources/versions/1.1.json | 153 +++++++++++++++ resources/versions/1.2.1.json | 153 +++++++++++++++ resources/versions/1.2.2.json | 153 +++++++++++++++ resources/versions/1.2.3.json | 153 +++++++++++++++ resources/versions/1.2.4.json | 153 +++++++++++++++ resources/versions/1.2.5.json | 153 +++++++++++++++ resources/versions/1.3.1.json | 153 +++++++++++++++ resources/versions/1.3.2.json | 153 +++++++++++++++ resources/versions/1.3.json | 153 +++++++++++++++ resources/versions/1.4.1.json | 153 +++++++++++++++ resources/versions/1.4.2.json | 153 +++++++++++++++ resources/versions/1.4.3.json | 153 +++++++++++++++ resources/versions/1.4.4.json | 153 +++++++++++++++ resources/versions/1.4.5.json | 153 +++++++++++++++ resources/versions/1.4.6.json | 153 +++++++++++++++ resources/versions/1.4.7.json | 153 +++++++++++++++ resources/versions/1.4.json | 153 +++++++++++++++ resources/versions/1.5.1.json | 153 +++++++++++++++ resources/versions/1.5.2.json | 153 +++++++++++++++ resources/versions/1.5.json | 153 +++++++++++++++ 48 files changed, 3808 insertions(+), 215 deletions(-) create mode 100644 logic/URNResolver.cpp create mode 100644 logic/URNResolver.h create mode 100644 logic/VersionFilterData.cpp create mode 100644 logic/VersionFilterData.h delete mode 100644 logic/forge/ForgeData.cpp delete mode 100644 logic/forge/ForgeData.h create mode 100644 resources/versions/1.0.json create mode 100644 resources/versions/1.1.json create mode 100644 resources/versions/1.2.1.json create mode 100644 resources/versions/1.2.2.json create mode 100644 resources/versions/1.2.3.json create mode 100644 resources/versions/1.2.4.json create mode 100644 resources/versions/1.2.5.json create mode 100644 resources/versions/1.3.1.json create mode 100644 resources/versions/1.3.2.json create mode 100644 resources/versions/1.3.json create mode 100644 resources/versions/1.4.1.json create mode 100644 resources/versions/1.4.2.json create mode 100644 resources/versions/1.4.3.json create mode 100644 resources/versions/1.4.4.json create mode 100644 resources/versions/1.4.5.json create mode 100644 resources/versions/1.4.6.json create mode 100644 resources/versions/1.4.7.json create mode 100644 resources/versions/1.4.json create mode 100644 resources/versions/1.5.1.json create mode 100644 resources/versions/1.5.2.json create mode 100644 resources/versions/1.5.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 4617020a..4309c55f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -374,6 +374,10 @@ SET(MULTIMC_SOURCES logic/Mod.cpp logic/ModList.h logic/ModList.cpp + + # sets and maps for deciding based on versions + logic/VersionFilterData.h + logic/VersionFilterData.cpp # Basic instance launcher for starting from terminal logic/InstanceLauncher.h @@ -545,8 +549,6 @@ SET(MULTIMC_SOURCES logic/tools/JVisualVM.cpp # Forge and all things forge related - logic/forge/ForgeData.h - logic/forge/ForgeData.cpp logic/forge/ForgeVersion.h logic/forge/ForgeVersion.cpp logic/forge/ForgeVersionList.h @@ -566,6 +568,10 @@ SET(MULTIMC_SOURCES logic/liteloader/LiteLoaderInstaller.cpp logic/liteloader/LiteLoaderVersionList.h logic/liteloader/LiteLoaderVersionList.cpp + + # MultiMC URN resolver + logic/URNResolver.cpp + logic/URNResolver.h ) diff --git a/MultiMC.cpp b/MultiMC.cpp index 28fe8e26..6b5545c1 100644 --- a/MultiMC.cpp +++ b/MultiMC.cpp @@ -38,6 +38,8 @@ #include "logic/tools/JVisualVM.h" #include "logic/tools/MCEditTool.h" +#include "logic/URNResolver.h" + #include "pathutils.h" #include "cmdutils.h" #include @@ -644,6 +646,16 @@ std::shared_ptr MultiMC::javalist() return m_javalist; } +std::shared_ptr MultiMC::resolver() +{ + if (!m_resolver) + { + m_resolver.reset(new URNResolver()); + } + return m_resolver; +} + + void MultiMC::installUpdates(const QString updateFilesDir, UpdateFlags flags) { // if we are going to update on exit, save the params now diff --git a/MultiMC.h b/MultiMC.h index 0fd60b7d..a80a54c6 100644 --- a/MultiMC.h +++ b/MultiMC.h @@ -23,6 +23,7 @@ class NewsChecker; class StatusChecker; class BaseProfilerFactory; class BaseDetachedToolFactory; +class URNResolver; #if defined(MMC) #undef MMC @@ -128,6 +129,8 @@ public: std::shared_ptr javalist(); + std::shared_ptr resolver(); + QMap> profilers() { return m_profilers; @@ -214,8 +217,11 @@ private: std::shared_ptr m_liteloaderlist; std::shared_ptr m_minecraftlist; std::shared_ptr m_javalist; + std::shared_ptr m_resolver; + QMap> m_profilers; QMap> m_tools; + QsLogging::DestinationPtr m_fileDestination; QsLogging::DestinationPtr m_debugDestination; diff --git a/depends/launcher/org/multimc/onesix/OneSixLauncher.java b/depends/launcher/org/multimc/onesix/OneSixLauncher.java index 28f8e6ee..a908f6f3 100644 --- a/depends/launcher/org/multimc/onesix/OneSixLauncher.java +++ b/depends/launcher/org/multimc/onesix/OneSixLauncher.java @@ -38,6 +38,7 @@ public class OneSixLauncher implements Launcher List extlibs; List mcparams; List mods; + List traits; String mainClass; String natives; final String windowTitle; @@ -49,6 +50,7 @@ public class OneSixLauncher implements Launcher mcparams = params.all("param"); mainClass = params.first("mainClass"); mods = params.allSafe("mods", new ArrayList()); + traits = params.allSafe("traits", new ArrayList()); natives = params.first("natives"); windowTitle = params.first("windowTitle"); diff --git a/gui/dialogs/InstanceEditDialog.cpp b/gui/dialogs/InstanceEditDialog.cpp index fe2d1b03..a74f3dcb 100644 --- a/gui/dialogs/InstanceEditDialog.cpp +++ b/gui/dialogs/InstanceEditDialog.cpp @@ -262,45 +262,6 @@ void InstanceEditDialog::on_moveLibraryDownBtn_clicked() } } -// FIXME: use this for legacy forge... or abstract away. -/* -void LegacyModEditDialog::on_addForgeBtn_clicked() -{ - VersionSelectDialog vselect(MMC->forgelist().get(), tr("Select Forge version"), this); - vselect.setFilter(1, m_inst->intendedVersionId()); - if (vselect.exec() && vselect.selectedVersion()) - { - ForgeVersionPtr forge = - std::dynamic_pointer_cast(vselect.selectedVersion()); - if (!forge) - return; - auto entry = MMC->metacache()->resolveEntry("minecraftforge", forge->filename); - if (entry->stale) - { - NetJob *fjob = new NetJob("Forge download"); - fjob->addNetAction(CacheDownload::make(forge->universal_url, entry)); - ProgressDialog dlg(this); - dlg.exec(fjob); - if (dlg.result() == QDialog::Accepted) - { - m_jarmods->stopWatching(); - m_jarmods->installMod(QFileInfo(entry->getFullPath())); - m_jarmods->startWatching(); - } - else - { - // failed to download forge :/ - } - } - else - { - m_jarmods->stopWatching(); - m_jarmods->installMod(QFileInfo(entry->getFullPath())); - m_jarmods->startWatching(); - } - } -}*/ - void InstanceEditDialog::on_changeMCVersionBtn_clicked() { VersionSelectDialog vselect(m_inst->versionList().get(), tr("Change Minecraft version"), this); @@ -343,24 +304,6 @@ void InstanceEditDialog::on_changeMCVersionBtn_clicked() tDialog.exec(updateTask.get()); } -/* -void MainWindow::on_actionChangeInstLWJGLVersion_triggered() -{ - if (!m_selectedInstance) - return; - - LWJGLSelectDialog lselect(this); - lselect.exec(); - if (lselect.result() == QDialog::Accepted) - { - auto ptr = std::dynamic_pointer_cast(m_selectedInstance); - if(ptr) - ptr->setLWJGLVersion(lselect.selectedVersion()); - } -} -*/ - - void InstanceEditDialog::on_forgeBtn_clicked() { // FIXME: use actual model, not reloading. Move logic to model. diff --git a/logic/BaseInstance.h b/logic/BaseInstance.h index 16791592..41ceda39 100644 --- a/logic/BaseInstance.h +++ b/logic/BaseInstance.h @@ -89,7 +89,7 @@ public: void setGroupInitial(QString val); void setGroupPost(QString val); - QStringList extraArguments() const; + virtual QStringList extraArguments() const; virtual QString intendedVersionId() const = 0; virtual bool setIntendedVersionId(QString version) = 0; diff --git a/logic/LegacyUpdate.cpp b/logic/LegacyUpdate.cpp index 6816df40..aea88c95 100644 --- a/logic/LegacyUpdate.cpp +++ b/logic/LegacyUpdate.cpp @@ -64,7 +64,7 @@ void LegacyUpdate::fmllibsStart() bool forge_present = false; QString version = inst->intendedVersionId(); - auto & fmlLibsMapping = g_forgeData.fmlLibsMapping; + auto & fmlLibsMapping = g_VersionFilterData.fmlLibsMapping; if (!fmlLibsMapping.contains(version)) { lwjglStart(); diff --git a/logic/LegacyUpdate.h b/logic/LegacyUpdate.h index 1550ec34..140ee1e3 100644 --- a/logic/LegacyUpdate.h +++ b/logic/LegacyUpdate.h @@ -21,7 +21,7 @@ #include "logic/net/NetJob.h" #include "logic/tasks/Task.h" -#include "logic/forge/ForgeData.h" +#include "logic/VersionFilterData.h" class MinecraftVersion; class BaseInstance; diff --git a/logic/OneSixInstance.cpp b/logic/OneSixInstance.cpp index dc452188..9057a6e3 100644 --- a/logic/OneSixInstance.cpp +++ b/logic/OneSixInstance.cpp @@ -29,7 +29,8 @@ #include "gui/dialogs/InstanceEditDialog.h" #include -OneSixInstance::OneSixInstance(const QString &rootDir, SettingsObject *settings, QObject *parent) +OneSixInstance::OneSixInstance(const QString &rootDir, SettingsObject *settings, + QObject *parent) : BaseInstance(new OneSixInstancePrivate(), rootDir, settings, parent) { I_D(OneSixInstance); @@ -47,7 +48,7 @@ void OneSixInstance::init() { reloadVersion(); } - catch(MMCError & e) + catch (MMCError &e) { // QLOG_ERROR() << "Caught exception on instance init: " << e.cause(); } @@ -125,7 +126,7 @@ QDir OneSixInstance::reconstructAssets(std::shared_ptr version) QString original_path = PathCombine(PathCombine(objectDir.path(), tlk), asset_object.hash); QFile original(original_path); - if(!original.exists()) + if (!original.exists()) continue; if (!target.exists()) { @@ -137,7 +138,7 @@ QDir OneSixInstance::reconstructAssets(std::shared_ptr version) bool couldCopy = original.copy(target_path); QLOG_DEBUG() << " Copying" << original_path << "to" << target_path - << QString::number(couldCopy); // << original.errorString(); + << QString::number(couldCopy); // << original.errorString(); } } @@ -205,8 +206,20 @@ bool OneSixInstance::prepareForLaunch(AuthSessionPtr account, QString &launchScr { launchScript += "cp " + librariesPath().absoluteFilePath(lib->storagePath()) + "\n"; } - QString targetstr = version->id + "/" + version->id + ".jar"; - launchScript += "cp " + versionsPath().absoluteFilePath(targetstr) + "\n"; + QString minecraftjarpath; + if (version->hasJarMods()) + { + for (auto jarmod : version->jarMods) + { + launchScript += "cp " + jarmodsPath().absoluteFilePath(jarmod->name) + "\n"; + } + minecraftjarpath = version->id + "/" + version->id + "-stripped.jar"; + } + else + { + minecraftjarpath = version->id + "/" + version->id + ".jar"; + } + launchScript += "cp " + versionsPath().absoluteFilePath(minecraftjarpath) + "\n"; } launchScript += "mainClass " + version->mainClass + "\n"; @@ -231,12 +244,16 @@ bool OneSixInstance::prepareForLaunch(AuthSessionPtr account, QString &launchScr } QDir natives_dir(PathCombine(instanceRoot(), "natives/")); launchScript += "windowTitle " + windowTitle() + "\n"; - for(auto native: version->getActiveNativeLibs()) + for (auto native : version->getActiveNativeLibs()) { QFileInfo finfo(PathCombine("libraries", native->storagePath())); launchScript += "ext " + finfo.absoluteFilePath() + "\n"; } launchScript += "natives " + natives_dir.absolutePath() + "\n"; + for (auto trait : version->traits) + { + launchScript += "trait " + trait + "\n"; + } launchScript += "launcher onesix\n"; return true; } @@ -319,7 +336,7 @@ bool OneSixInstance::versionIsCustom() { I_D(const OneSixInstance); auto ver = d->version; - if(ver) + if (ver) { return !ver->isVanilla(); } @@ -330,7 +347,7 @@ bool OneSixInstance::versionIsFTBPack() { I_D(const OneSixInstance); auto ver = d->version; - if(ver) + if (ver) { return ver->hasFtbPack(); } @@ -352,11 +369,11 @@ void OneSixInstance::reloadVersion() d->m_flags.remove(VersionBrokenFlag); emit versionReloaded(); } - catch(MMCError & error) + catch (MMCError &error) { d->version->clear(); d->m_flags.insert(VersionBrokenFlag); - //TODO: rethrow to show some error message(s)? + // TODO: rethrow to show some error message(s)? emit versionReloaded(); throw; } @@ -409,8 +426,8 @@ QString OneSixInstance::getStatusbarDescription() { traits.append(tr("broken")); } - - if(traits.size()) + + if (traits.size()) { return tr("Minecraft %1 (%2)").arg(intendedVersionId()).arg(traits.join(", ")); } @@ -424,6 +441,12 @@ QDir OneSixInstance::librariesPath() const { return QDir::current().absoluteFilePath("libraries"); } + +QDir OneSixInstance::jarmodsPath() const +{ + return QDir(jarModsDir()); +} + QDir OneSixInstance::versionsPath() const { return QDir::current().absoluteFilePath("versions"); @@ -441,7 +464,7 @@ bool OneSixInstance::providesVersionFile() const bool OneSixInstance::reload() { - if(BaseInstance::reload()) + if (BaseInstance::reload()) { try { @@ -480,3 +503,22 @@ QString OneSixInstance::jarModsDir() const { return PathCombine(instanceRoot(), "jarmods"); } + +QString OneSixInstance::libDir() const +{ + return PathCombine(minecraftRoot(), "lib"); +} + +QStringList OneSixInstance::extraArguments() const +{ + auto list = BaseInstance::extraArguments(); + auto version = getFullVersion(); + if (!version) + return list; + if (version->hasJarMods()) + { + list.append({"-Dfml.ignoreInvalidMinecraftCertificates=true", + "-Dfml.ignorePatchDiscrepancies=true"}); + } + return list; +} diff --git a/logic/OneSixInstance.h b/logic/OneSixInstance.h index b26ff752..80b197c4 100644 --- a/logic/OneSixInstance.h +++ b/logic/OneSixInstance.h @@ -40,6 +40,7 @@ public: QString resourcePacksDir() const; QString loaderModsDir() const; QString coreModsDir() const; + QString libDir() const; virtual QString instanceConfigFolder() const override; virtual std::shared_ptr doUpdate() override; @@ -82,13 +83,15 @@ public: virtual bool menuActionEnabled(QString action_name) const override; virtual QString getStatusbarDescription() override; + virtual QDir jarmodsPath() const; virtual QDir librariesPath() const; virtual QDir versionsPath() const; virtual QStringList externalPatches() const; virtual bool providesVersionFile() const; bool reload() override; - + virtual QStringList extraArguments() const override; + signals: void versionReloaded(); diff --git a/logic/OneSixUpdate.cpp b/logic/OneSixUpdate.cpp index da2fd29c..230ef9a9 100644 --- a/logic/OneSixUpdate.cpp +++ b/logic/OneSixUpdate.cpp @@ -259,7 +259,7 @@ void OneSixUpdate::jarlibStart() auto metacache = MMC->metacache(); auto entry = metacache->resolveEntry("versions", localPath); job->addNetAction(CacheDownload::make(QUrl(urlstr), entry)); - + jarHashOnEntry = entry->md5sum; jarlibDownloadJob.reset(job); } @@ -341,7 +341,36 @@ void OneSixUpdate::jarlibStart() void OneSixUpdate::jarlibFinished() { - assetIndexStart(); + OneSixInstance *inst = (OneSixInstance *)m_inst; + std::shared_ptr version = inst->getFullVersion(); + + // create stripped jar, if needed + if(version->hasJarMods()) + { + //FIXME: good candidate for moving elsewhere (jar location resolving/version caching). + QString version_id = version->id; + QString localPath = version_id + "/" + version_id + ".jar"; + QString strippedPath = version_id + "/" + version_id + "-stripped.jar"; + auto metacache = MMC->metacache(); + auto entry = metacache->resolveEntry("versions", localPath); + auto entryStripped = metacache->resolveEntry("versions", strippedPath); + + QString fullJarPath = entry->getFullPath(); + QString fullStrippedJarPath = entryStripped->getFullPath(); + + if(entry->md5sum != jarHashOnEntry || !QFileInfo::exists(fullStrippedJarPath)) + { + stripJar(fullJarPath, fullStrippedJarPath); + } + } + if(version->traits.contains("legacyFML")) + { + fmllibsStart(); + } + else + { + assetIndexStart(); + } } void OneSixUpdate::jarlibFailed() @@ -350,3 +379,184 @@ void OneSixUpdate::jarlibFailed() QString failed_all = failed.join("\n"); emitFailed(tr("Failed to download the following files:\n%1\n\nPlease try again.").arg(failed_all)); } + +void OneSixUpdate::stripJar(QString origPath, QString newPath) +{ + QFileInfo runnableJar(newPath); + if (runnableJar.exists() && !QFile::remove(runnableJar.filePath())) + { + emitFailed("Failed to delete old minecraft.jar"); + return; + } + + // TaskStep(); // STEP 1 + setStatus(tr("Creating stripped jar: Opening minecraft.jar ...")); + + QuaZip zipOut(runnableJar.filePath()); + if (!zipOut.open(QuaZip::mdCreate)) + { + QFile::remove(runnableJar.filePath()); + emitFailed("Failed to open the minecraft.jar for stripping"); + return; + } + // Modify the jar + setStatus(tr("Creating stripped jar: Adding files...")); + if (!MergeZipFiles(&zipOut, origPath)) + { + zipOut.close(); + QFile::remove(runnableJar.filePath()); + emitFailed("Failed to add " + origPath + " to the jar."); + return; + } +} + +bool OneSixUpdate::MergeZipFiles(QuaZip *into, QString from) +{ + setStatus(tr("Installing mods: Adding ") + from + " ..."); + + QuaZip modZip(from); + modZip.open(QuaZip::mdUnzip); + + QuaZipFile fileInsideMod(&modZip); + QuaZipFile zipOutFile(into); + for (bool more = modZip.goToFirstFile(); more; more = modZip.goToNextFile()) + { + QString filename = modZip.getCurrentFileName(); + if (filename.contains("META-INF")) + { + QLOG_INFO() << "Skipping META-INF " << filename << " from " << from; + continue; + } + QLOG_INFO() << "Adding file " << filename << " from " << from; + + if (!fileInsideMod.open(QIODevice::ReadOnly)) + { + QLOG_ERROR() << "Failed to open " << filename << " from " << from; + return false; + } + /* + QuaZipFileInfo old_info; + fileInsideMod.getFileInfo(&old_info); + */ + QuaZipNewInfo info_out(fileInsideMod.getActualFileName()); + /* + info_out.externalAttr = old_info.externalAttr; + */ + if (!zipOutFile.open(QIODevice::WriteOnly, info_out)) + { + QLOG_ERROR() << "Failed to open " << filename << " in the jar"; + fileInsideMod.close(); + return false; + } + if (!JlCompress::copyData(fileInsideMod, zipOutFile)) + { + zipOutFile.close(); + fileInsideMod.close(); + QLOG_ERROR() << "Failed to copy data of " << filename << " into the jar"; + return false; + } + zipOutFile.close(); + fileInsideMod.close(); + } + return true; +} + + +void OneSixUpdate::fmllibsStart() +{ + // Get the mod list + OneSixInstance *inst = (OneSixInstance *)m_inst; + std::shared_ptr fullversion = inst->getFullVersion(); + bool forge_present = false; + + QString version = inst->intendedVersionId(); + auto & fmlLibsMapping = g_VersionFilterData.fmlLibsMapping; + if (!fmlLibsMapping.contains(version)) + { + assetIndexStart(); + return; + } + + auto &libList = fmlLibsMapping[version]; + + // determine if we need some libs for FML or forge + setStatus(tr("Checking for FML libraries...")); + forge_present = (fullversion->versionFile("net.minecraftforge") != nullptr); + // we don't... + if (!forge_present) + { + assetIndexStart(); + return; + } + + // now check the lib folder inside the instance for files. + for (auto &lib : libList) + { + QFileInfo libInfo(PathCombine(inst->libDir(), lib.filename)); + if (libInfo.exists()) + continue; + fmlLibsToProcess.append(lib); + } + + // if everything is in place, there's nothing to do here... + if (fmlLibsToProcess.isEmpty()) + { + assetIndexStart(); + return; + } + + // download missing libs to our place + setStatus(tr("Dowloading FML libraries...")); + auto dljob = new NetJob("FML libraries"); + auto metacache = MMC->metacache(); + for (auto &lib : fmlLibsToProcess) + { + auto entry = metacache->resolveEntry("fmllibs", lib.filename); + QString urlString = lib.ours ? URLConstants::FMLLIBS_OUR_BASE_URL + lib.filename + : URLConstants::FMLLIBS_FORGE_BASE_URL + lib.filename; + dljob->addNetAction(CacheDownload::make(QUrl(urlString), entry)); + } + + connect(dljob, SIGNAL(succeeded()), SLOT(fmllibsFinished())); + connect(dljob, SIGNAL(failed()), SLOT(fmllibsFailed())); + connect(dljob, SIGNAL(progress(qint64, qint64)), SIGNAL(progress(qint64, qint64))); + legacyDownloadJob.reset(dljob); + legacyDownloadJob->start(); +} + +void OneSixUpdate::fmllibsFinished() +{ + legacyDownloadJob.reset(); + if(!fmlLibsToProcess.isEmpty()) + { + setStatus(tr("Copying FML libraries into the instance...")); + OneSixInstance *inst = (OneSixInstance *)m_inst; + auto metacache = MMC->metacache(); + int index = 0; + for (auto &lib : fmlLibsToProcess) + { + progress(index, fmlLibsToProcess.size()); + auto entry = metacache->resolveEntry("fmllibs", lib.filename); + auto path = PathCombine(inst->libDir(), lib.filename); + if(!ensureFilePathExists(path)) + { + emitFailed(tr("Failed creating FML library folder inside the instance.")); + return; + } + if (!QFile::copy(entry->getFullPath(), PathCombine(inst->libDir(), lib.filename))) + { + emitFailed(tr("Failed copying Forge/FML library: %1.").arg(lib.filename)); + return; + } + index++; + } + progress(index, fmlLibsToProcess.size()); + } + assetIndexStart(); +} + +void OneSixUpdate::fmllibsFailed() +{ + emitFailed("Game update failed: it was impossible to fetch the required FML libraries."); + return; +} \ No newline at end of file diff --git a/logic/OneSixUpdate.h b/logic/OneSixUpdate.h index eac882b5..00f7c135 100644 --- a/logic/OneSixUpdate.h +++ b/logic/OneSixUpdate.h @@ -21,6 +21,8 @@ #include "logic/net/NetJob.h" #include "logic/tasks/Task.h" +#include "logic/VersionFilterData.h" +#include class MinecraftVersion; class OneSixInstance; @@ -42,6 +44,10 @@ slots: void jarlibFinished(); void jarlibFailed(); + void fmllibsStart(); + void fmllibsFinished(); + void fmllibsFailed(); + void assetIndexStart(); void assetIndexFinished(); void assetIndexFailed(); @@ -49,11 +55,16 @@ slots: void assetsFinished(); void assetsFailed(); + void stripJar(QString origPath, QString newPath); + bool MergeZipFiles(QuaZip *into, QString from); private: NetJobPtr specificVersionDownloadJob; NetJobPtr jarlibDownloadJob; + NetJobPtr legacyDownloadJob; // target version, determined during this task std::shared_ptr targetVersion; OneSixInstance *m_inst = nullptr; + QString jarHashOnEntry; + QList fmlLibsToProcess; }; diff --git a/logic/URNResolver.cpp b/logic/URNResolver.cpp new file mode 100644 index 00000000..b6bdcf41 --- /dev/null +++ b/logic/URNResolver.cpp @@ -0,0 +1,98 @@ +#include "URNResolver.h" +#include +#include "MultiMC.h" +#include "logic/forge/ForgeVersionList.h" +#include "logic/forge/ForgeVersion.h" + +QString unescapeNSS(QString RawNSS) +{ + QString NSS; + NSS.reserve(RawNSS.size()); + enum + { + Normal, + FirstHex, + SecondHex + } ParseState = Normal; + + QByteArray translator(" "); + + for (auto ch : RawNSS) + { + if(ParseState == Normal) + { + if(ch == '%') + { + ParseState = FirstHex; + continue; + } + else + { + NSS.append(ch); + } + } + if(ParseState == FirstHex) + { + translator[0] = ch.toLower().unicode(); + ParseState = SecondHex; + } + else if(ParseState == SecondHex) + { + translator[1] = ch.toLower().unicode(); + auto result = QByteArray::fromHex(translator); + if (result[0] == '\0') + return NSS; + NSS.append(result); + ParseState = Normal; + } + } + return NSS; +} + +bool URNResolver::parse(const QString &URN, QString &NID, QString &NSS) +{ + QRegExp URNPattern( + "^urn:([a-z0-9][a-z0-9-]{0,31}):(([a-z0-9()+,\\-.:=@;$_!*']|%[0-9a-f]{2})+).*", + Qt::CaseInsensitive); + if (URNPattern.indexIn(URN) == -1) + return false; + auto captures = URNPattern.capturedTexts(); + QString RawNID = captures[1]; + QString RawNSS = captures[2]; + + NID = RawNID.toLower(); + NSS = unescapeNSS(RawNSS); + return true; +} + +URNResolver::URNResolver() +{ +} + +QVariant URNResolver::resolve(QString URN) +{ + QString NID, NSS; + parse(URN, NID, NSS); + + if(NID != "x-mmc") + return QVariant(); + auto parts = NSS.split(":"); + if(parts.size() < 1) + return QVariant(); + unsigned int version = parts[0].toUInt(); + switch(version) + { + case 1: + return resolveV1(parts.mid(1)); + default: + return QVariant(); + } +} + +/** + * TODO: implement. + */ +QVariant URNResolver::resolveV1(QStringList parts) +{ + return QVariant(); +} diff --git a/logic/URNResolver.h b/logic/URNResolver.h new file mode 100644 index 00000000..dfc7f5eb --- /dev/null +++ b/logic/URNResolver.h @@ -0,0 +1,18 @@ +#pragma once +#include +#include +#include +#include + +class URNResolver; +typedef std::shared_ptr URNResolverPtr; + +class URNResolver +{ +public: + URNResolver(); + QVariant resolve (QString URN); + static bool parse (const QString &URN, QString &NID, QString &NSS); +private: + QVariant resolveV1 (QStringList parts); +}; diff --git a/logic/VersionFile.cpp b/logic/VersionFile.cpp index 4a850f97..222750d4 100644 --- a/logic/VersionFile.cpp +++ b/logic/VersionFile.cpp @@ -461,6 +461,7 @@ void VersionFile::applyTo(VersionFinal *version) version->tweakers.removeAll(tweaker); } version->jarMods.append(jarMods); + version->traits.unite(traits); if (shouldOverwriteLibs) { QList libs; diff --git a/logic/VersionFilterData.cpp b/logic/VersionFilterData.cpp new file mode 100644 index 00000000..8322dad4 --- /dev/null +++ b/logic/VersionFilterData.cpp @@ -0,0 +1,64 @@ +#include "VersionFilterData.h" + +extern VersionFilterData g_VersionFilterData = VersionFilterData(); + +VersionFilterData::VersionFilterData() +{ + // 1.3.* + auto libs13 = + QList{{"argo-2.25.jar", "bb672829fde76cb163004752b86b0484bd0a7f4b", false}, + {"guava-12.0.1.jar", "b8e78b9af7bf45900e14c6f958486b6ca682195f", false}, + {"asm-all-4.0.jar", "98308890597acb64047f7e896638e0d98753ae82", false}}; + + fmlLibsMapping["1.3.2"] = libs13; + + // 1.4.* + auto libs14 = QList{ + {"argo-2.25.jar", "bb672829fde76cb163004752b86b0484bd0a7f4b", false}, + {"guava-12.0.1.jar", "b8e78b9af7bf45900e14c6f958486b6ca682195f", false}, + {"asm-all-4.0.jar", "98308890597acb64047f7e896638e0d98753ae82", false}, + {"bcprov-jdk15on-147.jar", "b6f5d9926b0afbde9f4dbe3db88c5247be7794bb", false}}; + + fmlLibsMapping["1.4"] = libs14; + fmlLibsMapping["1.4.1"] = libs14; + fmlLibsMapping["1.4.2"] = libs14; + fmlLibsMapping["1.4.3"] = libs14; + fmlLibsMapping["1.4.4"] = libs14; + fmlLibsMapping["1.4.5"] = libs14; + fmlLibsMapping["1.4.6"] = libs14; + fmlLibsMapping["1.4.7"] = libs14; + + // 1.5 + fmlLibsMapping["1.5"] = QList{ + {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false}, + {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false}, + {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false}, + {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true}, + {"deobfuscation_data_1.5.zip", "5f7c142d53776f16304c0bbe10542014abad6af8", false}, + {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}}; + + // 1.5.1 + fmlLibsMapping["1.5.1"] = QList{ + {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false}, + {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false}, + {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false}, + {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true}, + {"deobfuscation_data_1.5.1.zip", "22e221a0d89516c1f721d6cab056a7e37471d0a6", false}, + {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}}; + + // 1.5.2 + fmlLibsMapping["1.5.2"] = QList{ + {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false}, + {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false}, + {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false}, + {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true}, + {"deobfuscation_data_1.5.2.zip", "446e55cd986582c70fcf12cb27bc00114c5adfd9", false}, + {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}}; + + // don't use installers for those. + forgeInstallerBlacklist = QSet({"1.5.2"}); + legacyLaunchWhitelist = + QSet({"1.5.2", "1.5.1", "1.5", "1.4.7", "1.4.6", "1.4.5", "1.4.4", "1.4.3", + "1.4.2", "1.4.1", "1.4", "1.3.2", "1.3.1", "1.3", "1.2.5", "1.2.4", + "1.2.3", "1.2.2", "1.2.1", "1.1", "1.0.1", "1.0"}); +} diff --git a/logic/VersionFilterData.h b/logic/VersionFilterData.h new file mode 100644 index 00000000..562654a9 --- /dev/null +++ b/logic/VersionFilterData.h @@ -0,0 +1,23 @@ +#pragma once +#include +#include +#include + +struct FMLlib +{ + QString filename; + QString checksum; + bool ours; +}; + +struct VersionFilterData +{ + VersionFilterData(); + // mapping between minecraft versions and FML libraries required + QMap> fmlLibsMapping; + // set of minecraft versions for which using forge installers is blacklisted + QSet forgeInstallerBlacklist; + // set of 'legacy' versions (ones that use the legacy launch) + QSet legacyLaunchWhitelist; +}; +extern VersionFilterData g_VersionFilterData; diff --git a/logic/VersionFinal.cpp b/logic/VersionFinal.cpp index 18bd360b..5bac4bcf 100644 --- a/logic/VersionFinal.cpp +++ b/logic/VersionFinal.cpp @@ -21,6 +21,7 @@ #include "OneSixVersionBuilder.h" #include "OneSixInstance.h" +#include "VersionFilterData.h" #include VersionFinal::VersionFinal(OneSixInstance *instance, QObject *parent) @@ -63,17 +64,34 @@ bool VersionFinal::canRemove(const int index) const return false; } +bool VersionFinal::preremove(VersionFilePtr versionfile) +{ + bool ok = true; + for(auto & jarmod: versionfile->jarMods) + { + QString fullpath =PathCombine(m_instance->jarModsDir(), jarmod->name); + QFileInfo finfo (fullpath); + if(finfo.exists(fullpath)) + ok &= QFile::remove(fullpath); + } + return ok; +} + bool VersionFinal::remove(const int index) { - if (canRemove(index) && QFile::remove(versionFiles.at(index)->filename)) + if (!canRemove(index)) + return false; + if(!preremove(versionFiles[index])) { - beginResetModel(); - versionFiles.removeAt(index); - reapply(true); - endResetModel(); - return true; + return false; } - return false; + if(!QFile::remove(versionFiles.at(index)->filename)) + return false; + beginResetModel(); + versionFiles.removeAt(index); + reapply(true); + endResetModel(); + return true; } bool VersionFinal::remove(const QString id) @@ -129,7 +147,11 @@ bool VersionFinal::removeFtbPack() bool VersionFinal::isVanilla() { QDir patches(PathCombine(m_instance->instanceRoot(), "patches/")); - return versionFiles.size() > 1 || QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json")); + if(versionFiles.size() > 1) + return false; + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json"))) + return false; + return true; } bool VersionFinal::revertToVanilla() @@ -140,7 +162,16 @@ bool VersionFinal::revertToVanilla() { if ((*it)->fileId != "org.multimc.version.json") { - QFile::remove((*it)->filename); + if(!preremove(*it)) + { + endResetModel(); + return false; + } + if(!QFile::remove((*it)->filename)) + { + endResetModel(); + return false; + } it = versionFiles.erase(it); } else @@ -303,16 +334,15 @@ void VersionFinal::move(const int index, const MoveDirection direction) { return; } - - VersionFilePtr we = versionFiles[index]; - VersionFilePtr them = versionFiles[theirIndex]; - if (!we || !them) + if(direction == MoveDown) { - return; + beginMoveRows(QModelIndex(), index, index, QModelIndex(), theirIndex+1); + } + else + { + beginMoveRows(QModelIndex(), index, index, QModelIndex(), theirIndex); } - beginMoveRows(QModelIndex(), index, index, QModelIndex(), theirIndex); - versionFiles.replace(theirIndex, we); - versionFiles.replace(index, them); + versionFiles.swap(index, theirIndex); endMoveRows(); auto order = getExistingOrder(); @@ -396,5 +426,10 @@ void VersionFinal::finalize() }; finalizeArguments(vanillaMinecraftArguments, vanillaProcessArguments); finalizeArguments(minecraftArguments, processArguments); + // use legacy launch for this version if the version id is legacy + if(g_VersionFilterData.legacyLaunchWhitelist.contains(id)) + { + traits.insert("legacyLaunch"); + } } diff --git a/logic/VersionFinal.h b/logic/VersionFinal.h index 71e43399..f3bf9771 100644 --- a/logic/VersionFinal.h +++ b/logic/VersionFinal.h @@ -81,6 +81,9 @@ public: static std::shared_ptr fromJson(const QJsonObject &obj); +private: + bool preremove(VersionFilePtr); + // data members public: /// the ID - determines which jar to use! ACTUALLY IMPORTANT! diff --git a/logic/forge/ForgeData.cpp b/logic/forge/ForgeData.cpp deleted file mode 100644 index 700b847b..00000000 --- a/logic/forge/ForgeData.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "ForgeData.h" - -extern ForgeData g_forgeData = ForgeData(); - -ForgeData::ForgeData() -{ - // 1.3.* - auto libs13 = - QList{{"argo-2.25.jar", "bb672829fde76cb163004752b86b0484bd0a7f4b", false}, - {"guava-12.0.1.jar", "b8e78b9af7bf45900e14c6f958486b6ca682195f", false}, - {"asm-all-4.0.jar", "98308890597acb64047f7e896638e0d98753ae82", false}}; - - fmlLibsMapping["1.3.2"] = libs13; - - // 1.4.* - auto libs14 = QList{ - {"argo-2.25.jar", "bb672829fde76cb163004752b86b0484bd0a7f4b", false}, - {"guava-12.0.1.jar", "b8e78b9af7bf45900e14c6f958486b6ca682195f", false}, - {"asm-all-4.0.jar", "98308890597acb64047f7e896638e0d98753ae82", false}, - {"bcprov-jdk15on-147.jar", "b6f5d9926b0afbde9f4dbe3db88c5247be7794bb", false}}; - - fmlLibsMapping["1.4"] = libs14; - fmlLibsMapping["1.4.1"] = libs14; - fmlLibsMapping["1.4.2"] = libs14; - fmlLibsMapping["1.4.3"] = libs14; - fmlLibsMapping["1.4.4"] = libs14; - fmlLibsMapping["1.4.5"] = libs14; - fmlLibsMapping["1.4.6"] = libs14; - fmlLibsMapping["1.4.7"] = libs14; - - // 1.5 - fmlLibsMapping["1.5"] = QList{ - {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false}, - {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false}, - {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false}, - {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true}, - {"deobfuscation_data_1.5.zip", "5f7c142d53776f16304c0bbe10542014abad6af8", false}, - {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}}; - - // 1.5.1 - fmlLibsMapping["1.5.1"] = QList{ - {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false}, - {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false}, - {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false}, - {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true}, - {"deobfuscation_data_1.5.1.zip", "22e221a0d89516c1f721d6cab056a7e37471d0a6", false}, - {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}}; - - // 1.5.2 - fmlLibsMapping["1.5.2"] = QList{ - {"argo-small-3.2.jar", "58912ea2858d168c50781f956fa5b59f0f7c6b51", false}, - {"guava-14.0-rc3.jar", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", false}, - {"asm-all-4.1.jar", "054986e962b88d8660ae4566475658469595ef58", false}, - {"bcprov-jdk15on-148.jar", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", true}, - {"deobfuscation_data_1.5.2.zip", "446e55cd986582c70fcf12cb27bc00114c5adfd9", false}, - {"scala-library.jar", "458d046151ad179c85429ed7420ffb1eaf6ddf85", true}}; - - // don't use installers for those. - forgeInstallerBlacklist = QSet({ - "1.5.2" - }); -} diff --git a/logic/forge/ForgeData.h b/logic/forge/ForgeData.h deleted file mode 100644 index 27749778..00000000 --- a/logic/forge/ForgeData.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once -#include -#include -#include - -struct FMLlib -{ - QString filename; - QString checksum; - bool ours; -}; - -struct ForgeData -{ - ForgeData(); - // mapping between minecraft versions and FML libraries required - QMap> fmlLibsMapping; - // set of minecraft versions for which using forge installers is blacklisted - QSet forgeInstallerBlacklist; -}; -extern ForgeData g_forgeData; diff --git a/logic/forge/ForgeInstaller.cpp b/logic/forge/ForgeInstaller.cpp index 1204b855..3b13a7cd 100644 --- a/logic/forge/ForgeInstaller.cpp +++ b/logic/forge/ForgeInstaller.cpp @@ -20,7 +20,7 @@ #include "logic/tasks/Task.h" #include "logic/OneSixInstance.h" #include "logic/forge/ForgeVersionList.h" -#include "ForgeData.h" +#include "logic/VersionFilterData.h" #include "gui/dialogs/ProgressDialog.h" #include @@ -239,7 +239,16 @@ bool ForgeInstaller::addLegacy(OneSixInstance *to) { return false; } - + auto entry = MMC->metacache()->resolveEntry("minecraftforge", m_forge_version->filename()); + finalPath = PathCombine(to->jarModsDir(), m_forge_version->filename()); + if (!ensureFilePathExists(finalPath)) + { + return false; + } + if (!QFile::copy(entry->getFullPath(),finalPath)) + { + return false; + } QJsonObject obj; obj.insert("order", 5); { @@ -256,13 +265,15 @@ bool ForgeInstaller::addLegacy(OneSixInstance *to) obj.insert("fileId", id()); obj.insert("version", m_forge_version->jobbuildver); obj.insert("mcVersion", to->intendedVersionId()); - if (g_forgeData.fmlLibsMapping.contains(m_forge_version->mcver)) + if (g_VersionFilterData.fmlLibsMapping.contains(m_forge_version->mcver)) { QJsonArray traitsPlus; traitsPlus.append(QString("legacyFML")); obj.insert("+traits", traitsPlus); } - + auto fullversion = to->getFullVersion(); + fullversion->remove("net.minecraftforge"); + QFile file(filename(to->instanceRoot())); if (!file.open(QFile::WriteOnly)) { @@ -299,8 +310,7 @@ protected: } void prepare(ForgeVersionPtr forgeVersion) { - auto entry = - MMC->metacache()->resolveEntry("minecraftforge", forgeVersion->filename()); + auto entry = MMC->metacache()->resolveEntry("minecraftforge", forgeVersion->filename()); auto installFunction = [this, entry, forgeVersion]() { if (!install(entry, forgeVersion)) @@ -313,7 +323,7 @@ protected: reload(); } }; - + if (entry->stale) { NetJob *fjob = new NetJob("Forge download"); diff --git a/logic/forge/ForgeVersion.cpp b/logic/forge/ForgeVersion.cpp index fd4efc4b..3131ec39 100644 --- a/logic/forge/ForgeVersion.cpp +++ b/logic/forge/ForgeVersion.cpp @@ -1,5 +1,5 @@ #include "ForgeVersion.h" -#include "ForgeData.h" +#include "logic/VersionFilterData.h" #include QString ForgeVersion::name() @@ -39,7 +39,7 @@ bool ForgeVersion::usesInstaller() { if(installer_url.isEmpty()) return false; - if(g_forgeData.forgeInstallerBlacklist.contains(mcver)) + if(g_VersionFilterData.forgeInstallerBlacklist.contains(mcver)) return false; return true; } diff --git a/logic/forge/ForgeVersionList.cpp b/logic/forge/ForgeVersionList.cpp index c873bab7..545fff42 100644 --- a/logic/forge/ForgeVersionList.cpp +++ b/logic/forge/ForgeVersionList.cpp @@ -421,6 +421,7 @@ void ForgeListLoadTask::listFailed() QLOG_ERROR() << "Getting forge version list failed for reasons unknown."; } } + void ForgeListLoadTask::gradleListFailed() { auto reply = gradleListDownload->m_reply; diff --git a/logic/forge/ForgeVersionList.h b/logic/forge/ForgeVersionList.h index c848e9b8..2c020b0f 100644 --- a/logic/forge/ForgeVersionList.h +++ b/logic/forge/ForgeVersionList.h @@ -41,6 +41,8 @@ public: virtual BaseVersionPtr getLatestStable() const; + ForgeVersionPtr findVersionByVersionNr(QString version); + virtual QVariant data(const QModelIndex &index, int role) const; virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const; virtual int columnCount(const QModelIndex &parent) const; diff --git a/logic/lists/MinecraftVersionList.cpp b/logic/lists/MinecraftVersionList.cpp index ec2f2d21..fb6daae8 100644 --- a/logic/lists/MinecraftVersionList.cpp +++ b/logic/lists/MinecraftVersionList.cpp @@ -113,28 +113,6 @@ MCVListLoadTask::MCVListLoadTask(MinecraftVersionList *vlist) m_list = vlist; m_currentStable = NULL; vlistReply = nullptr; - legacyWhitelist.insert("1.5.2"); - legacyWhitelist.insert("1.5.1"); - legacyWhitelist.insert("1.5"); - legacyWhitelist.insert("1.4.7"); - legacyWhitelist.insert("1.4.6"); - legacyWhitelist.insert("1.4.5"); - legacyWhitelist.insert("1.4.4"); - legacyWhitelist.insert("1.4.3"); - legacyWhitelist.insert("1.4.2"); - legacyWhitelist.insert("1.4.1"); - legacyWhitelist.insert("1.4"); - legacyWhitelist.insert("1.3.2"); - legacyWhitelist.insert("1.3.1"); - legacyWhitelist.insert("1.3"); - legacyWhitelist.insert("1.2.5"); - legacyWhitelist.insert("1.2.4"); - legacyWhitelist.insert("1.2.3"); - legacyWhitelist.insert("1.2.2"); - legacyWhitelist.insert("1.2.1"); - legacyWhitelist.insert("1.1"); - legacyWhitelist.insert("1.0.1"); - legacyWhitelist.insert("1.0"); } MCVListLoadTask::~MCVListLoadTask() @@ -240,25 +218,21 @@ void MCVListLoadTask::list_downloaded() // OneSix or Legacy. use filter to determine type if (versionTypeStr == "release") { - legacyLaunch = legacyWhitelist.contains(versionID); is_latest = (versionID == latestReleaseID); is_snapshot = false; } else if (versionTypeStr == "snapshot") // It's a snapshot... yay { - legacyLaunch = legacyWhitelist.contains(versionID); is_latest = (versionID == latestSnapshotID); is_snapshot = true; } else if (versionTypeStr == "old_alpha") { - legacyLaunch = false; is_latest = false; is_snapshot = false; } else if (versionTypeStr == "old_beta") { - legacyLaunch = true; is_latest = false; is_snapshot = false; } diff --git a/logic/lists/MinecraftVersionList.h b/logic/lists/MinecraftVersionList.h index 167f4d11..8f748d34 100644 --- a/logic/lists/MinecraftVersionList.h +++ b/logic/lists/MinecraftVersionList.h @@ -72,5 +72,4 @@ protected: QNetworkReply *vlistReply; MinecraftVersionList *m_list; MinecraftVersion *m_currentStable; - QSet legacyWhitelist; }; diff --git a/resources/versions/1.0.json b/resources/versions/1.0.json new file mode 100644 index 00000000..98e52b0a --- /dev/null +++ b/resources/versions/1.0.json @@ -0,0 +1,153 @@ +{ + "id": "1.0", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2011-11-18T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 4 +} diff --git a/resources/versions/1.1.json b/resources/versions/1.1.json new file mode 100644 index 00000000..769306f1 --- /dev/null +++ b/resources/versions/1.1.json @@ -0,0 +1,153 @@ +{ + "id": "1.1", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-01-12T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 4 +} diff --git a/resources/versions/1.2.1.json b/resources/versions/1.2.1.json new file mode 100644 index 00000000..e92cdf26 --- /dev/null +++ b/resources/versions/1.2.1.json @@ -0,0 +1,153 @@ +{ + "id": "1.2.1", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-03-01T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 4 +} diff --git a/resources/versions/1.2.2.json b/resources/versions/1.2.2.json new file mode 100644 index 00000000..d52fde53 --- /dev/null +++ b/resources/versions/1.2.2.json @@ -0,0 +1,153 @@ +{ + "id": "1.2.2", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-03-01T00:00:01+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 4 +} diff --git a/resources/versions/1.2.3.json b/resources/versions/1.2.3.json new file mode 100644 index 00000000..1b1892b4 --- /dev/null +++ b/resources/versions/1.2.3.json @@ -0,0 +1,153 @@ +{ + "id": "1.2.3", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-03-02T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 4 +} diff --git a/resources/versions/1.2.4.json b/resources/versions/1.2.4.json new file mode 100644 index 00000000..0941dedd --- /dev/null +++ b/resources/versions/1.2.4.json @@ -0,0 +1,153 @@ +{ + "id": "1.2.4", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-03-22T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 4 +} diff --git a/resources/versions/1.2.5.json b/resources/versions/1.2.5.json new file mode 100644 index 00000000..de657e47 --- /dev/null +++ b/resources/versions/1.2.5.json @@ -0,0 +1,153 @@ +{ + "id": "1.2.5", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-03-30T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.3.1.json b/resources/versions/1.3.1.json new file mode 100644 index 00000000..fe9bc9a5 --- /dev/null +++ b/resources/versions/1.3.1.json @@ -0,0 +1,153 @@ +{ + "id": "1.3.1", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-08-01T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.3.2.json b/resources/versions/1.3.2.json new file mode 100644 index 00000000..4519070a --- /dev/null +++ b/resources/versions/1.3.2.json @@ -0,0 +1,153 @@ +{ + "id": "1.3.2", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-08-16T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.3.json b/resources/versions/1.3.json new file mode 100644 index 00000000..a0fe05de --- /dev/null +++ b/resources/versions/1.3.json @@ -0,0 +1,153 @@ +{ + "id": "1.3", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-07-26T00:00:00+02:00", + "type": "snapshot", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.1.json b/resources/versions/1.4.1.json new file mode 100644 index 00000000..982ad92f --- /dev/null +++ b/resources/versions/1.4.1.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.1", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-11-23T00:00:00+02:00", + "type": "snapshot", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.2.json b/resources/versions/1.4.2.json new file mode 100644 index 00000000..0555bb1c --- /dev/null +++ b/resources/versions/1.4.2.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.2", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-11-25T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.3.json b/resources/versions/1.4.3.json new file mode 100644 index 00000000..03494715 --- /dev/null +++ b/resources/versions/1.4.3.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.3", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-12-01T00:00:00+02:00", + "type": "snapshot", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.4.json b/resources/versions/1.4.4.json new file mode 100644 index 00000000..7b263c9b --- /dev/null +++ b/resources/versions/1.4.4.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.4", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-12-14T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.5.json b/resources/versions/1.4.5.json new file mode 100644 index 00000000..a5fdfe04 --- /dev/null +++ b/resources/versions/1.4.5.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.5", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-12-20T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.6.json b/resources/versions/1.4.6.json new file mode 100644 index 00000000..1352ed75 --- /dev/null +++ b/resources/versions/1.4.6.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.6", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-12-20T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.7.json b/resources/versions/1.4.7.json new file mode 100644 index 00000000..310e76f1 --- /dev/null +++ b/resources/versions/1.4.7.json @@ -0,0 +1,153 @@ +{ + "id": "1.4.7", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-12-28T00:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.4.json b/resources/versions/1.4.json new file mode 100644 index 00000000..55add91d --- /dev/null +++ b/resources/versions/1.4.json @@ -0,0 +1,153 @@ +{ + "id": "1.4", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2012-11-19T00:00:00+02:00", + "type": "snapshot", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.5.1.json b/resources/versions/1.5.1.json new file mode 100644 index 00000000..e01dd84d --- /dev/null +++ b/resources/versions/1.5.1.json @@ -0,0 +1,153 @@ +{ + "id": "1.5.1", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2013-03-20T12:00:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.5.2.json b/resources/versions/1.5.2.json new file mode 100644 index 00000000..6c72467b --- /dev/null +++ b/resources/versions/1.5.2.json @@ -0,0 +1,153 @@ +{ + "id": "1.5.2", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2013-04-25T17:45:00+02:00", + "type": "release", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} diff --git a/resources/versions/1.5.json b/resources/versions/1.5.json new file mode 100644 index 00000000..d86dbdb1 --- /dev/null +++ b/resources/versions/1.5.json @@ -0,0 +1,153 @@ +{ + "id": "1.5", + "time": "2013-08-06T13:00:00+02:00", + "releaseTime": "2013-03-07T00:00:00+02:00", + "type": "snapshot", + "minecraftArguments": "${auth_player_name} ${auth_session} --gameDir ${game_directory} --assetsDir ${game_assets}", + "minimumLauncherVersion": 4, + "libraries": [ + { + "name": "net.minecraft:launchwrapper:1.5" + }, + { + "name": "net.sf.jopt-simple:jopt-simple:4.5" + }, + { + "name": "org.ow2.asm:asm-all:4.1" + }, + { + "name": "net.java.jinput:jinput:2.0.5" + }, + { + "name": "net.java.jutils:jutils:1.0.0" + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "rules": [ + { + "action": "allow", + "os": { + "name": "osx", + "version": "^10\\.5\\.\\d$" + } + } + ] + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + }, + { + "name": "net.java.jinput:jinput-platform:2.0.5", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows", + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + } + } + ], + "mainClass": "net.minecraft.launchwrapper.Launch" +} -- cgit v1.2.3