// Path: src/main/java/com/superzanti/serversync/RefStrings.java
// public class RefStrings {
//     public static final String MODID = "com.superzanti.serversync";
//     public static final String NAME = "ServerSync";
//     public static final String VERSION = "v4.2.0";
// 
//     public static final String ERROR_TOKEN = "<E>";
//     public static final String DELETE_TOKEN = "<D>";
//     public static final String UPDATE_TOKEN = "<U>";
//     public static final String CLEANUP_TOKEN = "<C>";
//     public static final String IGNORE_TOKEN = "<I>";
// }
// 
// Path: src/main/java/com/superzanti/serversync/config/SyncConfig.java
// public class SyncConfig {
//     public final EConfigType configType;
// 
//     // COMMON //////////////////////////////
//     public String SERVER_IP = "127.0.0.1";
//     public List<String> FILE_IGNORE_LIST = Arrays.asList("**/serversync-*.jar", "**/serversync-*.cfg");
//     public List<String> CONFIG_INCLUDE_LIST = new ArrayList<>();
//     public Locale LOCALE = Locale.getDefault();
//     public ETheme THEME = ETheme.BLUE_YELLOW;
//     public int BUFFER_SIZE = 1024 * 64;
//     ////////////////////////////////////////
// 
//     // SERVER //////////////////////////////
//     public int SERVER_PORT = 38067;
//     public Boolean PUSH_CLIENT_MODS = false;
//     public List<String> FILE_INCLUDE_LIST = Collections.singletonList("mods/**");
//     public List<DirectoryEntry> DIRECTORY_INCLUDE_LIST = Collections.singletonList(new DirectoryEntry(
//         "mods",
//         EDirectoryMode.mirror
//     ));
//     public List<FileRedirect> REDIRECT_FILES_LIST = new ArrayList<>();
//     public int SYNC_MODE = 2;
//     ////////////////////////////////////////
// 
//     // CLIENT //////////////////////////////
//     public Boolean REFUSE_CLIENT_MODS = false;
//     ////////////////////////////////////////
// 
//     private static SyncConfig singleton;
// 
//     public SyncConfig() {
//         this.configType = EConfigType.COMMON;
//     }
// 
//     public SyncConfig(EConfigType type) {
//         configType = type;
//     }
// 
//     public static SyncConfig getConfig() {
//         if (SyncConfig.singleton == null) {
//             if (ServerSync.MODE == EServerMode.SERVER) {
//                 SyncConfig.singleton = new SyncConfig(EConfigType.SERVER);
//             }
//             if (ServerSync.MODE == EServerMode.CLIENT) {
//                 SyncConfig.singleton = new SyncConfig(EConfigType.CLIENT);
//             }
//         }
//         return SyncConfig.singleton;
//     }
// 
//     public void save() throws IOException {
//         ConfigLoader.save(configType);
//     }
// }


import com.superzanti.serversync.RefStrings;
import com.superzanti.serversync.config.SyncConfig;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.stage.Stage;
package com.superzanti.serversync.GUIJavaFX;


// Main class of the GUI, launch the window
public class Gui_JavaFX extends Application {

    private static StackMainMenu root = new StackMainMenu();

    public static StackMainMenu getStackMainPane() {
        if (root == null) {
            root = new StackMainMenu();
        }
        return root;
    }

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
// Path: src/main/java/com/superzanti/serversync/RefStrings.java
// public class RefStrings {
//     public static final String MODID = "com.superzanti.serversync";
//     public static final String NAME = "ServerSync";
//     public static final String VERSION = "v4.2.0";
// 
//     public static final String ERROR_TOKEN = "<E>";
//     public static final String DELETE_TOKEN = "<D>";
//     public static final String UPDATE_TOKEN = "<U>";
//     public static final String CLEANUP_TOKEN = "<C>";
//     public static final String IGNORE_TOKEN = "<I>";
// }
// 
// Path: src/main/java/com/superzanti/serversync/config/SyncConfig.java
// public class SyncConfig {
//     public final EConfigType configType;
// 
//     // COMMON //////////////////////////////
//     public String SERVER_IP = "127.0.0.1";
//     public List<String> FILE_IGNORE_LIST = Arrays.asList("**/serversync-*.jar", "**/serversync-*.cfg");
//     public List<String> CONFIG_INCLUDE_LIST = new ArrayList<>();
//     public Locale LOCALE = Locale.getDefault();
//     public ETheme THEME = ETheme.BLUE_YELLOW;
//     public int BUFFER_SIZE = 1024 * 64;
//     ////////////////////////////////////////
// 
//     // SERVER //////////////////////////////
//     public int SERVER_PORT = 38067;
//     public Boolean PUSH_CLIENT_MODS = false;
//     public List<String> FILE_INCLUDE_LIST = Collections.singletonList("mods/**");
//     public List<DirectoryEntry> DIRECTORY_INCLUDE_LIST = Collections.singletonList(new DirectoryEntry(
//         "mods",
//         EDirectoryMode.mirror
//     ));
//     public List<FileRedirect> REDIRECT_FILES_LIST = new ArrayList<>();
//     public int SYNC_MODE = 2;
//     ////////////////////////////////////////
// 
//     // CLIENT //////////////////////////////
//     public Boolean REFUSE_CLIENT_MODS = false;
//     ////////////////////////////////////////
// 
//     private static SyncConfig singleton;
// 
//     public SyncConfig() {
//         this.configType = EConfigType.COMMON;
//     }
// 
//     public SyncConfig(EConfigType type) {
//         configType = type;
//     }
// 
//     public static SyncConfig getConfig() {
//         if (SyncConfig.singleton == null) {
//             if (ServerSync.MODE == EServerMode.SERVER) {
//                 SyncConfig.singleton = new SyncConfig(EConfigType.SERVER);
//             }
//             if (ServerSync.MODE == EServerMode.CLIENT) {
//                 SyncConfig.singleton = new SyncConfig(EConfigType.CLIENT);
//             }
//         }
//         return SyncConfig.singleton;
//     }
// 
//     public void save() throws IOException {
//         ConfigLoader.save(configType);
//     }
// }


// Path: src/main/java/com/superzanti/serversync/GUIJavaFX/Gui_JavaFX.java
import com.superzanti.serversync.RefStrings;
import com.superzanti.serversync.config.SyncConfig;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.stage.Stage;

package com.superzanti.serversync.GUIJavaFX;


// Main class of the GUI, launch the window
public class Gui_JavaFX extends Application {

    private static StackMainMenu root = new StackMainMenu();

    public static StackMainMenu getStackMainPane() {
        if (root == null) {
            root = new StackMainMenu();
        }
        return root;
    }

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        root.setStyle(SyncConfig.getConfig().THEME.toString());