package org.rsbot.service; import org.rsbot.Configuration; import org.rsbot.bot.RSLoader; import org.rsbot.util.io.IniParser; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.logging.Logger; public class Preferences { private final Logger log = Logger.getLogger(Preferences.class.getName()); private static Preferences instance; private final File store; public boolean confirmations = true; public boolean shutdown = false; public int shutdownTime = 10; private Preferences(final File store) { this.store = store; } public static Preferences getInstance() { if (instance == null) { instance = new Preferences(new File(Configuration.Paths.getSettingsDirectory(), "preferences.ini")); } return instance; } public void load() { HashMap<String, String> keys = null; try { if (!store.exists()) { if (!store.createNewFile()) { throw new IOException("Could not create a new file."); } } keys = IniParser.deserialise(store).get(IniParser.emptySection); } catch (final IOException ignored) { log.severe("Failed to load preferences"); } if (keys == null || keys.isEmpty()) { return; } if (keys.containsKey("confirmations")) { confirmations = IniParser.parseBool(keys.get("confirmations")); } if (keys.containsKey("shutdown")) { shutdown = IniParser.parseBool(keys.get("shutdown")); } if (keys.containsKey("shutdownTime")) { shutdownTime = Integer.parseInt(keys.get("shutdownTime")); shutdownTime = Math.max(Math.min(shutdownTime, 60), 3); } } public void save() { final HashMap<String, String> keys = new HashMap<String, String>(3); keys.put("confirmations", Boolean.toString(confirmations)); keys.put("shutdown", Boolean.toString(shutdown)); keys.put("shutdownTime", Integer.toString(shutdownTime)); final HashMap<String, HashMap<String, String>> data = new HashMap<String, HashMap<String, String>>(1); data.put(IniParser.emptySection, keys); try { final BufferedWriter out = new BufferedWriter(new FileWriter(store)); IniParser.serialise(data, out); out.close(); } catch (final IOException ignored) { log.severe("Could not save preferences"); } } }