From 6d62b85c10be69324746952e017615d47567b1d5 Mon Sep 17 00:00:00 2001 From: OpexHunter Date: Tue, 11 Feb 2025 22:55:50 +0300 Subject: [PATCH] modules update --- src/app/CMakeLists.txt | 2 +- src/app/launcher/launcher.cpp | 72 +++++++++---------- src/app/launcher/launcher.h | 23 +++--- .../forge1_12_2.cpp} | 8 +-- .../forge1_12_2.h} | 10 +-- src/app/ui/mainwindow.cpp | 44 +----------- src/app/ui/mainwindow.h | 10 +-- 7 files changed, 59 insertions(+), 110 deletions(-) rename src/app/launcher/{forge1.12.2/getArgs.cpp => profile_handler/forge1_12_2.cpp} (96%) rename src/app/launcher/{forge1.12.2/getArgs.h => profile_handler/forge1_12_2.h} (67%) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index f109814..1e0b25b 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -2,7 +2,7 @@ qt_add_executable(PunkLauncher main.cpp ui/mainwindow.cpp launcher/launcher.cpp - launcher/forge1.12.2/getArgs.cpp + launcher/profile_handler/forge1_12_2.cpp backend/backend.cpp settings/settings.cpp ../resources/resources.qrc diff --git a/src/app/launcher/launcher.cpp b/src/app/launcher/launcher.cpp index c846921..d360846 100644 --- a/src/app/launcher/launcher.cpp +++ b/src/app/launcher/launcher.cpp @@ -7,45 +7,47 @@ #include #include #include +#include -#include "forge1.12.2/getArgs.h" +#include "profile_handler/forge1_12_2.h" +#include "../ui/mainwindow.h" +#include "../../resources/ui_mainwindow.h" -Launcher::Launcher(QObject *mainwindow) : QObject(mainwindow), process(new QProcess(this)), mainwindow(mainwindow), get_args(new getArgs()) { - // Подключение сигналов для отладки - /* - connect(process, &QProcess::readyReadStandardOutput, [this]() { - qDebug() << "Standard Output: " << process->readAllStandardOutput(); - }); - - connect(process, &QProcess::readyReadStandardError, [this]() { - qDebug() << "Standard Error: " << process->readAllStandardError(); - }); - - connect(process, QOverload::of(&QProcess::finished), - [this](int exitCode, QProcess::ExitStatus status) { - qDebug() << "Process finished with exit code:" << exitCode - << "and status:" << status; - }); - */ +Launcher::Launcher(QObject *mainwindow) : QObject(mainwindow), process(new QProcess(this)), mainwindow(mainwindow), get_args(new forge1_12_2()) { } + Launcher::~Launcher() { delete process; } -void Launcher::startProcess( - QString &workingDir, - QString &executablePath, - QString &RAM, - QString &username, - QString &uuid, - QString &access_token, - QString garbarge_collector) { - QStringList arguments = get_args->getCrossPlatformArgs(RAM, username, uuid, access_token, garbarge_collector); - process->setWorkingDirectory(workingDir); - process->start(executablePath, arguments); +void Launcher::startProcess(QString &username, QString &uuid, QString &access_token) { + // Подготовка параметров запуска + MainWindow *mainWindow = qobject_cast(mainwindow); + QString selected_profile = mainWindow->ui->selected_profile->currentText(); + QDir exe_dir(QCoreApplication::applicationDirPath()); + client_dir = exe_dir.absolutePath() + "/" + selected_profile; + json_settings = mainWindow->settings->loadFromJson(selected_profile); + java_path = json_settings["java_path"].toString(); + RAM = json_settings["RAM"].toString(); + garbarge_collector = json_settings["garbarge_collector"].toString(); + + // + // Выбор профиля + // + if (selected_profile == "CyberExtrieme") { + arguments = get_args->getCrossPlatformArgs(RAM, username, uuid, access_token, garbarge_collector); + java_path = java_path.isEmpty() ? + exe_dir.absolutePath() + "/java/zulu8.84.0.15-ca-jre8.0.442-linux_x64/bin/java" : java_path; + RAM = RAM.isEmpty() ? "4096M" : RAM; + garbarge_collector = garbarge_collector.isEmpty() ? "default_collector" : garbarge_collector; + } + + // Запуск процесса + process->setWorkingDirectory(client_dir); + process->start(java_path, arguments); if (!process->waitForStarted()) { qDebug() << "Failed to start process"; @@ -53,17 +55,11 @@ void Launcher::startProcess( return; } - QWidget *mainwindowWidget = qobject_cast(mainwindow); - // Скрытие лаунчера при запуске + // Скрытие лаунчера connect(process, QOverload::of(&QProcess::finished), - [mainwindowWidget](int, QProcess::ExitStatus) { mainwindowWidget->show(); }); - - if (mainwindowWidget) { - mainwindowWidget->hide(); - } else { - qDebug() << "Parent object is not a QWidget."; - } + [mainWindow](int, QProcess::ExitStatus) { mainWindow->show(); }); + mainWindow->hide(); qDebug() << "Process started successfully"; } diff --git a/src/app/launcher/launcher.h b/src/app/launcher/launcher.h index 0474743..dddfedd 100644 --- a/src/app/launcher/launcher.h +++ b/src/app/launcher/launcher.h @@ -6,8 +6,9 @@ #include #include #include +#include -#include "forge1.12.2/getArgs.h" +#include "profile_handler/forge1_12_2.h" class Launcher : public QObject { Q_OBJECT @@ -15,20 +16,20 @@ class Launcher : public QObject { public: explicit Launcher(QObject *mainwindow = nullptr); ~Launcher(); - - void startProcess( - QString &workingDir, - QString &executablePath, - QString &RAM, - QString &username, - QString &uuid, - QString &access_token, - QString garbarge_collector); + void startProcess(QString &username, QString &uuid, QString &access_token); private: QProcess *process; QObject *mainwindow; - getArgs *get_args; + forge1_12_2 *get_args; + + // Переменные для запуска клиента + QString client_dir; + QString RAM; + QString java_path; + QString garbarge_collector; + QJsonObject json_settings; + QStringList arguments; }; #endif diff --git a/src/app/launcher/forge1.12.2/getArgs.cpp b/src/app/launcher/profile_handler/forge1_12_2.cpp similarity index 96% rename from src/app/launcher/forge1.12.2/getArgs.cpp rename to src/app/launcher/profile_handler/forge1_12_2.cpp index 6fdaf16..f6e1480 100644 --- a/src/app/launcher/forge1.12.2/getArgs.cpp +++ b/src/app/launcher/profile_handler/forge1_12_2.cpp @@ -1,4 +1,4 @@ -#include "getArgs.h" +#include "forge1_12_2.h" #include #include @@ -9,13 +9,13 @@ #include -getArgs::getArgs() { +forge1_12_2::forge1_12_2() { } -getArgs::~getArgs() { +forge1_12_2::~forge1_12_2() { } -QStringList getArgs::getCrossPlatformArgs(QString &RAM, QString &username, QString &uuid, QString &access_token, QString &garbarge_collector) { +QStringList forge1_12_2::getCrossPlatformArgs(QString &RAM, QString &username, QString &uuid, QString &access_token, QString &garbarge_collector) { QStringList arguments; arguments << "-Djava.library.path=../versions/1.12.2-forge-14.23.5.2860/natives" diff --git a/src/app/launcher/forge1.12.2/getArgs.h b/src/app/launcher/profile_handler/forge1_12_2.h similarity index 67% rename from src/app/launcher/forge1.12.2/getArgs.h rename to src/app/launcher/profile_handler/forge1_12_2.h index 44b0713..9ef8ee3 100644 --- a/src/app/launcher/forge1.12.2/getArgs.h +++ b/src/app/launcher/profile_handler/forge1_12_2.h @@ -1,5 +1,5 @@ -#ifndef GETARGS_H -#define GETARGS_H +#ifndef FORGE1_12_2_H +#define FORGE1_12_2_H #include #include @@ -8,12 +8,12 @@ #include -class getArgs : public QObject { +class forge1_12_2 : public QObject { Q_OBJECT public: - explicit getArgs(); - ~getArgs(); + explicit forge1_12_2(); + ~forge1_12_2(); QStringList getCrossPlatformArgs(QString &RAM, QString &username, QString &uuid, QString &access_token, QString &garbarge_collector); diff --git a/src/app/ui/mainwindow.cpp b/src/app/ui/mainwindow.cpp index 5ec6775..074a347 100644 --- a/src/app/ui/mainwindow.cpp +++ b/src/app/ui/mainwindow.cpp @@ -47,15 +47,6 @@ MainWindow::MainWindow(QWidget *parent) : } }); - /* - connect(process, &QProcess::readyReadStandardOutput, this, [this]() { - qDebug() << "Standard Output: " << process->readAllStandardOutput(); - }); - - connect(process, &QProcess::readyReadStandardError, this, [this]() { - qDebug() << "Standard Error: " << process->readAllStandardError(); - }); - */ } @@ -178,38 +169,5 @@ void MainWindow::on_settings_apply_btn_clicked() { void MainWindow::on_start_btn_clicked() { - // Обновление переменных запуска клиента - QString selected_profile = ui->selected_profile->currentText(); - QDir exe_dir(QCoreApplication::applicationDirPath()); - client_dir = exe_dir.absolutePath() + "/" + selected_profile; - - - json_settings = settings->loadFromJson(selected_profile); - java_path = json_settings["java_path"].toString(); - RAM = json_settings["RAM"].toString(); - garbarge_collector = json_settings["garbarge_collector"].toString(); - - // Значения по умолчанию - if (selected_profile == "CyberExtrieme") { - java_path = java_path.isEmpty() ? - exe_dir.absolutePath() + "/java/zing24.12.0.0-6-jre8.0.432/bin/java" : java_path; - RAM = RAM.isEmpty() ? - "4096M" : RAM; - garbarge_collector = garbarge_collector.isEmpty() ? - "default_collector" : garbarge_collector; - } - - - - // Запуск клиента - launcher->startProcess( - this->client_dir, - this->java_path, - this->RAM, - this->username, - this->uuid, - this->access_token, - this->garbarge_collector - ); - + launcher->startProcess(this->username, this->uuid, this->access_token); } diff --git a/src/app/ui/mainwindow.h b/src/app/ui/mainwindow.h index 6a52e1d..2e54da9 100644 --- a/src/app/ui/mainwindow.h +++ b/src/app/ui/mainwindow.h @@ -23,6 +23,8 @@ class MainWindow : public QMainWindow { public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); + Settings *settings; + Ui::MainWindow *ui; protected: void mousePressEvent(QMouseEvent *event) override; @@ -40,23 +42,15 @@ private slots: private: - Ui::MainWindow *ui; QProcess *process; Launcher *launcher; Backend *backend; - Settings *settings; bool isDragging = false; QPoint dragStartPosition; QString username; QString uuid; QString access_token; - - // Переменные для запуска клиента - QString client_dir; - QString RAM; - QString java_path; - QString garbarge_collector; QJsonObject json_settings; }; #endif