package com.hbm.config; import java.io.File; import java.util.HashMap; import com.google.gson.Gson; import com.hbm.main.MainRegistry; public class ServerConfig extends RunningConfig { public static final Gson gson = new Gson(); public static HashMap configMap = new HashMap(); public static ConfigWrapper DAMAGE_COMPATIBILITY_MODE = new ConfigWrapper(false); public static ConfigWrapper MINE_AP_DAMAGE = new ConfigWrapper(10F); public static ConfigWrapper MINE_HE_DAMAGE = new ConfigWrapper(35F); public static ConfigWrapper MINE_SHRAP_DAMAGE = new ConfigWrapper(7.5F); public static ConfigWrapper MINE_NUKE_DAMAGE = new ConfigWrapper(100F); private static void initDefaults() { configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE); configMap.put("MINE_AP_DAMAGE", MINE_AP_DAMAGE); configMap.put("MINE_HE_DAMAGE", MINE_HE_DAMAGE); configMap.put("MINE_SHRAP_DAMAGE", MINE_SHRAP_DAMAGE); configMap.put("MINE_NUKE_DAMAGE", MINE_NUKE_DAMAGE); } /** Initializes defaults, then reads the config file if it exists, then writes the config file. */ public static void initConfig() { initDefaults(); File folder = MainRegistry.configHbmDir; File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmServer.json"); if(config.exists()) readConfig(config); refresh(); } /** Writes over the config file using the running config. */ public static void refresh() { File folder = MainRegistry.configHbmDir; File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmServer.json"); writeConfig(config); } /** Writes over the running config using the config file. */ public static void reload() { File folder = MainRegistry.configHbmDir; File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmServer.json"); if(config.exists()) readConfig(config); } private static void readConfig(File config) { RunningConfig.readConfig(config, configMap); } private static void writeConfig(File config) { RunningConfig.writeConfig(config, configMap, "This file can be edited ingame using the /ntmserver command."); } }