Исходник AutoCfg в Expensive 3.1

Начинающий
Статус
Оффлайн
Регистрация
24 Авг 2022
Сообщения
165
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

И так, этот код включает в себя автокфг + авто сохранение если вы вышли полностью с игры, чтобы кфг загружался сделайте кфг с названием autocfg.
Вот код:


Java:
public class ConfigStorage {
    public final Logger logger = Logger.getLogger(ConfigStorage.class.getName());

    public final File CONFIG_DIR = new File(Minecraft.getInstance().gameDir, "\\НАЗВАНИЕЧИТА\\configs");
    public final File AUTOCFG_DIR = new File(CONFIG_DIR, "");
    public final File LAST_USED_CONFIG_FILE = new File(CONFIG_DIR, "last_used_config.txt");

    public final JsonParser jsonParser = new JsonParser();

    private String lastUsedConfig;

    public ConfigStorage() {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                saveAllConfigurations();
                saveLastUsedConfig();
                logger.log(Level.INFO, "All configurations saved successfully.");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to save configurations during shutdown.", e);
            }
        }));
        
        loadLastUsedConfig();
        if (lastUsedConfig != null) {
            loadConfiguration(lastUsedConfig);
        }
    }

    public void init() throws IOException {
        setupFolder();
    }

    public void setupFolder() {
        if (!CONFIG_DIR.exists()) {
            CONFIG_DIR.mkdirs();
        } else if (AUTOCFG_DIR.exists()) {
            loadConfiguration("autocfg");
            logger.log(Level.SEVERE, "Load system configuration...");
        } else {
            logger.log(Level.SEVERE, "Creating system configuration...");
            try {
                AUTOCFG_DIR.createNewFile();
                logger.log(Level.SEVERE, "Created!");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to create system configuration file", e);
            }
        }
    }

    public boolean isEmpty() {
        return getConfigs().isEmpty();
    }

    public List<Config> getConfigs() {
        List<Config> configs = new ArrayList<>();
        File[] configFiles = CONFIG_DIR.listFiles();

        if (configFiles != null) {
            for (File configFile : configFiles) {
                if (configFile.isFile() && configFile.getName().endsWith(".cfg")) {
                    String configName = configFile.getName().replace(".cfg", "");
                    Config config = findConfig(configName);
                    if (config != null) {
                        configs.add(config);
                    }
                }
            }
        }

        return configs;
    }

    public void loadConfiguration(String configuration) {
        lastUsedConfig = configuration;
        Config config = findConfig(configuration);
        try {
            FileReader reader = new FileReader(config.getFile());
            JsonObject object = (JsonObject) jsonParser.parse(reader);
            config.loadConfig(object);
        } catch (FileNotFoundException e) {
            logger.log(Level.WARNING, "Not Found Exception", e);
        } catch (NullPointerException pointerException) {
            logger.log(Level.WARNING, "Fatal error in Config!", pointerException);
        }
    }

    public void saveConfiguration(String configuration) {
        Config config = new Config(configuration);
        String contentPrettyPrint = new GsonBuilder().setPrettyPrinting().create().toJson(config.saveConfig());
        try {
            FileWriter writer = new FileWriter(config.getFile());
            writer.write(contentPrettyPrint);
            writer.close();
        } catch (IOException e) {
            logger.log(Level.WARNING, "File not found!", e);
        } catch (NullPointerException e) {
            logger.log(Level.WARNING, "Fatal Error in Config!", e);
        }
    }

    public void saveAllConfigurations() throws IOException {
        for (Config config : getConfigs()) {
            saveConfiguration(config.getName());
        }
    }

    public Config findConfig(String configName) {
        if (configName == null) return null;
        if (new File(CONFIG_DIR, configName + ".cfg").exists())
            return new Config(configName);
        return null;
    }

    private void saveLastUsedConfig() {
        try (FileWriter writer = new FileWriter(LAST_USED_CONFIG_FILE)) {
            writer.write(lastUsedConfig);
        } catch (IOException e) {
            logger.log(Level.SEVERE, "Failed to save last used configuration.", e);
        }
    }

    private void loadLastUsedConfig() {
        if (LAST_USED_CONFIG_FILE.exists()) {
            try (BufferedReader reader = new BufferedReader(new FileReader(LAST_USED_CONFIG_FILE))) {
                lastUsedConfig = reader.readLine();
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to load last used configuration.", e);
            }
        }
    }
}
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2024
Сообщения
852
Реакции[?]
7
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
И так, этот код включает в себя автокфг + авто сохранение если вы вышли полностью с игры, чтобы кфг загружался сделайте кфг с названием autocfg.
Вот код:


