Исходник Простая система конфигураций

Начинающий
Статус
Оффлайн
Регистрация
1 Ноя 2023
Сообщения
55
Реакции[?]
3
Поинты[?]
1K

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

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

Спасибо!

Config:
public class Config {

    private static String configExtension = ".config";
    private static Path configPath = Paths.get(".");
    private String configName;
    private File configFile;
    private Map<String, Map<String, Object>> configMap = new HashMap<>();

    public Config(String file) {
        this("", file);
    }

    public Config(String path, String file) {
        load(path, file);
    }

    public void addProperty(String item, String property, Object value) {
        configMap.computeIfAbsent(item, _ -> new HashMap<>()).put(property, value);
    }

    public Object getProperty(String item, String property) {
        return configMap.getOrDefault(item, new HashMap<>()).get(property);
    }

    public void removeProperty(String item, String property) {
        Map<String, Object> properties = configMap.get(item);
        if (properties != null) {
            properties.remove(property);
            if (properties.isEmpty()) {
                removeItem(item);
            }
        }
    }

    public void removeItem(String item) {
        configMap.remove(item);
    }

    public void load(String file) {
        load("", file);
    }

    public void load(String path, String file) {
        try {
            configFile = configPath.resolve(path + file + configExtension).toFile();
            if (!configFile.exists() || !configFile.isFile()) {
                configFile.createNewFile();
            }
            configName = configFile.getName();
            if (configFile.length() > 0) {
                try (var objectInputStream = new ObjectInputStream(new FileInputStream(configFile))) {
                    configMap = (Map<String, Map<String, Object>>) objectInputStream.readObject();
                }
            }
            // Autosave after JVM shutdown
            Runtime.getRuntime().addShutdownHook(new Thread(this::save));
        } catch (IOException | ClassNotFoundException e) {
            throw new RuntimeException("Failed to load configuration", e);
        }
    }

    public void save() {
        try (var objectOutputStream = new ObjectOutputStream(new FileOutputStream(configFile))) {
            objectOutputStream.writeObject(configMap);
        } catch (IOException e) {
            throw new RuntimeException("Failed to save configuration", e);
        }
    }

    public static void setConfigExtension(String extension) {
        Config.configExtension = "." + extension;
    }

    public static void setConfigPath(String path) {
        Config.configPath = Paths.get(path);
    }

    public Map<String, Map<String, Object>> getConfigMap() {
        return new HashMap<>(configMap);
    }

    public String getConfigName() {
        return configName;
    }
}
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
826
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
норм
 
Начинающий
Статус
Оффлайн
Регистрация
20 Фев 2024
Сообщения
92
Реакции[?]
0
Поинты[?]
0
Config:
public class Config {

    private static String configExtension = ".config";
    private static Path configPath = Paths.get(".");
    private String configName;
    private File configFile;
    private Map<String, Map<String, Object>> configMap = new HashMap<>();

    public Config(String file) {
        this("", file);
    }

    public Config(String path, String file) {
        load(path, file);
    }

    public void addProperty(String item, String property, Object value) {
        configMap.computeIfAbsent(item, _ -> new HashMap<>()).put(property, value);
    }

    public Object getProperty(String item, String property) {
        return configMap.getOrDefault(item, new HashMap<>()).get(property);
    }

    public void removeProperty(String item, String property) {
        Map<String, Object> properties = configMap.get(item);
        if (properties != null) {
            properties.remove(property);
            if (properties.isEmpty()) {
                removeItem(item);
            }
        }
    }

    public void removeItem(String item) {
        configMap.remove(item);
    }

    public void load(String file) {
        load("", file);
    }

    public void load(String path, String file) {
        try {
            configFile = configPath.resolve(path + file + configExtension).toFile();
            if (!configFile.exists() || !configFile.isFile()) {
                configFile.createNewFile();
            }
            configName = configFile.getName();
            if (configFile.length() > 0) {
                try (var objectInputStream = new ObjectInputStream(new FileInputStream(configFile))) {
                    configMap = (Map<String, Map<String, Object>>) objectInputStream.readObject();
                }
            }
            // Autosave after JVM shutdown
            Runtime.getRuntime().addShutdownHook(new Thread(this::save));
        } catch (IOException | ClassNotFoundException e) {
            throw new RuntimeException("Failed to load configuration", e);
        }
    }

    public void save() {
        try (var objectOutputStream = new ObjectOutputStream(new FileOutputStream(configFile))) {
            objectOutputStream.writeObject(configMap);
        } catch (IOException e) {
            throw new RuntimeException("Failed to save configuration", e);
        }
    }

    public static void setConfigExtension(String extension) {
        Config.configExtension = "." + extension;
    }

    public static void setConfigPath(String path) {
        Config.configPath = Paths.get(path);
    }

    public Map<String, Map<String, Object>> getConfigMap() {
        return new HashMap<>(configMap);
    }

    public String getConfigName() {
        return configName;
    }
}
годно
 
Похожие темы
Ответы
104
Просмотры
6K
Сверху Снизу