From 624b9b297e0c587c65a588dd307de22eb767c456 Mon Sep 17 00:00:00 2001
From: Dries007
Date: Wed, 15 Oct 2014 23:56:10 +0200
Subject: [PATCH] default diskspace for new users is now -1 See config. & bunch
of small fixes
---
.../java/net/doubledoordev/backend/Main.java | 2 +-
.../backend/permissions/User.java | 12 +--
.../server/{Dimention.java => Dimension.java} | 43 +-------
.../backend/server/FileManager.java | 4 +-
.../doubledoordev/backend/server/Server.java | 101 ++++++++++--------
.../backend/server/ServerData.java | 6 +-
.../backend/server/WorldManager.java | 32 ++++--
.../net/doubledoordev/backend/util/Cache.java | 10 +-
.../backend/util/CustomLogAppender.java | 4 +-
.../doubledoordev/backend/util/Helper.java | 17 +--
.../doubledoordev/backend/util/Settings.java | 65 ++++++-----
.../backend/webserver/SimpleWebServer.java | 4 +-
.../backend/webserver/Webserver.java | 1 -
.../backend/webserver/methods/Get.java | 3 +-
.../backend/webserver/methods/Put.java | 22 +---
src/main/resources/templates/header.ftl | 1 -
src/main/resources/templates/login.ftl | 5 +-
src/main/resources/templates/worldmanager.ftl | 15 +--
18 files changed, 163 insertions(+), 184 deletions(-)
rename src/main/java/net/doubledoordev/backend/server/{Dimention.java => Dimension.java} (67%)
diff --git a/src/main/java/net/doubledoordev/backend/Main.java b/src/main/java/net/doubledoordev/backend/Main.java
index f2b9bcb..aea7c81 100644
--- a/src/main/java/net/doubledoordev/backend/Main.java
+++ b/src/main/java/net/doubledoordev/backend/Main.java
@@ -40,7 +40,6 @@
package net.doubledoordev.backend;
-import com.google.gson.JsonObject;
import net.doubledoordev.backend.server.Server;
import net.doubledoordev.backend.server.rcon.RCon;
import net.doubledoordev.backend.util.Cache;
@@ -122,6 +121,7 @@ private static void mkdirs()
public static synchronized void shutdown()
{
+ Settings.save();
LOGGER.info("Attempting graceful shutdown of all servers...");
for (final Server server : Settings.SETTINGS.servers.values())
{
diff --git a/src/main/java/net/doubledoordev/backend/permissions/User.java b/src/main/java/net/doubledoordev/backend/permissions/User.java
index f2b7fe0..8729d6f 100644
--- a/src/main/java/net/doubledoordev/backend/permissions/User.java
+++ b/src/main/java/net/doubledoordev/backend/permissions/User.java
@@ -55,7 +55,7 @@
public class User
{
private String username, passhash;
- private int maxServers, maxRam, maxDiskspace;
+ private int maxServers, maxRam, maxDiskspace = Settings.SETTINGS.defaultDiskspace;
private Group group = Group.NORMAL;
public User(String username, String passhash)
@@ -116,17 +116,17 @@ public Group getGroup()
return group;
}
- public void setGroup(String group)
- {
- setGroup(Group.valueOf(group));
- }
-
public void setGroup(Group group)
{
this.group = group;
Settings.save();
}
+ public void setGroup(String group)
+ {
+ setGroup(Group.valueOf(group));
+ }
+
public int getMaxServers()
{
return maxServers;
diff --git a/src/main/java/net/doubledoordev/backend/server/Dimention.java b/src/main/java/net/doubledoordev/backend/server/Dimension.java
similarity index 67%
rename from src/main/java/net/doubledoordev/backend/server/Dimention.java
rename to src/main/java/net/doubledoordev/backend/server/Dimension.java
index fca797a..c38cedc 100644
--- a/src/main/java/net/doubledoordev/backend/server/Dimention.java
+++ b/src/main/java/net/doubledoordev/backend/server/Dimension.java
@@ -40,27 +40,14 @@
package net.doubledoordev.backend.server;
-import org.apache.commons.io.FileUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Date;
-
-import static net.doubledoordev.backend.util.Constants.*;
-
/**
* @author Dries007
*/
-public class Dimention
+public class Dimension
{
- int dimid;
- WorldManager worldManager;
+ int dimid;
- private Dimention()
- {
- }
-
- public Dimention(int dimid)
+ public Dimension(int dimid)
{
this.dimid = dimid;
}
@@ -69,28 +56,4 @@ public int getDimid()
{
return dimid;
}
-
- public void makeBackup()
- {
- worldManager.doBackup(new File(new File(worldManager.server.getBackupFolder(), DIM + dimid), BACKUP_SDF.format(new Date()) + ".zip"), getFolder(), dimid == 0 ? DIM_ONLY_FILTER : ACCEPT_NONE_FILTER);
- }
-
- public File getFolder()
- {
- return dimid == 0 ? worldManager.worldFolder : new File(worldManager.worldFolder, DIM + dimid);
- }
-
- public void update(WorldManager worldManager)
- {
- this.worldManager = worldManager;
- }
-
- public void delete() throws IOException
- {
- for (File file : getFolder().listFiles(dimid == 0 ? NOT_DIM_FILTER : ACCEPT_ALL_FILTER))
- {
- if (file.isFile()) file.delete();
- else if (file.isDirectory()) FileUtils.deleteDirectory(file);
- }
- }
}
diff --git a/src/main/java/net/doubledoordev/backend/server/FileManager.java b/src/main/java/net/doubledoordev/backend/server/FileManager.java
index e75b336..f916d2a 100644
--- a/src/main/java/net/doubledoordev/backend/server/FileManager.java
+++ b/src/main/java/net/doubledoordev/backend/server/FileManager.java
@@ -71,8 +71,8 @@
public class FileManager
{
private final Server server;
- private final File serverFolder;
- private final File file;
+ private final File serverFolder;
+ private final File file;
public FileManager(Server server, String fileString)
{
diff --git a/src/main/java/net/doubledoordev/backend/server/Server.java b/src/main/java/net/doubledoordev/backend/server/Server.java
index ac11344..d05d651 100644
--- a/src/main/java/net/doubledoordev/backend/server/Server.java
+++ b/src/main/java/net/doubledoordev/backend/server/Server.java
@@ -41,7 +41,6 @@
package net.doubledoordev.backend.server;
import com.google.gson.*;
-import net.doubledoordev.backend.permissions.Group;
import net.doubledoordev.backend.permissions.User;
import net.doubledoordev.backend.server.query.MCQuery;
import net.doubledoordev.backend.server.query.QueryResponse;
@@ -93,12 +92,14 @@ public class Server
* Java bean holding all the config data
*/
private final ServerData data;
- private final ArrayList log = new ArrayList<>(LOG_LINES_KEPT + 10);
+ private final Map dimensionMap = new HashMap<>();
+
+ private final ArrayList log = new ArrayList<>(LOG_LINES_KEPT + 10);
/**
* Diskspace var + timer to avoid long page load times.
*/
- public int[] size = new int[3];
- public QueryResponse cachedResponse;
+ public int[] size = new int[3];
+ public QueryResponse cachedResponse;
/**
* Used to reroute server output to our console.
* NOT LOGGED TO FILE!
@@ -111,15 +112,15 @@ public class Server
/**
* RCon instance + timer to avoid long page load times.
*/
- private RCon rCon;
+ private RCon rCon;
/**
* MCQuery and QueryResponse instances + timer to avoid long page load times.
*/
- private MCQuery query;
+ private MCQuery query;
/**
* The process the server will be running in
*/
- private Process process;
+ private Process process;
private boolean starting = false;
private File backupFolder;
private WorldManager worldManager = new WorldManager(this);
@@ -189,6 +190,10 @@ public void run()
{
}
}
+ else
+ {
+ getProperties();
+ }
}
/**
@@ -397,12 +402,12 @@ public String getDisplayAddress()
public int getServerPort()
{
- return Integer.parseInt(getProperty(SERVER_PORT));
+ return Integer.parseInt(properties.containsKey(SERVER_PORT) ? getProperty(SERVER_PORT) : "-1");
}
public int getRconPort()
{
- return Integer.parseInt(getProperty(RCON_PORT));
+ return Integer.parseInt(properties.containsKey(RCON_PORT) ? getProperty(RCON_PORT) : "-1");
}
public int getOnlinePlayers()
@@ -599,6 +604,11 @@ public List getExtraJavaParameters()
return data.extraJavaParameters;
}
+ public void setExtraJavaParameters(String list) throws Exception
+ {
+ setExtraJavaParameters(Arrays.asList(list.split(",")));
+ }
+
public void setExtraJavaParameters(List list) throws Exception
{
if (getOnline()) throw new ServerOnlineException();
@@ -609,14 +619,14 @@ public void setExtraJavaParameters(List list) throws Exception
Settings.save();
}
- public void setExtraJavaParameters(String list) throws Exception
+ public List getExtraMCParameters()
{
- setExtraJavaParameters(Arrays.asList(list.split(",")));
+ return data.extraMCParameters;
}
- public List getExtraMCParameters()
+ public void setExtraMCParameters(String list) throws Exception
{
- return data.extraMCParameters;
+ setExtraMCParameters(Arrays.asList(list.split(",")));
}
public void setExtraMCParameters(List list) throws Exception
@@ -629,11 +639,6 @@ public void setExtraMCParameters(List list) throws Exception
Settings.save();
}
- public void setExtraMCParameters(String list) throws Exception
- {
- setExtraMCParameters(Arrays.asList(list.split(",")));
- }
-
public String getJarName()
{
return data.jarName;
@@ -663,6 +668,12 @@ public String getOwner()
return data.owner;
}
+ public void setOwner(String username)
+ {
+ ownerObject = null;
+ data.owner = username;
+ }
+
public User getOwnerObject()
{
if (ownerObject == null) ownerObject = Settings.getUserByName(getOwner());
@@ -680,15 +691,14 @@ public User getOwnerObject()
return ownerObject;
}
- public void setOwner(String username)
+ public List getAdmins()
{
- ownerObject = null;
- data.owner = username;
+ return data.admins;
}
- public List getAdmins()
+ public void setAdmins(String list) throws Exception
{
- return data.admins;
+ setAdmins(Arrays.asList(list.split(",")));
}
public void setAdmins(List strings)
@@ -697,11 +707,6 @@ public void setAdmins(List strings)
Settings.save();
}
- public void setAdmins(String list) throws Exception
- {
- setAdmins(Arrays.asList(list.split(",")));
- }
-
public void setAdmins()
{
setAdmins(Arrays.asList(new String[0]));
@@ -712,15 +717,15 @@ public List getCoOwners()
return data.coOwners;
}
- public void setCoOwners(List strings)
+ public void setCoOwners(String list) throws Exception
{
- data.coOwners = strings;
- Settings.save();
+ setCoOwners(Arrays.asList(list.split(",")));
}
- public void setCoOwners(String list) throws Exception
+ public void setCoOwners(List strings)
{
- setCoOwners(Arrays.asList(list.split(",")));
+ data.coOwners = strings;
+ Settings.save();
}
public void setCoOwners()
@@ -990,20 +995,28 @@ public WorldManager getWorldManager()
return worldManager;
}
- /*
- ---------------------------------------------------------------- GSON ----------------------------------------------------------------
- */
+ public JsonElement toJson()
+ {
+ return GSON.toJsonTree(data);
+ }
+
+ public Map getDimensionMap()
+ {
+ return dimensionMap;
+ }
+
public static class Deserializer implements JsonDeserializer
{
@Override
public Server deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
{
- ServerData serverData = context.deserialize(json, ServerData.class);
- Server server = new Server(serverData, false);
- if (json.getAsJsonObject().has("dimentions"))
+ Server server = new Server((ServerData) context.deserialize(json, ServerData.class), false);
+ if (json.getAsJsonObject().has("dimensions"))
{
- Dimention[] dimentions = context.deserialize(json.getAsJsonObject().get("dimentions"), Dimention[].class);
- for (Dimention dimention : dimentions) server.getWorldManager().getDimentionMap().put(dimention.dimid, dimention);
+ for (Dimension dimension : (Dimension[]) context.deserialize(json.getAsJsonObject().get("dimensions"), Dimension[].class))
+ {
+ server.dimensionMap.put(dimension.dimid, dimension);
+ }
}
return server;
}
@@ -1014,9 +1027,9 @@ public static class Serializer implements JsonSerializer
@Override
public JsonElement serialize(Server src, Type typeOfSrc, JsonSerializationContext context)
{
- JsonObject object = context.serialize(src.data).getAsJsonObject();
- object.add("dimentions", context.serialize(src.getWorldManager().dimentionMap.values()));
- return object;
+ JsonObject data = context.serialize(src.data).getAsJsonObject();
+ data.add("dimensions", context.serialize(src.dimensionMap.values()));
+ return data;
}
}
}
diff --git a/src/main/java/net/doubledoordev/backend/server/ServerData.java b/src/main/java/net/doubledoordev/backend/server/ServerData.java
index 1d6124f..37a9cfd 100644
--- a/src/main/java/net/doubledoordev/backend/server/ServerData.java
+++ b/src/main/java/net/doubledoordev/backend/server/ServerData.java
@@ -64,7 +64,7 @@ public class ServerData
public String jarName = "minecraft_server.jar";
public String rconPswd = Helper.randomString(10);
public boolean autoStart = false;
- public String owner;
- public List admins = new ArrayList<>();
- public List coOwners = new ArrayList<>();
+ public String owner = "";
+ public List admins = new ArrayList<>();
+ public List coOwners = new ArrayList<>();
}
diff --git a/src/main/java/net/doubledoordev/backend/server/WorldManager.java b/src/main/java/net/doubledoordev/backend/server/WorldManager.java
index 74cae37..3ab1c65 100644
--- a/src/main/java/net/doubledoordev/backend/server/WorldManager.java
+++ b/src/main/java/net/doubledoordev/backend/server/WorldManager.java
@@ -49,7 +49,6 @@
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Date;
-import java.util.HashMap;
import static net.doubledoordev.backend.Main.LOGGER;
import static net.doubledoordev.backend.util.Constants.*;
@@ -62,7 +61,6 @@
@SuppressWarnings("UnusedDeclaration")
public class WorldManager
{
- final HashMap dimentionMap = new HashMap<>();
final Server server;
File worldFolder;
@@ -76,13 +74,12 @@ public void update()
worldFolder = new File(server.getFolder(), getWorldName());
if (!worldFolder.exists()) return;
if (worldFolder.list().length == 0) return;
- if (!dimentionMap.containsKey(0)) dimentionMap.put(0, new Dimention(0));
+ if (!server.getDimensionMap().containsKey(0)) server.getDimensionMap().put(0, new Dimension(0));
for (String file : worldFolder.list(DIM_ONLY_FILTER))
{
Integer dimid = Integer.parseInt(file.replace(DIM, ""));
- if (!dimentionMap.containsKey(dimid)) dimentionMap.put(dimid, new Dimention(dimid));
+ if (!server.getDimensionMap().containsKey(dimid)) server.getDimensionMap().put(dimid, new Dimension(dimid));
}
- for (Dimention dimention : dimentionMap.values()) dimention.update(this);
}
public String getWorldName()
@@ -90,11 +87,6 @@ public String getWorldName()
return server.getProperties().getProperty("level-name", "world");
}
- public HashMap getDimentionMap()
- {
- return dimentionMap;
- }
-
public void makeWorldBackup() throws BackupException
{
if (!checkSpace()) throw new BackupException("Out of diskspace.");
@@ -107,6 +99,26 @@ public void makeAllOfTheBackup() throws BackupException
doBackup(new File(new File(server.getBackupFolder(), SERVER), BACKUP_SDF.format(new Date()) + ".zip"), server.getFolder(), ACCEPT_NONE_FILTER);
}
+ public void makeBackup(int dimid) throws BackupException
+ {
+ if (!checkSpace()) throw new BackupException("Out of diskspace.");
+ doBackup(new File(new File(server.getBackupFolder(), DIM + dimid), BACKUP_SDF.format(new Date()) + ".zip"), getFolder(dimid), dimid == 0 ? DIM_ONLY_FILTER : ACCEPT_NONE_FILTER);
+ }
+
+ public File getFolder(int dimid)
+ {
+ return dimid == 0 ? worldFolder : new File(worldFolder, DIM + dimid);
+ }
+
+ public void delete(int dimid) throws IOException
+ {
+ for (File file : getFolder(dimid).listFiles(dimid == 0 ? NOT_DIM_FILTER : ACCEPT_ALL_FILTER))
+ {
+ if (file.isFile()) file.delete();
+ else if (file.isDirectory()) FileUtils.deleteDirectory(file);
+ }
+ }
+
public void doBackup(File zip, File folder, FilenameFilter filter)
{
if (!folder.exists()) return; // Prevent derp
diff --git a/src/main/java/net/doubledoordev/backend/util/Cache.java b/src/main/java/net/doubledoordev/backend/util/Cache.java
index c0eabf9..4057b08 100644
--- a/src/main/java/net/doubledoordev/backend/util/Cache.java
+++ b/src/main/java/net/doubledoordev/backend/util/Cache.java
@@ -50,7 +50,6 @@
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
-import java.net.URLConnection;
import java.nio.file.Files;
import java.util.*;
@@ -131,11 +130,7 @@ public void run()
urlConnection.setRequestMethod("GET");
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)");
urlConnection.connect();
- if (urlConnection.getResponseCode() != 200)
- {
- buildsWithoutInstaller.add(build);
- Main.LOGGER.debug("[Cache] FORGE - Excluded " + version + ". Return was (" + urlConnection.getResponseCode() + ") " + urlConnection.getResponseMessage());
- }
+ if (urlConnection.getResponseCode() != 200) buildsWithoutInstaller.add(build);
}
catch (IOException e)
{
@@ -143,6 +138,9 @@ public void run()
}
}
}
+
+ Main.LOGGER.debug("[Cache] Excluded FORGE versions: " + buildsWithoutInstaller.toString());
+
synchronized (FORGE_NAME_VERSION_MAP)
{
FORGE_NAME_VERSION_MAP.clear();
diff --git a/src/main/java/net/doubledoordev/backend/util/CustomLogAppender.java b/src/main/java/net/doubledoordev/backend/util/CustomLogAppender.java
index 8129ba5..0898742 100644
--- a/src/main/java/net/doubledoordev/backend/util/CustomLogAppender.java
+++ b/src/main/java/net/doubledoordev/backend/util/CustomLogAppender.java
@@ -60,8 +60,8 @@
@Plugin(name = "CustomLogAppender", category = "Core", elementType = "appender", printObject = true)
public class CustomLogAppender extends AbstractAppender
{
- public static int LOG_LINES_KEPT = 1000;
- private static final ArrayList LOG = new ArrayList<>(LOG_LINES_KEPT + 10);
+ public static int LOG_LINES_KEPT = 1000;
+ private static final ArrayList LOG = new ArrayList<>(LOG_LINES_KEPT + 10);
protected CustomLogAppender(String name, Filter filter, Layout extends Serializable> layout)
{
diff --git a/src/main/java/net/doubledoordev/backend/util/Helper.java b/src/main/java/net/doubledoordev/backend/util/Helper.java
index 40e683f..75723a0 100644
--- a/src/main/java/net/doubledoordev/backend/util/Helper.java
+++ b/src/main/java/net/doubledoordev/backend/util/Helper.java
@@ -51,11 +51,12 @@
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
-import static net.doubledoordev.backend.util.Constants.JSONPARSER;
-import static net.doubledoordev.backend.util.Constants.RANDOM;
-import static net.doubledoordev.backend.util.Constants.symbols;
+import static net.doubledoordev.backend.util.Constants.*;
/**
* Public static helper methods
@@ -66,6 +67,9 @@
@SuppressWarnings("UnusedDeclaration")
public class Helper
{
+ public static final Map UUID_USERNMAME_MAP = new HashMap<>();
+ private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
+
private Helper()
{
}
@@ -79,6 +83,7 @@ private Helper()
*/
public static boolean isPortAvailable(String hostname, int port)
{
+ if (port == -1) return false;
try
{
ServerSocket socket = new ServerSocket();
@@ -139,8 +144,6 @@ public static int getTotalDiskspaceUsed()
return total;
}
- private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
-
public static String getNowInBanFormat()
{
return dateFormat.format(new Date());
@@ -204,8 +207,6 @@ public static void writeRawNBT(File file, boolean compressed, Tag> tag)
}
}
- public static final Map UUID_USERNMAME_MAP = new HashMap<>();
-
public static String getUsernameFromUUID(String uuid)
{
if (uuid.endsWith(".dat")) uuid = uuid.substring(0, uuid.lastIndexOf('.'));
diff --git a/src/main/java/net/doubledoordev/backend/util/Settings.java b/src/main/java/net/doubledoordev/backend/util/Settings.java
index 0e96a28..11aa450 100644
--- a/src/main/java/net/doubledoordev/backend/util/Settings.java
+++ b/src/main/java/net/doubledoordev/backend/util/Settings.java
@@ -48,7 +48,6 @@
import org.apache.commons.io.FileUtils;
import java.io.FileReader;
-import java.io.IOException;
import java.net.Inet4Address;
import java.net.UnknownHostException;
import java.util.*;
@@ -81,6 +80,7 @@ public class Settings
if (jsonElement.has("fixedPorts")) SETTINGS.fixedPorts = jsonElement.get("fixedPorts").getAsBoolean();
if (jsonElement.has("fixedIP")) SETTINGS.fixedIP = jsonElement.get("fixedIP").getAsBoolean();
if (jsonElement.has("portRange")) SETTINGS.portRange = GSON.fromJson(jsonElement.getAsJsonObject("portRange"), PortRange.class);
+ if (jsonElement.has("defaultDiskspace")) SETTINGS.defaultDiskspace = jsonElement.get("defaultDiskspace").getAsInt();
if (jsonElement.has("anonPages"))
{
@@ -95,18 +95,14 @@ public class Settings
if (SERVERS_FILE.exists())
{
fileReader = new FileReader(SERVERS_FILE);
- if (SERVERS_FILE.exists())
- for (Server server : GSON.fromJson(fileReader, Server[].class))
- SETTINGS.servers.put(server.getName(), server);
+ if (SERVERS_FILE.exists()) for (Server server : GSON.fromJson(fileReader, Server[].class)) SETTINGS.servers.put(server.getName(), server);
fileReader.close();
}
if (USERS_FILE.exists())
{
fileReader = new FileReader(USERS_FILE);
- if (USERS_FILE.exists())
- for (User user : GSON.fromJson(fileReader, User[].class))
- SETTINGS.users.put(user.getUsername().toLowerCase(), user);
+ if (USERS_FILE.exists()) for (User user : GSON.fromJson(fileReader, User[].class)) SETTINGS.users.put(user.getUsername().toLowerCase(), user);
fileReader.close();
}
}
@@ -120,12 +116,13 @@ public class Settings
public Map users = new HashMap<>();
public String hostname;
- public int port = 80;
- public boolean useJava8 = false;
- public boolean fixedPorts = false;
- public boolean fixedIP = false;
- public PortRange portRange = new PortRange();
- public List anonPages = Arrays.asList("index", "login", "register");
+ public int port = 80;
+ public boolean useJava8 = false;
+ public boolean fixedPorts = false;
+ public boolean fixedIP = false;
+ public PortRange portRange = new PortRange();
+ public int defaultDiskspace = -1;
+ public List anonPages = Arrays.asList("index", "login", "register");
private Settings()
{
@@ -144,24 +141,36 @@ public static void save()
{
try
{
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("hostname", SETTINGS.hostname);
- jsonObject.addProperty("port", SETTINGS.port);
- jsonObject.addProperty("useJava8", SETTINGS.useJava8);
- jsonObject.addProperty("fixedPorts", SETTINGS.fixedPorts);
- jsonObject.addProperty("fixedIP", SETTINGS.fixedIP);
- JsonArray anonPages = new JsonArray();
- for (String s : SETTINGS.anonPages) anonPages.add(new JsonPrimitive(s));
- jsonObject.add("anonPages", anonPages);
- jsonObject.add("portRange", GSON.toJsonTree(SETTINGS.portRange));
- FileUtils.writeStringToFile(CONFIG_FILE, GSON.toJson(jsonObject));
-
- FileUtils.writeStringToFile(SERVERS_FILE, GSON.toJson(SETTINGS.servers.values()));
- FileUtils.writeStringToFile(USERS_FILE, GSON.toJson(SETTINGS.users.values()));
+ // SETTINGS
+ {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("hostname", SETTINGS.hostname);
+ jsonObject.addProperty("port", SETTINGS.port);
+ jsonObject.addProperty("useJava8", SETTINGS.useJava8);
+ jsonObject.addProperty("fixedPorts", SETTINGS.fixedPorts);
+ jsonObject.addProperty("fixedIP", SETTINGS.fixedIP);
+ JsonArray anonPages = new JsonArray();
+ for (String s : SETTINGS.anonPages) anonPages.add(new JsonPrimitive(s));
+ jsonObject.add("anonPages", anonPages);
+ jsonObject.add("portRange", GSON.toJsonTree(SETTINGS.portRange));
+ FileUtils.writeStringToFile(CONFIG_FILE, GSON.toJson(jsonObject));
+ }
+ // SERVERS
+ {
+ //JsonArray servers = new JsonArray();
+ //for (Server server : SETTINGS.servers.values()) servers.add(GSON.toJsonTree(server.toJson()));
+ FileUtils.writeStringToFile(SERVERS_FILE, GSON.toJson(SETTINGS.servers.values()));
+ }
+ // USER
+ {
+ //JsonArray users = new JsonArray();
+ //for (User user : SETTINGS.users.values()) users.add(GSON.toJsonTree(user));
+ FileUtils.writeStringToFile(USERS_FILE, GSON.toJson(SETTINGS.users.values()));
+ }
LOGGER.info("Saved settings.");
}
- catch (IOException e)
+ catch (Exception e)
{
LOGGER.error("Error saving the config file...", e);
}
diff --git a/src/main/java/net/doubledoordev/backend/webserver/SimpleWebServer.java b/src/main/java/net/doubledoordev/backend/webserver/SimpleWebServer.java
index 91b9c86..b010eb6 100644
--- a/src/main/java/net/doubledoordev/backend/webserver/SimpleWebServer.java
+++ b/src/main/java/net/doubledoordev/backend/webserver/SimpleWebServer.java
@@ -51,11 +51,11 @@ public abstract class SimpleWebServer extends NanoHTTPD
/**
* Common mime type for dynamic content: binary
*/
- public static final String MIME_DEFAULT_BINARY = "application/octet-stream";
+ public static final String MIME_DEFAULT_BINARY = "application/octet-stream";
/**
* Default Index file names.
*/
- public static final List INDEX_FILE_NAMES = new ArrayList()
+ public static final List INDEX_FILE_NAMES = new ArrayList()
{{
add("index.html");
}};
diff --git a/src/main/java/net/doubledoordev/backend/webserver/Webserver.java b/src/main/java/net/doubledoordev/backend/webserver/Webserver.java
index c70a85b..90e00ca 100644
--- a/src/main/java/net/doubledoordev/backend/webserver/Webserver.java
+++ b/src/main/java/net/doubledoordev/backend/webserver/Webserver.java
@@ -40,7 +40,6 @@
package net.doubledoordev.backend.webserver;
-import net.doubledoordev.backend.Main;
import net.doubledoordev.backend.permissions.Group;
import net.doubledoordev.backend.permissions.User;
import net.doubledoordev.backend.server.Server;
diff --git a/src/main/java/net/doubledoordev/backend/webserver/methods/Get.java b/src/main/java/net/doubledoordev/backend/webserver/methods/Get.java
index bb15eb8..da92921 100644
--- a/src/main/java/net/doubledoordev/backend/webserver/methods/Get.java
+++ b/src/main/java/net/doubledoordev/backend/webserver/methods/Get.java
@@ -48,7 +48,6 @@
import net.doubledoordev.backend.util.Constants;
import net.doubledoordev.backend.util.CustomLogAppender;
import net.doubledoordev.backend.util.Settings;
-import net.doubledoordev.backend.webserver.SimpleWebServer;
import net.doubledoordev.backend.webserver.Webserver;
import java.io.FileNotFoundException;
@@ -123,7 +122,7 @@ public static Response handleGet(HashMap dataObject, IHTTPSessio
return new Response(FORBIDDEN, MIME_HTML, resolveTemplate(dataObject, args, session));
}
- if (ADMINPAGES.contains(args[0].toLowerCase()) && !((User)dataObject.get("user")).isAdmin())
+ if (ADMINPAGES.contains(args[0].toLowerCase()) && !((User) dataObject.get("user")).isAdmin())
{
args[0] = String.valueOf(FORBIDDEN.getRequestStatus());
return new Response(FORBIDDEN, MIME_HTML, resolveTemplate(dataObject, args, session));
diff --git a/src/main/java/net/doubledoordev/backend/webserver/methods/Put.java b/src/main/java/net/doubledoordev/backend/webserver/methods/Put.java
index f45d7e7..db3dc1f 100644
--- a/src/main/java/net/doubledoordev/backend/webserver/methods/Put.java
+++ b/src/main/java/net/doubledoordev/backend/webserver/methods/Put.java
@@ -42,14 +42,12 @@
import net.doubledoordev.backend.Main;
import net.doubledoordev.backend.permissions.User;
-import net.doubledoordev.backend.server.Dimention;
import net.doubledoordev.backend.server.FileManager;
import net.doubledoordev.backend.server.Server;
import net.doubledoordev.backend.util.Settings;
import net.doubledoordev.backend.util.TypeHellhole;
import net.doubledoordev.backend.webserver.NanoHTTPD;
-import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
@@ -100,22 +98,6 @@ public static Response handlePut(HashMap dataObject, NanoHTTPD.I
if (!server.canUserControl((User) dataObject.get("user"))) return new Response(FORBIDDEN, MIME_PLAINTEXT, "Forbidden");
return invokeWithRefectionMagic(server.getWorldManager(), split, 2);
// ----------------------------------------------------------------------------------------------------------
- case "worldmanager_dim":
- server = Settings.getServerByName(split[1]);
- if (!server.canUserControl((User) dataObject.get("user"))) return new Response(FORBIDDEN, MIME_PLAINTEXT, "Forbidden");
-
- try
- {
- Integer dimid = Integer.parseInt(split[2]);
- HashMap dimentionMap = server.getWorldManager().getDimentionMap();
- if (dimentionMap.containsKey(dimid)) return invokeWithRefectionMagic(dimentionMap.get(dimid), split, 3);
- else return new Response(NOT_FOUND, MIME_PLAINTEXT, "Dimention not found");
- }
- catch (NumberFormatException e)
- {
- return new Response(INTERNAL_ERROR, MIME_PLAINTEXT, e.toString());
- }
- // ----------------------------------------------------------------------------------------------------------
case "users":
if (!(boolean) dataObject.get("admin")) return new Response(FORBIDDEN, MIME_PLAINTEXT, "Forbidden");
return invokeWithRefectionMagic(Settings.getUserByName(split[1]), split, 2);
@@ -158,8 +140,8 @@ private static Response invokeWithRefectionMagic(Object instance, String[] split
}
catch (InvocationTargetException e)
{
- e.getCause().printStackTrace();
- Main.LOGGER.warn(e.getCause());
+ Main.LOGGER.warn("ERROR invoking method via reflection: " + method.toString());
+ e.printStackTrace();
return new Response(INTERNAL_ERROR, MIME_PLAINTEXT, e.getCause().toString());
}
}
diff --git a/src/main/resources/templates/header.ftl b/src/main/resources/templates/header.ftl
index 493b647..9a93fce 100644
--- a/src/main/resources/templates/header.ftl
+++ b/src/main/resources/templates/header.ftl
@@ -90,7 +90,6 @@
Users
<#if user.isAdmin()>
Console
- Console
#if>
#if>
diff --git a/src/main/resources/templates/login.ftl b/src/main/resources/templates/login.ftl
index a6f2a84..227b57f 100644
--- a/src/main/resources/templates/login.ftl
+++ b/src/main/resources/templates/login.ftl
@@ -21,7 +21,10 @@
- Permission lvl: ${user.group}
+ Permission lvl: ${user.group}
+ Diskspace left: ${(user.diskspaceLeft == -1)?string("∞", user.diskspaceLeft)} MB
+ Servers left: ${(user.maxServers == -1)?string("∞", (user.maxServers - user.serverCount))}
+ RAM left: ${(user.maxRamLeft == -1)?string("∞", user.maxRamLeft)} MB
Diskspace in use:
- by server: ${server.diskspaceUse[0]}MB
- by backups: ${server.diskspaceUse[1]}MB
- total: ${server.diskspaceUse[2]}MB
+ by server: ${server.diskspaceUse[0]} MB
+ by backups: ${server.diskspaceUse[1]} MB
+ total: ${server.diskspaceUse[2]} MB
+ Diskspace left: ${(user.diskspaceLeft == -1)?string("∞", user.diskspaceLeft)} MB
Make a backup now:
@@ -28,16 +29,16 @@ ${wm.update()}
- <#list wm.dimentionMap?values as dim>
+ <#list server.getDimensionMap()?keys as dimid>
-
DIM${dim.dimid}
+ DIM${dimid}
-
-
+
+