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 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
  • 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