Java:
public class ConfigStorage {
    public final Logger logger = Logger.getLogger(ConfigStorage.class.getName());

    public final File CONFIG_DIR = new File(Minecraft.getInstance().gameDir, "\\НАЗВАНИЕЧИТА\\configs");
    public final File AUTOCFG_DIR = new File(CONFIG_DIR, "");
    public final File LAST_USED_CONFIG_FILE = new File(CONFIG_DIR, "last_used_config.txt");

    public final JsonParser jsonParser = new JsonParser();

    private String lastUsedConfig;

    public ConfigStorage() {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                saveAllConfigurations();
                saveLastUsedConfig();
                logger.log(Level.INFO, "All configurations saved successfully.");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to save configurations during shutdown.", e);
            }
        }));
       
        loadLastUsedConfig();
        if (lastUsedConfig != null) {
            loadConfiguration(lastUsedConfig);
        }
    }

    public void init() throws IOException {
        setupFolder();
    }

    public void setupFolder() {
        if (!CONFIG_DIR.exists()) {
            CONFIG_DIR.mkdirs();
        } else if (AUTOCFG_DIR.exists()) {
            loadConfiguration("autocfg");
            logger.log(Level.SEVERE, "Load system configuration...");
        } else {
            logger.log(Level.SEVERE, "Creating system configuration...");
            try {
                AUTOCFG_DIR.createNewFile();
                logger.log(Level.SEVERE, "Created!");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to create system configuration file", e);
            }
        }
    }

    public boolean isEmpty() {
        return getConfigs().isEmpty();
    }

    public List<Config> getConfigs() {
        List<Config> configs = new ArrayList<>();
        File[] configFiles = CONFIG_DIR.listFiles();

        if (configFiles != null) {
            for (File configFile : configFiles) {
                if (configFile.isFile() && configFile.getName().endsWith(".cfg")) {
                    String configName = configFile.getName().replace(".cfg", "");
                    Config config = findConfig(configName);
                    if (config != null) {
                        configs.add(config);
                    }
                }
            }
        }

        return configs;
    }

    public void loadConfiguration(String configuration) {
        lastUsedConfig = configuration;
        Config config = findConfig(configuration);
        try {
            FileReader reader = new FileReader(config.getFile());
            JsonObject object = (JsonObject) jsonParser.parse(reader);
            config.loadConfig(object);
        } catch (FileNotFoundException e) {
            logger.log(Level.WARNING, "Not Found Exception", e);
        } catch (NullPointerException pointerException) {
            logger.log(Level.WARNING, "Fatal error in Config!", pointerException);
        }
    }

    public void saveConfiguration(String configuration) {
        Config config = new Config(configuration);
        String contentPrettyPrint = new GsonBuilder().setPrettyPrinting().create().toJson(config.saveConfig());
        try {
            FileWriter writer = new FileWriter(config.getFile());
            writer.write(contentPrettyPrint);
            writer.close();
        } catch (IOException e) {
            logger.log(Level.WARNING, "File not found!", e);
        } catch (NullPointerException e) {
            logger.log(Level.WARNING, "Fatal Error in Config!", e);
        }
    }

    public void saveAllConfigurations() throws IOException {
        for (Config config : getConfigs()) {
            saveConfiguration(config.getName());
        }
    }

    public Config findConfig(String configName) {
        if (configName == null) return null;
        if (new File(CONFIG_DIR, configName + ".cfg").exists())
            return new Config(configName);
        return null;
    }

    private void saveLastUsedConfig() {
        try (FileWriter writer = new FileWriter(LAST_USED_CONFIG_FILE)) {
            writer.write(lastUsedConfig);
        } catch (IOException e) {
            logger.log(Level.SEVERE, "Failed to save last used configuration.", e);
        }
    }

    private void loadLastUsedConfig() {
        if (LAST_USED_CONFIG_FILE.exists()) {
            try (BufferedReader reader = new BufferedReader(new FileReader(LAST_USED_CONFIG_FILE))) {
                lastUsedConfig = reader.readLine();
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to load last used configuration.", e);
            }
        }
    }
}
за сохранения спс
И так, этот код включает в себя автокфг + авто сохранение если вы вышли полностью с игры, чтобы кфг загружался сделайте кфг с названием autocfg.
Вот код:


