Начинающий
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для 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;
}
}
Последнее редактирование: