diff --git a/pom.xml b/pom.xml
index 93f444d..f4c1253 100755
--- a/pom.xml
+++ b/pom.xml
@@ -30,9 +30,9 @@
- git-parabot
- Parabot's Git based repo
- https://github.com/parabot/Maven-Repository/raw/master/
+ parabot-maven
+ Parabot its Maven Repository
+ http://maven.parabot.org/
@@ -65,6 +65,11 @@
4.11
provided
+
+ org.parabot
+ internal-api
+ 1.02.7
+
diff --git a/src/main/java/org/parabot/Landing.java b/src/main/java/org/parabot/Landing.java
index 98d3dbc..4afc7f0 100644
--- a/src/main/java/org/parabot/Landing.java
+++ b/src/main/java/org/parabot/Landing.java
@@ -18,10 +18,10 @@ import java.io.IOException;
import java.net.URI;
/**
- * Parabot v2.1
+ * Parabot v2.6
*
- * @author Everel/Parnassian/Clisprail, Paradox/JKetelaar, Matt, Dane
- * @version 2.1
+ * @author Everel, JKetelaar, Matt, Dane
+ * @version 2.6
* @see Homepage
*/
public final class Landing {
@@ -60,6 +60,7 @@ public final class Landing {
Core.verbose("Validating directories...");
Directories.validate();
+
Core.verbose("Validating account manager...");
AccountManager.validate();
diff --git a/src/main/java/org/parabot/core/Directories.java b/src/main/java/org/parabot/core/Directories.java
index d18ae07..15cd164 100644
--- a/src/main/java/org/parabot/core/Directories.java
+++ b/src/main/java/org/parabot/core/Directories.java
@@ -1,15 +1,5 @@
package org.parabot.core;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.ParseException;
-import org.parabot.environment.OperatingSystem;
-import org.parabot.environment.api.utils.StringUtils;
-import org.parabot.environment.api.utils.WebUtil;
-
-import javax.swing.*;
-import java.io.*;
-import java.util.*;
-
/**
* Holds and manages Parabot's used directories
*
@@ -17,321 +7,6 @@ import java.util.*;
* @author JKetelaar
* @author Matt
*/
-public class Directories {
- private static Map cached;
- private static String tempDir;
+public class Directories extends org.parabot.api.io.Directories {
- static {
- cached = new HashMap<>();
- switch (OperatingSystem.getOS()) {
- case WINDOWS:
- cached.put("Root", new JFileChooser().getFileSystemView().getDefaultDirectory());
- break;
- default:
- cached.put("Root", new File(System.getProperty("user.home")));
- }
-
- Core.verbose("Caching directories...");
- cached.put("Root", getDefaultDirectory());
- cached.put("Workspace", new File(cached.get("Root"), "/Parabot/"));
- cached.put("Sources", new File(cached.get("Root"), "/Parabot/scripts/sources/"));
- cached.put("Compiled", new File(cached.get("Root"), "/Parabot/scripts/compiled/"));
- cached.put("Resources", new File(cached.get("Root"), "/Parabot/scripts/resources/"));
- cached.put("Settings", new File(cached.get("Root"), "/Parabot/settings/"));
- cached.put("Servers", new File(cached.get("Root"), "/Parabot/servers/"));
- cached.put("Cache", new File(cached.get("Root"), "/Parabot/cache/"));
- cached.put("Screenshots", new File(cached.get("Root"), "/Parabot/screenshots/"));
- Core.verbose("Directories cached.");
-
- clearCache(259200);
- if (Core.isSecure()) {
- setHomeDirectory();
- }
- }
-
- private static void setHomeDirectory(){
- File cache;
- tempDir = StringUtils.randomString(12);
- try {
- if ((cache = new File(Directories.getSettingsPath(), "cache.json")).exists()){
- JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(new FileReader(cache));
- String temp;
- if ((temp = (String) object.get("homedir")) != null){
- cached.put("Home", new File(cached.get("Root"), "/" + temp + "/"));
- }
- }else{
- cached.put("Home", createCacheDirectory(cache));
- }
- } catch (IOException | ParseException ignored) {
- cached.put("Home", new File(cached.get("Root"), "/" + tempDir + "/"));
- }
- if (!cached.get("Home").exists()) {
- cached.get("Home").mkdirs();
- }
- System.out.println("Set temporary cache directory to: " + cached.get("Home"));
- }
-
- private static File createCacheDirectory(File cacheFile) throws IOException {
- cacheFile.createNewFile();
- JSONObject object = new JSONObject();
- object.put("homedir", tempDir);
- FileWriter file = new FileWriter(cacheFile);
- file.write(object.toJSONString());
- file.flush();
- file.close();
-
- File cacheDir = new File(cached.get("Root"), "/" + tempDir + "/");
- if (!cacheDir.exists()) {
- cacheDir.mkdirs();
- }
-
- return cacheDir;
- }
-
- /**
- * Set script bin folder
- *
- * @param f
- */
- public static void setScriptCompiledDirectory(File f) {
- if (!f.isDirectory()) {
- throw new IllegalArgumentException(f + "is not a directory.");
- }
- cached.put("Compiled", f);
- }
-
- /**
- * Set server bin folder
- *
- * @param f
- */
- public static void setServerCompiledDirectory(File f) {
- if (!f.isDirectory()) {
- throw new IllegalArgumentException(f + "is not a directory.");
- }
- cached.put("Servers", f);
- }
-
-
- /**
- * Returns the root directory outside of the main Parabot folder.
- *
- * @return
- */
- public static File getDefaultDirectory() {
- return cached.get("Root");
- }
-
- /**
- * Returns the Parabot folder.
- *
- * @return
- */
- public static File getWorkspace() {
- return cached.get("Workspace");
- }
-
- /**
- * Returns the script sources folder.
- *
- * @return
- */
- public static File getScriptSourcesPath() {
- return cached.get("Sources");
- }
-
- /**
- * Returns the compiled scripts folder.
- *
- * @return
- */
- public static File getScriptCompiledPath() {
- return cached.get("Compiled");
- }
-
- /**
- * Returns the scripts resources folder.
- *
- * @return
- */
- public static File getResourcesPath() {
- return cached.get("Resources");
- }
-
- /**
- * Returns the Parabot settings folder.
- *
- * @return
- */
- public static File getSettingsPath() {
- return cached.get("Settings");
- }
-
- /**
- * Returns the Parabot servers folder.
- *
- * @return
- */
- public static File getServerPath() {
- return cached.get("Servers");
- }
-
- /**
- * Returns the Parabot cache folder.
- *
- * @return
- */
- public static File getCachePath() {
- return cached.get("Cache");
- }
-
- /**
- * Returns the redirected Home Directory
- * @return
- */
- public static File getHomeDir() {
- return cached.get("Home");
- }
-
-
- /**
- * Returns the screenshot folder.
- *
- * @return
- */
- public static File getScreenshotDir() {
- return cached.get("Screenshots");
- }
-
- /**
- * Validates all directories and makes them if necessary
- */
- public static void validate() {
- final File defaultPath = getDefaultDirectory();
- if (defaultPath == null || !defaultPath.exists()) {
- throw new RuntimeException("Default path not found");
- }
- final Queue files = new LinkedList();
- files.addAll(cached.values());
- while (files.size() > 0) {
- final File file = files.poll();
- if (!file.exists()) {
- Core.verbose("Generating directory: " + file.getAbsolutePath());
- file.mkdirs();
- if (!file.exists()) {
- System.err.println("Failed to make directory: " + file.getAbsolutePath());
- }
- }
- }
- }
-
- private static File temp = null;
-
- public static File getTempDirectory() {
- if (temp != null) {
- return temp;
- }
- int randomNum = new Random().nextInt(999999999);
- temp = new File(getResourcesPath(), randomNum + "/");
- temp.mkdirs();
- temp.deleteOnExit();
- return temp;
- }
-
- /**
- * Clears the cache based on the latest modification
- *
- * @param remove A long that represents the amount of seconds that a file may have since the latest modification
- * @param force Defines if the cache folder, within user.home, should also be removed
- */
- public static void clearCache(int remove, boolean force){
- File[] cache = getCachePath().listFiles();
- if (cache != null) {
- for (File f : cache) {
- if (f != null && System.currentTimeMillis() / 1000 - f.lastModified() / 1000 > remove) {
- Core.verbose("Clearing " + f.getName() + " from cache...");
- f.delete();
- }
- }
- }
-
- if (force){
- File cacheFile;
-
- if ((cacheFile = new File(Directories.getSettingsPath(), "cache.json")).exists()){
- try {
- JSONObject jsonObject = (JSONObject) WebUtil.getJsonParser().parse(new FileReader(cacheFile));
- if (jsonObject != null){
- Object dirObject;
- if ((dirObject = jsonObject.get("homedir")) != null) {
- String dir = (String) dirObject;
- if (dir.length() > 0) {
- File cacheDir = new File(cached.get("Root"), "/" + dir + "/");
- removeDirectory(cacheDir);
- createCacheDirectory(cacheFile);
- }
- }
- }
-
- } catch (IOException | ParseException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- private static void clearCache(int remove) {
- clearCache(remove, false);
- }
-
- public static void clearCache() {
- clearCache(0, true);
- }
-
- /**
- * @param file Directory to be removed
- */
- private static void removeDirectory(File file) {
- if (file.isDirectory()) {
- if (file.list().length == 0) {
- file.delete();
- Core.verbose("Directory is deleted : "
- + file.getAbsolutePath());
- } else {
- String files[] = file.list();
- for (String temp : files) {
- File fileDelete = new File(file, temp);
- removeDirectory(fileDelete);
- }
-
- if (file.list().length == 0) {
- file.delete();
- Core.verbose("Directory is deleted : "
- + file.getAbsolutePath());
- }
- }
- } else {
- file.delete();
- Core.verbose("File is deleted : " + file.getAbsolutePath());
- }
- }
-
- /**
- * Returns an array of files with from a given directory and a given extension
- *
- * @param directory The directory where should be searched
- * @param extension The extension to be searched for, including the dot (like .json)
- * @return An array of of files that match the request
- */
- public static File[] listFilesWithExtension(File directory, final String extension){
- return directory.listFiles(new FilenameFilter() {
- public boolean accept(File dir, String filename) {
- return filename.endsWith(extension);
- }
- });
- }
-
- public static File[] listJSONFiles(File directory) {
- return listFilesWithExtension(directory, ".json");
- }
-}
+}
\ No newline at end of file