Java:
public class ConfigStorage {
    public final Logger logger = Logger.getLogger(ConfigStorage.class.getName());

    public final File CONFIG_DIR = new File(Minecraft.getInstance().gameDir, "\\НАЗВАНИЕЧИТА\\configs");
    public final File AUTOCFG_DIR = new File(CONFIG_DIR, "");
    public final File LAST_USED_CONFIG_FILE = new File(CONFIG_DIR, "last_used_config.txt");

    public final JsonParser jsonParser = new JsonParser();

    private String lastUsedConfig;

    public ConfigStorage() {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                saveAllConfigurations();
                saveLastUsedConfig();
                logger.log(Level.INFO, "All configurations saved successfully.");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to save configurations during shutdown.", e);
            }
        }));
       
        loadLastUsedConfig();
        if (lastUsedConfig != null) {
            loadConfiguration(lastUsedConfig);
        }
    }

    public void init() throws IOException {
        setupFolder();
    }

    public void setupFolder() {
        if (!CONFIG_DIR.exists()) {
            CONFIG_DIR.mkdirs();
        } else if (AUTOCFG_DIR.exists()) {
            loadConfiguration("autocfg");
            logger.log(Level.SEVERE, "Load system configuration...");
        } else {
            logger.log(Level.SEVERE, "Creating system configuration...");
            try {
                AUTOCFG_DIR.createNewFile();
                logger.log(Level.SEVERE, "Created!");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to create system configuration file", e);
            }
        }
    }

    public boolean isEmpty() {
        return getConfigs().isEmpty();
    }

    public List<Config> getConfigs() {
        List<Config> configs = new ArrayList<>();
        File[] configFiles = CONFIG_DIR.listFiles();

        if (configFiles != null) {
            for (File configFile : configFiles) {
                if (configFile.isFile() && configFile.getName().endsWith(".cfg")) {
                    String configName = configFile.getName().replace(".cfg", "");
                    Config config = findConfig(configName);
                    if (config != null) {
                        configs.add(config);
                    }
                }
            }
        }

        return configs;
    }

    public void loadConfiguration(String configuration) {
        lastUsedConfig = configuration;
        Config config = findConfig(configuration);
        try {
            FileReader reader = new FileReader(config.getFile());
            JsonObject object = (JsonObject) jsonParser.parse(reader);
            config.loadConfig(object);
        } catch (FileNotFoundException e) {
            logger.log(Level.WARNING, "Not Found Exception", e);
        } catch (NullPointerException pointerException) {
            logger.log(Level.WARNING, "Fatal error in Config!", pointerException);
        }
    }

    public void saveConfiguration(String configuration) {
        Config config = new Config(configuration);
        String contentPrettyPrint = new GsonBuilder().setPrettyPrinting().create().toJson(config.saveConfig());
        try {
            FileWriter writer = new FileWriter(config.getFile());
            writer.write(contentPrettyPrint);
            writer.close();
        } catch (IOException e) {
            logger.log(Level.WARNING, "File not found!", e);
        } catch (NullPointerException e) {
            logger.log(Level.WARNING, "Fatal Error in Config!", e);
        }
    }

    public void saveAllConfigurations() throws IOException {
        for (Config config : getConfigs()) {
            saveConfiguration(config.getName());
        }
    }

    public Config findConfig(String configName) {
        if (configName == null) return null;
        if (new File(CONFIG_DIR, configName + ".cfg").exists())
            return new Config(configName);
        return null;
    }

    private void saveLastUsedConfig() {
        try (FileWriter writer = new FileWriter(LAST_USED_CONFIG_FILE)) {
            writer.write(lastUsedConfig);
        } catch (IOException e) {
            logger.log(Level.SEVERE, "Failed to save last used configuration.", e);
        }
    }

    private void loadLastUsedConfig() {
        if (LAST_USED_CONFIG_FILE.exists()) {
            try (BufferedReader reader = new BufferedReader(new FileReader(LAST_USED_CONFIG_FILE))) {
                lastUsedConfig = reader.readLine();
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to load last used configuration.", e);
            }
        }
    }
}
за load -rep
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
826
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
+rep
 
Начинающий
Статус
Оффлайн
Регистрация
6 Апр 2024
Сообщения
190
Реакции[?]
5
Поинты[?]
4K
И так, этот код включает в себя автокфг + авто сохранение если вы вышли полностью с игры, чтобы кфг загружался сделайте кфг с названием autocfg.
Вот код:


