diff --git a/.gitignore b/.gitignore index adc64cd..9a87cbc 100644 --- a/.gitignore +++ b/.gitignore @@ -60,4 +60,5 @@ nb-configuration.xml .idea *.iml *.ipr -*.iws \ No newline at end of file +*.iws +/config.yml diff --git a/src/main/java/org/spout/flo/Flo.java b/src/main/java/org/spout/flo/Flo.java index 807bd34..7168e82 100644 --- a/src/main/java/org/spout/flo/Flo.java +++ b/src/main/java/org/spout/flo/Flo.java @@ -3,11 +3,13 @@ import java.util.LinkedList; import java.util.List; +import org.spout.api.exception.ConfigurationException; import org.spout.flo.server.Server; import org.spout.flo.web.FloWebServer; public class Flo { private static Flo instance = null; + private FloConfiguration configuration; public static Flo instance() { return instance; @@ -18,6 +20,12 @@ public static Flo instance() { Flo () { instance = this; + configuration = new FloConfiguration(); + try { + configuration.load(); + } catch (ConfigurationException e) { + e.printStackTrace(); + } webServer = new FloWebServer(); Runtime.getRuntime().addShutdownHook(new Thread() { @@ -35,4 +43,12 @@ public void stop() { public List getServers() { return servers; } + + public FloWebServer getWebServer() { + return webServer; + } + + public FloConfiguration getConfiguration() { + return configuration; + } } diff --git a/src/main/java/org/spout/flo/FloConfiguration.java b/src/main/java/org/spout/flo/FloConfiguration.java new file mode 100644 index 0000000..0af658c --- /dev/null +++ b/src/main/java/org/spout/flo/FloConfiguration.java @@ -0,0 +1,25 @@ +package org.spout.flo; + +import java.io.File; + +import org.spout.api.exception.ConfigurationException; +import org.spout.api.util.config.ConfigurationHolder; +import org.spout.api.util.config.ConfigurationHolderConfiguration; +import org.spout.api.util.config.yaml.YamlConfiguration; + +public class FloConfiguration extends ConfigurationHolderConfiguration { + + public static ConfigurationHolder BIND_ADDRESS = new ConfigurationHolder((Object) null, "bind.address"); + public static ConfigurationHolder BIND_PORT = new ConfigurationHolder(80, "bind.port"); + public static ConfigurationHolder BASE_SERVER_FOLDER = new ConfigurationHolder("servers/", "servers.basefolder"); + + public FloConfiguration() { + super(new YamlConfiguration(new File("config.yml"))); + } + + @Override + public void load() throws ConfigurationException { + super.load(); + super.save(); + } +} diff --git a/src/main/java/org/spout/flo/web/FloWebServer.java b/src/main/java/org/spout/flo/web/FloWebServer.java index ba5ac3d..f35dd5b 100644 --- a/src/main/java/org/spout/flo/web/FloWebServer.java +++ b/src/main/java/org/spout/flo/web/FloWebServer.java @@ -1,20 +1,36 @@ package org.spout.flo.web; +import java.net.InetAddress; +import java.net.UnknownHostException; + +import org.spout.flo.FloConfiguration; + import com.narrowtux.blueberry.Address; import com.narrowtux.blueberry.BlueberryWebServer; public class FloWebServer { BlueberryWebServer server; + FloWebSocketHandler webSocketHandler; public FloWebServer() { server = new BlueberryWebServer(); - server.bind(new Address(null, 5000)); //TODO configure + try { + server.bind(new Address(InetAddress.getByName(FloConfiguration.BIND_ADDRESS.getString(null)), FloConfiguration.BIND_PORT.getInt(5000))); + } catch (UnknownHostException e) { + e.printStackTrace(); + return; + } server.setApplicationName("Flo"); server.getHandlers().add(new ResourceFileHandler()); - server.getHandlers().add(new FloWebSocketHandler()); + webSocketHandler = new FloWebSocketHandler(); + server.getHandlers().add(webSocketHandler); server.start(); } + public FloWebSocketHandler getWebSocketHandler() { + return webSocketHandler; + } + public void stop() { server.stop(); } diff --git a/src/main/resources/css/flo.css b/src/main/resources/css/flo.css index 042d9fc..6e0862a 100644 --- a/src/main/resources/css/flo.css +++ b/src/main/resources/css/flo.css @@ -1,4 +1,5 @@ #server-list { + margin-top: 5px; width: 50%; } diff --git a/src/main/resources/js/servers.js b/src/main/resources/js/servers.js index e69de29..7dd6e1a 100644 --- a/src/main/resources/js/servers.js +++ b/src/main/resources/js/servers.js @@ -0,0 +1,3 @@ +$("#btn-add-server").click(function() { + $("#modal-add-server").modal(); +}); \ No newline at end of file diff --git a/src/main/resources/sites/servers.html b/src/main/resources/sites/servers.html index 9e1f583..474cdba 100644 --- a/src/main/resources/sites/servers.html +++ b/src/main/resources/sites/servers.html @@ -1,7 +1,9 @@

Servers

+
Add Server
+ @@ -26,5 +28,17 @@

Servers

ServerStatusActions
+ + \ No newline at end of file