package com.cardshifter.server.main; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; /** * Created by Simon on 5/29/2015. */ public class ServerConfiguration { public static enum WarningLevel { FAIL, WARN, IGNORE } private int portSocket = 4242; private int portWebsocket = 4243; private String modsDirectory = "extra-mods"; private WarningLevel missingSecurity = WarningLevel.WARN; public static ServerConfiguration readFrom(String s) { Properties properties = new Properties(); try (FileInputStream is = new FileInputStream(new File(s))) { properties.load(is); } catch (IOException ex) { System.out.println("Cannot read properties: " + ex + ", using defaults."); // use defaults } ServerConfiguration config = new ServerConfiguration(); config.portSocket = Integer.parseInt(properties.getProperty("port", "4242")); config.portWebsocket = Integer.parseInt(properties.getProperty("websocket-port", "4243")); config.modsDirectory = properties.getProperty("mods", "extra-mods"); config.missingSecurity = WarningLevel.valueOf(properties.getProperty("missing-security", WarningLevel.WARN.name())); return config; } public int getPortSocket() { return portSocket; } public int getPortWebsocket() { return portWebsocket; } public String getModsDirectory() { return modsDirectory; } public void setModsDirectory(String modsDirectory) { this.modsDirectory = modsDirectory; } public void setPortSocket(int portSocket) { this.portSocket = portSocket; } public void setPortWebsocket(int portWebsocket) { this.portWebsocket = portWebsocket; } public WarningLevel getMissingSecurity() { return missingSecurity; } public void setMissingSecurity(WarningLevel missingSecurity) { this.missingSecurity = missingSecurity; } public static ServerConfiguration defaults() { return new ServerConfiguration(); } }