Java:
public class ConfigStorage {
    public final Logger logger = Logger.getLogger(ConfigStorage.class.getName());

    public final File CONFIG_DIR = new File(Minecraft.getInstance().gameDir, "\\НАЗВАНИЕЧИТА\\configs");
    public final File AUTOCFG_DIR = new File(CONFIG_DIR, "");
    public final File LAST_USED_CONFIG_FILE = new File(CONFIG_DIR, "last_used_config.txt");

    public final JsonParser jsonParser = new JsonParser();

    private String lastUsedConfig;

    public ConfigStorage() {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                saveAllConfigurations();
                saveLastUsedConfig();
                logger.log(Level.INFO, "All configurations saved successfully.");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to save configurations during shutdown.", e);
            }
        }));
       
        loadLastUsedConfig();
        if (lastUsedConfig != null) {
            loadConfiguration(lastUsedConfig);
        }
    }

    public void init() throws IOException {
        setupFolder();
    }

    public void setupFolder() {
        if (!CONFIG_DIR.exists()) {
            CONFIG_DIR.mkdirs();
        } else if (AUTOCFG_DIR.exists()) {
            loadConfiguration("autocfg");
            logger.log(Level.SEVERE, "Load system configuration...");
        } else {
            logger.log(Level.SEVERE, "Creating system configuration...");
            try {
                AUTOCFG_DIR.createNewFile();
                logger.log(Level.SEVERE, "Created!");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to create system configuration file", e);
            }
        }
    }

    public boolean isEmpty() {
        return getConfigs().isEmpty();
    }

    public List<Config> getConfigs() {
        List<Config> configs = new ArrayList<>();
        File[] configFiles = CONFIG_DIR.listFiles();

        if (configFiles != null) {
            for (File configFile : configFiles) {
                if (configFile.isFile() && configFile.getName().endsWith(".cfg")) {
                    String configName = configFile.getName().replace(".cfg", "");
                    Config config = findConfig(configName);
                    if (config != null) {
                        configs.add(config);
                    }
                }
            }
        }

        return configs;
    }

    public void loadConfiguration(String configuration) {
        lastUsedConfig = configuration;
        Config config = findConfig(configuration);
        try {
            FileReader reader = new FileReader(config.getFile());
            JsonObject object = (JsonObject) jsonParser.parse(reader);
            config.loadConfig(object);
        } catch (FileNotFoundException e) {
            logger.log(Level.WARNING, "Not Found Exception", e);
        } catch (NullPointerException pointerException) {
            logger.log(Level.WARNING, "Fatal error in Config!", pointerException);
        }
    }

    public void saveConfiguration(String configuration) {
        Config config = new Config(configuration);
        String contentPrettyPrint = new GsonBuilder().setPrettyPrinting().create().toJson(config.saveConfig());
        try {
            FileWriter writer = new FileWriter(config.getFile());
            writer.write(contentPrettyPrint);
            writer.close();
        } catch (IOException e) {
            logger.log(Level.WARNING, "File not found!", e);
        } catch (NullPointerException e) {
            logger.log(Level.WARNING, "Fatal Error in Config!", e);
        }
    }

    public void saveAllConfigurations() throws IOException {
        for (Config config : getConfigs()) {
            saveConfiguration(config.getName());
        }
    }

    public Config findConfig(String configName) {
        if (configName == null) return null;
        if (new File(CONFIG_DIR, configName + ".cfg").exists())
            return new Config(configName);
        return null;
    }

    private void saveLastUsedConfig() {
        try (FileWriter writer = new FileWriter(LAST_USED_CONFIG_FILE)) {
            writer.write(lastUsedConfig);
        } catch (IOException e) {
            logger.log(Level.SEVERE, "Failed to save last used configuration.", e);
        }
    }

    private void loadLastUsedConfig() {
        if (LAST_USED_CONFIG_FILE.exists()) {
            try (BufferedReader reader = new BufferedReader(new FileReader(LAST_USED_CONFIG_FILE))) {
                lastUsedConfig = reader.readLine();
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to load last used configuration.", e);
            }
        }
    }
}
кажется уже все это делали, а так +rep
 
Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2023
Сообщения
420
Реакции[?]
2
Поинты[?]
1K
И так, этот код включает в себя автокфг + авто сохранение если вы вышли полностью с игры, чтобы кфг загружался сделайте кфг с названием autocfg.
Вот код:


