From c6a261af018d94a21ea8dd85acb1f1ec442f9828 Mon Sep 17 00:00:00 2001 From: Dries007 Date: Mon, 22 Sep 2014 23:17:16 +0200 Subject: [PATCH] var fixes --- .../java/net/doubledoordev/backend/Main.java | 7 ++++ .../doubledoordev/backend/server/Server.java | 41 +++++++++++-------- .../backend/webserver/NanoHTTPD.java | 2 +- .../backend/webserver/methods/Post.java | 7 +++- src/main/resources/templates/server.ftl | 6 +-- src/main/resources/templates/userlist.ftl | 2 +- 6 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/main/java/net/doubledoordev/backend/Main.java b/src/main/java/net/doubledoordev/backend/Main.java index fc984a7..1255b78 100644 --- a/src/main/java/net/doubledoordev/backend/Main.java +++ b/src/main/java/net/doubledoordev/backend/Main.java @@ -42,6 +42,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.lang.reflect.Field; +import java.nio.charset.Charset; import java.util.HashMap; import static net.doubledoordev.backend.util.Constants.NAME; @@ -59,6 +61,11 @@ private Main() public static void main(String[] args) throws Exception { + System.setProperty("file.encoding","UTF-8"); + Field charset = Charset.class.getDeclaredField("defaultCharset"); + charset.setAccessible(true); + charset.set(null,null); + LOGGER.info("+-------------------------------------------------------+"); LOGGER.info("| ...................... Loading ...................... |"); LOGGER.info("+-------------------------------------------------------+"); diff --git a/src/main/java/net/doubledoordev/backend/server/Server.java b/src/main/java/net/doubledoordev/backend/server/Server.java index 9acac77..35f6c71 100644 --- a/src/main/java/net/doubledoordev/backend/server/Server.java +++ b/src/main/java/net/doubledoordev/backend/server/Server.java @@ -121,7 +121,7 @@ public Server(ServerData data) this.propertiesFile = new File(folder, SERVER_PROPERTIES); if (!folder.exists()) folder.mkdir(); - saveProperties(); + normalizeProperties(); // Check to see if the server is running outside the backend, if so reboot please! if (getRCon() != null) @@ -222,6 +222,24 @@ public void saveProperties() { if (!propertiesLoaded) getProperties(); + normalizeProperties(); + + try + { + if (!propertiesFile.exists()) //noinspection ResultOfMethodCallIgnored + propertiesFile.createNewFile(); + FileWriter fileWriter = new FileWriter(propertiesFile); + properties.store(fileWriter, "Minecraft server properties\nModified by D3Backend"); + fileWriter.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + private void normalizeProperties() + { if (!Settings.SETTINGS.fixedPorts) { properties.setProperty(SERVER_PORT, String.valueOf(data.serverPort)); @@ -242,19 +260,6 @@ public void saveProperties() properties.put(RCON_ENABLE, "true"); properties.put(QUERY_ENABLE, "true"); properties.put(RCON_PASSWORD, data.rconPswd); - - try - { - if (!propertiesFile.exists()) //noinspection ResultOfMethodCallIgnored - propertiesFile.createNewFile(); - FileWriter fileWriter = new FileWriter(propertiesFile); - properties.store(fileWriter, "Minecraft server properties\nModified by D3Backend"); - fileWriter.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } } /** @@ -330,7 +335,7 @@ public void setProperty(String key, String value) throws ServerOnlineException { if (getOnline()) throw new ServerOnlineException(); properties.put(key, value); - saveProperties(); + normalizeProperties(); } /** @@ -562,7 +567,6 @@ public List getAdmins() @SuppressWarnings("UnusedDeclaration") public String getPropertiesAsText() { - getProperties(); StringWriter stringWriter = new StringWriter(); try { @@ -575,13 +579,13 @@ public String getPropertiesAsText() return stringWriter.toString(); } - @SuppressWarnings("UnusedDeclaration") public void setPropertiesAsText(String urlEncodedText) { try { + properties.clear(); properties.load(new StringReader(urlEncodedText)); - saveProperties(); + normalizeProperties(); } catch (IOException e) { @@ -623,6 +627,7 @@ public void startServer() throws Exception if (getOnline()) throw new ServerOnlineException(); if (new File(folder, data.jarName + ".tmp").exists()) throw new Exception("Minecraft server jar still downloading..."); if (!new File(folder, data.jarName).exists()) throw new FileNotFoundException(data.jarName + " not found."); + saveProperties(); new Thread(new Runnable() { @Override diff --git a/src/main/java/net/doubledoordev/backend/webserver/NanoHTTPD.java b/src/main/java/net/doubledoordev/backend/webserver/NanoHTTPD.java index da8850e..3886be6 100644 --- a/src/main/java/net/doubledoordev/backend/webserver/NanoHTTPD.java +++ b/src/main/java/net/doubledoordev/backend/webserver/NanoHTTPD.java @@ -345,7 +345,7 @@ protected String decodePercent(String str) String decoded = null; try { - decoded = URLDecoder.decode(str, "UTF8"); + decoded = URLDecoder.decode(str, "UTF-8"); } catch (UnsupportedEncodingException ignored) { diff --git a/src/main/java/net/doubledoordev/backend/webserver/methods/Post.java b/src/main/java/net/doubledoordev/backend/webserver/methods/Post.java index 7896ce4..438706c 100644 --- a/src/main/java/net/doubledoordev/backend/webserver/methods/Post.java +++ b/src/main/java/net/doubledoordev/backend/webserver/methods/Post.java @@ -79,6 +79,8 @@ public static void handlePost(HashMap dataObject, IHTTPSession s { session.parseBody(new HashMap()); Map map = session.getParms(); + Main.printdebug(session, dataObject); + String split[] = session.getUri().substring(1).split("/"); switch (split[0]) // 0 => type id { @@ -99,6 +101,9 @@ public static void handlePost(HashMap dataObject, IHTTPSession s dataObject.put("message", e.getLocalizedMessage()); } break; + case "servers": + Settings.getServerByName(split[1]).setPropertiesAsText(map.get("serverProperties")); + break; } } catch (IOException | ResponseException e) @@ -114,7 +119,7 @@ private static void handleNewServer(HashMap dataObject, IHTTPSes { User user = (User) dataObject.get("user"); if (user == null) throw new Exception("Not logged in."); - if (user.getMaxServers() != -1 && user.getServerCount() + 1 >= user.getMaxServers()) throw new Exception("Max server count reached."); + if (user.getMaxServers() != -1 && user.getServerCount() >= user.getMaxServers()) throw new Exception("Max server count reached."); ServerData data = new ServerData(); data.name = user.getUsername() + "_" + map.get("name"); diff --git a/src/main/resources/templates/server.ftl b/src/main/resources/templates/server.ftl index 33d0296..7eec45f 100644 --- a/src/main/resources/templates/server.ftl +++ b/src/main/resources/templates/server.ftl @@ -108,10 +108,10 @@

No checks are preformed when submitting. Be careful!

-
- + +
-
diff --git a/src/main/resources/templates/userlist.ftl b/src/main/resources/templates/userlist.ftl index 58af4fd..e7b6d24 100644 --- a/src/main/resources/templates/userlist.ftl +++ b/src/main/resources/templates/userlist.ftl @@ -24,7 +24,7 @@ - <#else> ${user.group}