From fcd4a482f759cd58ee319a51082d0146b7e426e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 9 Apr 2016 23:51:01 +0200 Subject: NOISSUE tiny skeleton for a CLI wonko client --- wonkoclient/WonkoClient.cpp | 85 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 wonkoclient/WonkoClient.cpp (limited to 'wonkoclient/WonkoClient.cpp') diff --git a/wonkoclient/WonkoClient.cpp b/wonkoclient/WonkoClient.cpp new file mode 100644 index 00000000..83efb285 --- /dev/null +++ b/wonkoclient/WonkoClient.cpp @@ -0,0 +1,85 @@ +// +// Created by robotbrain on 3/27/16. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include "WonkoClient.h" +#include + + +WonkoClient &WonkoClient::getInstance() { + static WonkoClient instance; + return instance; +} + +void WonkoClient::registerLists() { + ENV.initHttpMetaCache(); + auto mcList = std::make_shared(); + ENV.registerVersionList("net.minecraft", mcList); + runTask(mcList->getLoadTask()); + auto llList = std::make_shared(); + ENV.registerVersionList("com.mumfrey.liteloader", llList); + runTask(llList->getLoadTask()); + auto forgeList = std::make_shared(); + ENV.registerVersionList("net.minecraftforge", forgeList); + runTask(forgeList->getLoadTask()); + auto lwjglList = std::make_shared(); + ENV.registerVersionList("org.lwjgl.legacy", lwjglList); + runTask(lwjglList->getLoadTask()); + auto javaList = std::make_shared(); + ENV.registerVersionList("com.java", javaList); +} + +WonkoClient::WonkoClient() { + m_settings.reset(new INISettingsObject("multimc.cfg", this)); + m_instanceList.reset(new InstanceList(m_settings, ".", this)); +} + +void WonkoClient::runTask(Task *pTask) { + if (pTask == nullptr) + return; + QEventLoop loop; + QObject::connect(pTask, &Task::finished, &loop, &QEventLoop::quit); + pTask->start(); + loop.exec(); + delete pTask; +} + +void WonkoClient::initGlobalSettings() +{ + m_settings->registerSetting("ShowConsole", true); + m_settings->registerSetting("RaiseConsole", true); + m_settings->registerSetting("AutoCloseConsole", true); + m_settings->registerSetting("LogPrePostOutput", true); + // Window Size + m_settings->registerSetting({"LaunchMaximized", "MCWindowMaximize"}, false); + m_settings->registerSetting({"MinecraftWinWidth", "MCWindowWidth"}, 854); + m_settings->registerSetting({"MinecraftWinHeight", "MCWindowHeight"}, 480); + + // Memory + m_settings->registerSetting({"MinMemAlloc", "MinMemoryAlloc"}, 512); + m_settings->registerSetting({"MaxMemAlloc", "MaxMemoryAlloc"}, 1024); + m_settings->registerSetting("PermGen", 128); + + // Java Settings + m_settings->registerSetting("JavaPath", ""); + m_settings->registerSetting("JavaTimestamp", 0); + m_settings->registerSetting("JavaVersion", ""); + m_settings->registerSetting("LastHostname", ""); + m_settings->registerSetting("JavaDetectionHack", ""); + m_settings->registerSetting("JvmArgs", ""); + + // Wrapper command for launch + m_settings->registerSetting("WrapperCommand", ""); + + // Custom Commands + m_settings->registerSetting({"PreLaunchCommand", "PreLaunchCmd"}, ""); + m_settings->registerSetting({"PostExitCommand", "PostExitCmd"}, ""); +} -- cgit v1.2.3