#ifndef LAUNCHER_H
#define LAUNCHER_H

#include <QObject>
#include <QString>
#include <QStringList>
#include <QProcess>
#include <QDir>
#include <QJsonObject>
#include "profile_handler/forge1_12_2.h"

class MainWindow;

class Launcher : public QObject {
    Q_OBJECT
public:
    explicit Launcher(QObject *mainwindow = nullptr);
    ~Launcher();
    void startProcess(QString &username, QString &uuid, QString &access_token);

signals:
    void updateFinished();
private:
    void update();
	void streamingUnpack();

    QProcess *process;
    QObject *mainwindow;
    forge1_12_2 *get_args;
    bool run_status;
    MainWindow *mainWindow;
    QDir app_dir;
    QString client_dir;
	QString OS_type;


	QStringList sync_dirs;
	QStringList sync_files;

	QString selected_profile;
    QString RAM;
    QString java_path;
    QString garbarge_collector;
    QString version;
    QJsonObject json_settings;
    QStringList arguments;
};
#endif
