LiteLoader support
This commit is contained in:
		| @@ -356,6 +356,8 @@ logic/OpSys.h | ||||
| logic/OpSys.cpp | ||||
| logic/ForgeInstaller.h | ||||
| logic/ForgeInstaller.cpp | ||||
| logic/LiteLoaderInstaller.h | ||||
| logic/LiteLoaderInstaller.cpp | ||||
|  | ||||
| # Nostalgia | ||||
| logic/NostalgiaInstance.h | ||||
|   | ||||
| @@ -38,6 +38,7 @@ | ||||
| #include "logic/EnabledItemFilter.h" | ||||
| #include "logic/lists/ForgeVersionList.h" | ||||
| #include "logic/ForgeInstaller.h" | ||||
| #include "logic/LiteLoaderInstaller.h" | ||||
|  | ||||
| OneSixModEditDialog::OneSixModEditDialog(OneSixInstance *inst, QWidget *parent) | ||||
| 	: QDialog(parent), ui(new Ui::OneSixModEditDialog), m_inst(inst) | ||||
| @@ -204,6 +205,15 @@ void OneSixModEditDialog::on_forgeBtn_clicked() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void OneSixModEditDialog::on_liteloaderBtn_clicked() | ||||
| { | ||||
| 	LiteLoaderInstaller liteloader; | ||||
| 	if (!liteloader.apply(m_version)) | ||||
| 	{ | ||||
| 		// failure notice | ||||
| 	} | ||||
| } | ||||
|  | ||||
| bool OneSixModEditDialog::loaderListFilter(QKeyEvent *keyEvent) | ||||
| { | ||||
| 	switch (keyEvent->key()) | ||||
|   | ||||
| @@ -44,6 +44,7 @@ slots: | ||||
| 	// Questionable: SettingsDialog doesn't need this for some reason? | ||||
| 	void on_buttonBox_rejected(); | ||||
| 	void on_forgeBtn_clicked(); | ||||
| 	void on_liteloaderBtn_clicked(); | ||||
| 	void on_customizeBtn_clicked(); | ||||
| 	void on_revertBtn_clicked(); | ||||
| 	void updateVersionControls(); | ||||
|   | ||||
| @@ -77,6 +77,13 @@ | ||||
|            </property> | ||||
|           </widget> | ||||
|          </item> | ||||
|          <item> | ||||
|           <widget class="QPushButton" name="liteloaderBtn"> | ||||
|            <property name="text"> | ||||
|             <string>Install LiteLoader</string> | ||||
|            </property> | ||||
|           </widget> | ||||
|          </item> | ||||
|          <item> | ||||
|           <widget class="QPushButton" name="customizeBtn"> | ||||
|            <property name="toolTip"> | ||||
|   | ||||
							
								
								
									
										62
									
								
								logic/LiteLoaderInstaller.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								logic/LiteLoaderInstaller.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| /* Copyright 2013 MultiMC Contributors | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
|  | ||||
| #include "LiteLoaderInstaller.h" | ||||
|  | ||||
| #include "OneSixVersion.h" | ||||
| #include "OneSixLibrary.h" | ||||
|  | ||||
| LiteLoaderInstaller::LiteLoaderInstaller() | ||||
| { | ||||
|  | ||||
| } | ||||
|  | ||||
| bool hasLibrary(const QString &rawName, const QList<std::shared_ptr<OneSixLibrary> > &libs) | ||||
| { | ||||
| 	for (auto lib : libs) | ||||
| 	{ | ||||
| 		if (lib->rawName() == rawName) | ||||
| 		{ | ||||
| 			return true; | ||||
| 		} | ||||
| 	} | ||||
| 	return false; | ||||
| } | ||||
|  | ||||
| bool LiteLoaderInstaller::apply(std::shared_ptr<OneSixVersion> to) | ||||
| { | ||||
| 	to->externalUpdateStart(); | ||||
|  | ||||
| 	if (!hasLibrary("net.minecraft:launchwrapper:1.8", to->libraries)) | ||||
| 	{ | ||||
| 		std::shared_ptr<OneSixLibrary> lib(new OneSixLibrary("net.minecraft:launchwrapper:1.8")); | ||||
| 		lib->finalize(); | ||||
| 		to->libraries.prepend(lib); | ||||
| 	} | ||||
|  | ||||
| 	if (!hasLibrary("com.mumfrey:liteloader:1.6.4", to->libraries)) | ||||
| 	{ | ||||
| 		std::shared_ptr<OneSixLibrary> lib(new OneSixLibrary("com.mumfrey:liteloader:1.6.4")); | ||||
| 		lib->setBaseUrl("http://dl.liteloader.com/versions/"); | ||||
| 		lib->finalize(); | ||||
| 		to->libraries.prepend(lib); | ||||
| 	} | ||||
|  | ||||
| 	to->mainClass = "net.minecraft.launchwrapper.Launch"; | ||||
| 	to->minecraftArguments.append(" --tweakClass com.mumfrey.liteloader.launch.LiteLoaderTweaker"); | ||||
|  | ||||
| 	to->externalUpdateFinish(); | ||||
| 	return to->toOriginalFile(); | ||||
| } | ||||
							
								
								
									
										28
									
								
								logic/LiteLoaderInstaller.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								logic/LiteLoaderInstaller.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| /* Copyright 2013 MultiMC Contributors | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
| #include <QString> | ||||
| #include <memory> | ||||
|  | ||||
| class OneSixVersion; | ||||
|  | ||||
| class LiteLoaderInstaller | ||||
| { | ||||
| public: | ||||
| 	LiteLoaderInstaller(); | ||||
|  | ||||
| 	bool apply(std::shared_ptr<OneSixVersion> to); | ||||
| }; | ||||
| @@ -68,6 +68,12 @@ public: | ||||
| 		m_name = name; | ||||
| 	} | ||||
|  | ||||
| 	/// Returns the raw name field | ||||
| 	QString rawName() const | ||||
| 	{ | ||||
| 		return m_name; | ||||
| 	} | ||||
|  | ||||
| 	QJsonObject toJson(); | ||||
|  | ||||
| 	/** | ||||
|   | ||||
		Reference in New Issue
	
	Block a user