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(logic)
|
||||
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