package me.ryanhamshire.GriefPrevention.alttd.config; import com.alttd.galaxy.configuration.AbstractConfiguration; import me.ryanhamshire.GriefPrevention.GriefPrevention; import me.ryanhamshire.GriefPrevention.alttd.util.Logger; import org.spongepowered.configurate.ConfigurationNode; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @SuppressWarnings("unused") public class AlttdConfig extends AbstractConfiguration { private AlttdConfig() { super(GriefPrevention.instance.getDataFolder(),"alttdconfig.yml"); } static AlttdConfig config; static int version; public static void reload() { config = new AlttdConfig(); version = config.getInt("config-version", 1); config.set("config-version", 1); config.readConfig(AlttdConfig.class, null); } private HashMap getMap(String path, HashMap def) { set(path, def); ConfigurationNode node = config.getNode(path); HashMap map = new HashMap<>(); for (Map.Entry entry : node.childrenMap().entrySet()) { try { map.put(Long.parseLong(entry.getKey().toString()), Long.parseLong(entry.getValue().getString())); } catch (NumberFormatException exception) { // handle } } return map; } public static boolean DEBUG_MODE = false; public static boolean alternativeClaimExpiring = false; public static int alternativeClaimExpireDays = 1; public static int expireCheckRate = 1200; public static HashMap expiringClaims = new HashMap<>(); private static void settings() { String node = "alternative-claim-expiring"; DEBUG_MODE = config.getBoolean("debug-mode", DEBUG_MODE); alternativeClaimExpiring = config.getBoolean(node + ".enabled", alternativeClaimExpiring); alternativeClaimExpireDays = config.getInt(node + ".days", alternativeClaimExpireDays); expireCheckRate = config.getInt(node + ".expire-check-rate", expireCheckRate); // todo create an alternative way of loading these in expiringClaims.clear(); config.getMap(node + ".claims", new HashMap<>()) .forEach((key, value) -> { try { expiringClaims.put(Long.parseLong(key.toString()), value); } catch (NumberFormatException ignored) {} }); } public static void addExpiringClaim(Long id) { expiringClaims.put(id, System.currentTimeMillis() + TimeUnit.DAYS.toMillis(alternativeClaimExpireDays)); config.set("alternative-claim-expiring.claims", expiringClaims); config.saveConfig(); } }