Java:
public class ConfigStorage {
    public final Logger logger = Logger.getLogger(ConfigStorage.class.getName());

    public final File CONFIG_DIR = new File(Minecraft.getInstance().gameDir, "\\НАЗВАНИЕЧИТА\\configs");
    public final File AUTOCFG_DIR = new File(CONFIG_DIR, "");
    public final File LAST_USED_CONFIG_FILE = new File(CONFIG_DIR, "last_used_config.txt");

    public final JsonParser jsonParser = new JsonParser();

    private String lastUsedConfig;

    public ConfigStorage() {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                saveAllConfigurations();
                saveLastUsedConfig();
                logger.log(Level.INFO, "All configurations saved successfully.");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to save configurations during shutdown.", e);
            }
        }));
       
        loadLastUsedConfig();
        if (lastUsedConfig != null) {
            loadConfiguration(lastUsedConfig);
        }
    }

    public void init() throws IOException {
        setupFolder();
    }

    public void setupFolder() {
        if (!CONFIG_DIR.exists()) {
            CONFIG_DIR.mkdirs();
        } else if (AUTOCFG_DIR.exists()) {
            loadConfiguration("autocfg");
            logger.log(Level.SEVERE, "Load system configuration...");
        } else {
            logger.log(Level.SEVERE, "Creating system configuration...");
            try {
                AUTOCFG_DIR.createNewFile();
                logger.log(Level.SEVERE, "Created!");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to create system configuration file", e);
            }
        }
    }

    public boolean isEmpty() {
        return getConfigs().isEmpty();
    }

    public List<Config> getConfigs() {
        List<Config> configs = new ArrayList<>();
        File[] configFiles = CONFIG_DIR.listFiles();

        if (configFiles != null) {
            for (File configFile : configFiles) {
                if (configFile.isFile() && configFile.getName().endsWith(".cfg")) {
                    String configName = configFile.getName().replace(".cfg", "");
                    Config config = findConfig(configName);
                    if (config != null) {
                        configs.add(config);
                    }
                }
            }
        }

        return configs;
    }

    public void loadConfiguration(String configuration) {
        lastUsedConfig = configuration;
        Config config = findConfig(configuration);
        try {
            FileReader reader = new FileReader(config.getFile());
            JsonObject object = (JsonObject) jsonParser.parse(reader);
            config.loadConfig(object);
        } catch (FileNotFoundException e) {
            logger.log(Level.WARNING, "Not Found Exception", e);
        } catch (NullPointerException pointerException) {
            logger.log(Level.WARNING, "Fatal error in Config!", pointerException);
        }
    }

    public void saveConfiguration(String configuration) {
        Config config = new Config(configuration);
        String contentPrettyPrint = new GsonBuilder().setPrettyPrinting().create().toJson(config.saveConfig());
        try {
            FileWriter writer = new FileWriter(config.getFile());
            writer.write(contentPrettyPrint);
            writer.close();
        } catch (IOException e) {
            logger.log(Level.WARNING, "File not found!", e);
        } catch (NullPointerException e) {
            logger.log(Level.WARNING, "Fatal Error in Config!", e);
        }
    }

    public void saveAllConfigurations() throws IOException {
        for (Config config : getConfigs()) {
            saveConfiguration(config.getName());
        }
    }

    public Config findConfig(String configName) {
        if (configName == null) return null;
        if (new File(CONFIG_DIR, configName + ".cfg").exists())
            return new Config(configName);
        return null;
    }

    private void saveLastUsedConfig() {
        try (FileWriter writer = new FileWriter(LAST_USED_CONFIG_FILE)) {
            writer.write(lastUsedConfig);
        } catch (IOException e) {
            logger.log(Level.SEVERE, "Failed to save last used configuration.", e);
        }
    }

    private void loadLastUsedConfig() {
        if (LAST_USED_CONFIG_FILE.exists()) {
            try (BufferedReader reader = new BufferedReader(new FileReader(LAST_USED_CONFIG_FILE))) {
                lastUsedConfig = reader.readLine();
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to load last used configuration.", e);
            }
        }
    }
}
Он драги будет сохранять?
 
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
826
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2023
Сообщения
420
Реакции[?]
2
Поинты[?]
1K
И так, этот код включает в себя автокфг + авто сохранение если вы вышли полностью с игры, чтобы кфг загружался сделайте кфг с названием autocfg.
Вот код:


