NOISSUE tiny skeleton for a CLI wonko client
This commit is contained in:
parent
00e5968bd2
commit
fcd4a482f7
@ -119,3 +119,4 @@ include(Coverity)
|
|||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
add_subdirectory(logic)
|
add_subdirectory(logic)
|
||||||
add_subdirectory(application)
|
add_subdirectory(application)
|
||||||
|
add_subdirectory(wonkoclient)
|
||||||
|
10
wonkoclient/CMakeLists.txt
Normal file
10
wonkoclient/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
project(wonkoclient)
|
||||||
|
|
||||||
|
SET( SRC_FILES
|
||||||
|
main.cpp
|
||||||
|
WonkoClient.cpp
|
||||||
|
WonkoClient.h
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(WonkoClient ${SRC_FILES})
|
||||||
|
target_link_libraries(WonkoClient MultiMC_logic)
|
85
wonkoclient/WonkoClient.cpp
Normal file
85
wonkoclient/WonkoClient.cpp
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
//
|
||||||
|
// Created by robotbrain on 3/27/16.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <minecraft/MinecraftVersionList.h>
|
||||||
|
#include <Env.h>
|
||||||
|
#include <minecraft/liteloader/LiteLoaderVersionList.h>
|
||||||
|
#include <minecraft/forge/ForgeVersionList.h>
|
||||||
|
#include <minecraft/legacy/LwjglVersionList.h>
|
||||||
|
#include <java/JavaInstallList.h>
|
||||||
|
#include <settings/INISettingsObject.h>
|
||||||
|
#include <resources/Resource.h>
|
||||||
|
#include "WonkoClient.h"
|
||||||
|
#include <icons/IconList.h>
|
||||||
|
|
||||||
|
|
||||||
|
WonkoClient &WonkoClient::getInstance() {
|
||||||
|
static WonkoClient instance;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WonkoClient::registerLists() {
|
||||||
|
ENV.initHttpMetaCache();
|
||||||
|
auto mcList = std::make_shared<MinecraftVersionList>();
|
||||||
|
ENV.registerVersionList("net.minecraft", mcList);
|
||||||
|
runTask(mcList->getLoadTask());
|
||||||
|
auto llList = std::make_shared<LiteLoaderVersionList>();
|
||||||
|
ENV.registerVersionList("com.mumfrey.liteloader", llList);
|
||||||
|
runTask(llList->getLoadTask());
|
||||||
|
auto forgeList = std::make_shared<ForgeVersionList>();
|
||||||
|
ENV.registerVersionList("net.minecraftforge", forgeList);
|
||||||
|
runTask(forgeList->getLoadTask());
|
||||||
|
auto lwjglList = std::make_shared<LWJGLVersionList>();
|
||||||
|
ENV.registerVersionList("org.lwjgl.legacy", lwjglList);
|
||||||
|
runTask(lwjglList->getLoadTask());
|
||||||
|
auto javaList = std::make_shared<JavaInstallList>();
|
||||||
|
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"}, "");
|
||||||
|
}
|
36
wonkoclient/WonkoClient.h
Normal file
36
wonkoclient/WonkoClient.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// Created by robotbrain on 3/27/16.
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <InstanceList.h>
|
||||||
|
|
||||||
|
#if defined(MMCC)
|
||||||
|
#undef MMCC
|
||||||
|
#endif
|
||||||
|
#define MMCC (WonkoClient::getInstance())
|
||||||
|
|
||||||
|
class WonkoClient : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
private:
|
||||||
|
WonkoClient();
|
||||||
|
|
||||||
|
public:
|
||||||
|
static WonkoClient &getInstance();
|
||||||
|
|
||||||
|
void registerLists();
|
||||||
|
void initGlobalSettings();
|
||||||
|
|
||||||
|
std::shared_ptr<InstanceList> instances() const {
|
||||||
|
return m_instanceList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<InstanceList> m_instanceList;
|
||||||
|
std::shared_ptr<SettingsObject> m_settings;
|
||||||
|
|
||||||
|
void runTask(Task *pTask);
|
||||||
|
};
|
29
wonkoclient/main.cpp
Normal file
29
wonkoclient/main.cpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// Created by robotbrain on 3/26/16.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "WonkoClient.h"
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QtWidgets/QInputDialog>
|
||||||
|
#include <QtGui/QDesktopServices>
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
if (a.arguments().contains("-d"))
|
||||||
|
{
|
||||||
|
int i = a.arguments().lastIndexOf("-d") + 1;
|
||||||
|
if (i < a.arguments().length())
|
||||||
|
{
|
||||||
|
QDir dir = QDir::current();
|
||||||
|
dir.cd(a.arguments()[i]);
|
||||||
|
QDir::setCurrent(dir.absolutePath());
|
||||||
|
qDebug() << "Using " << dir.absolutePath();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MMCC.initGlobalSettings();
|
||||||
|
MMCC.registerLists();
|
||||||
|
return a.exec();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user