Java:
public class ConfigStorage {
    public final Logger logger = Logger.getLogger(ConfigStorage.class.getName());

    public final File CONFIG_DIR = new File(Minecraft.getInstance().gameDir, "\\НАЗВАНИЕЧИТА\\configs");
    public final File AUTOCFG_DIR = new File(CONFIG_DIR, "");
    public final File LAST_USED_CONFIG_FILE = new File(CONFIG_DIR, "last_used_config.txt");

    public final JsonParser jsonParser = new JsonParser();

    private String lastUsedConfig;

    public ConfigStorage() {
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                saveAllConfigurations();
                saveLastUsedConfig();
                logger.log(Level.INFO, "All configurations saved successfully.");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to save configurations during shutdown.", e);
            }
        }));
      
        loadLastUsedConfig();
        if (lastUsedConfig != null) {
            loadConfiguration(lastUsedConfig);
        }
    }

    public void init() throws IOException {
        setupFolder();
    }

    public void setupFolder() {
        if (!CONFIG_DIR.exists()) {
            CONFIG_DIR.mkdirs();
        } else if (AUTOCFG_DIR.exists()) {
            loadConfiguration("autocfg");
            logger.log(Level.SEVERE, "Load system configuration...");
        } else {
            logger.log(Level.SEVERE, "Creating system configuration...");
            try {
                AUTOCFG_DIR.createNewFile();
                logger.log(Level.SEVERE, "Created!");
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to create system configuration file", e);
            }
        }
    }

    public boolean isEmpty() {
        return getConfigs().isEmpty();
    }

    public List<Config> getConfigs() {
        List<Config> configs = new ArrayList<>();
        File[] configFiles = CONFIG_DIR.listFiles();

        if (configFiles != null) {
            for (File configFile : configFiles) {
                if (configFile.isFile() && configFile.getName().endsWith(".cfg")) {
                    String configName = configFile.getName().replace(".cfg", "");
                    Config config = findConfig(configName);
                    if (config != null) {
                        configs.add(config);
                    }
                }
            }
        }

        return configs;
    }

    public void loadConfiguration(String configuration) {
        lastUsedConfig = configuration;
        Config config = findConfig(configuration);
        try {
            FileReader reader = new FileReader(config.getFile());
            JsonObject object = (JsonObject) jsonParser.parse(reader);
            config.loadConfig(object);
        } catch (FileNotFoundException e) {
            logger.log(Level.WARNING, "Not Found Exception", e);
        } catch (NullPointerException pointerException) {
            logger.log(Level.WARNING, "Fatal error in Config!", pointerException);
        }
    }

    public void saveConfiguration(String configuration) {
        Config config = new Config(configuration);
        String contentPrettyPrint = new GsonBuilder().setPrettyPrinting().create().toJson(config.saveConfig());
        try {
            FileWriter writer = new FileWriter(config.getFile());
            writer.write(contentPrettyPrint);
            writer.close();
        } catch (IOException e) {
            logger.log(Level.WARNING, "File not found!", e);
        } catch (NullPointerException e) {
            logger.log(Level.WARNING, "Fatal Error in Config!", e);
        }
    }

    public void saveAllConfigurations() throws IOException {
        for (Config config : getConfigs()) {
            saveConfiguration(config.getName());
        }
    }

    public Config findConfig(String configName) {
        if (configName == null) return null;
        if (new File(CONFIG_DIR, configName + ".cfg").exists())
            return new Config(configName);
        return null;
    }

    private void saveLastUsedConfig() {
        try (FileWriter writer = new FileWriter(LAST_USED_CONFIG_FILE)) {
            writer.write(lastUsedConfig);
        } catch (IOException e) {
            logger.log(Level.SEVERE, "Failed to save last used configuration.", e);
        }
    }

    private void loadLastUsedConfig() {
        if (LAST_USED_CONFIG_FILE.exists()) {
            try (BufferedReader reader = new BufferedReader(new FileReader(LAST_USED_CONFIG_FILE))) {
                lastUsedConfig = reader.readLine();
            } catch (IOException e) {
                logger.log(Level.SEVERE, "Failed to load last used configuration.", e);
            }
        }
    }
}
У меня просто они и так
не с драгома отдельно надо
Типо дописать или они в другом классе?
 
Сверху Снизу