From ced54c6157a60452b8d639f3c1186530f178c2dc Mon Sep 17 00:00:00 2001
From: Max Wittig <max.wittig95@gmail.com>
Date: Fri, 28 Oct 2016 00:01:35 +0200
Subject: [PATCH] added config for stop using the same location strings over
 and over

---
 src/de/bricked/game/Config.java                  | 14 ++++++++++++++
 src/de/bricked/game/levels/LevelPackHandler.java | 10 +++++-----
 src/de/bricked/game/settings/Settings.java       |  8 ++++----
 src/de/bricked/game/sound/SoundHandler.java      |  3 ++-
 src/de/bricked/utils/Downloader.java             | 15 ++-------------
 src/de/bricked/utils/FileUtils.java              |  2 +-
 6 files changed, 28 insertions(+), 24 deletions(-)
 create mode 100644 src/de/bricked/game/Config.java

diff --git a/src/de/bricked/game/Config.java b/src/de/bricked/game/Config.java
new file mode 100644
index 0000000..138f2d6
--- /dev/null
+++ b/src/de/bricked/game/Config.java
@@ -0,0 +1,14 @@
+package de.bricked.game;
+
+import tools.PathUtils;
+
+public class Config
+{
+    public final static String FILESYSTEM_ROOT_DIR = PathUtils.getOSindependentPath()+"/deadspaghetti/bricked/";
+    public final static String FILESYSTEM_LEVELPACK_SAVEDIR = FILESYSTEM_ROOT_DIR+"levelpacks/";
+
+    public final static String JAR_ROOT_DIR = "/de/bricked/resources/";
+    public final static String JAR_LEVELPACK_SAVEDIR = JAR_ROOT_DIR+"levelpacks/";
+    public final static String JAR_SOUND_SAVEDIR = JAR_ROOT_DIR + "sounds/";
+
+}
diff --git a/src/de/bricked/game/levels/LevelPackHandler.java b/src/de/bricked/game/levels/LevelPackHandler.java
index 216f162..dc27b33 100644
--- a/src/de/bricked/game/levels/LevelPackHandler.java
+++ b/src/de/bricked/game/levels/LevelPackHandler.java
@@ -1,5 +1,6 @@
 package de.bricked.game.levels;
 
+import de.bricked.game.Config;
 import de.bricked.utils.FileUtils;
 import tools.PathUtils;
 
@@ -12,7 +13,6 @@ import java.util.Comparator;
 
 public class LevelPackHandler
 {
-    private static final String directory = "/de/bricked/resources/levelpacks/";
     private static final String DEFAULT_PACKAGE_NAME = "default";
 
     private static ArrayList<LevelPack> sort(ArrayList<LevelPack> levelPackArrayList)
@@ -60,11 +60,11 @@ public class LevelPackHandler
         ArrayList<String> stringArrayList = new ArrayList<>();
         try
         {
-            String text = FileUtils.getFileContentFromJar(directory+"files.txt");
+            String text = FileUtils.getFileContentFromJar(Config.JAR_LEVELPACK_SAVEDIR+"files.txt");
             String[] filenamesArray = text.split(" ");
             for(String filename : filenamesArray)
             {
-                stringArrayList.add(FileUtils.getFileContentFromJar(directory + filename));
+                stringArrayList.add(FileUtils.getFileContentFromJar(Config.JAR_LEVELPACK_SAVEDIR + filename));
             }
 
         }
@@ -77,9 +77,9 @@ public class LevelPackHandler
 
     private static ArrayList<String> getFileContentFromUserDir()
     {
-        PathUtils.checkFolder(PathUtils.getOSindependentPath().toFile());
+        File folder = new File(Config.FILESYSTEM_LEVELPACK_SAVEDIR);
+        PathUtils.checkFolder(folder);
         ArrayList<String> stringContent = new ArrayList<>();
-        File folder = new File(PathUtils.getOSindependentPath().toFile(), "deadspaghetti/bricked/levelpacks/");
         File[] files = folder.listFiles();
         if(files == null)
         {
diff --git a/src/de/bricked/game/settings/Settings.java b/src/de/bricked/game/settings/Settings.java
index 40e07b1..3c571c5 100644
--- a/src/de/bricked/game/settings/Settings.java
+++ b/src/de/bricked/game/settings/Settings.java
@@ -1,5 +1,6 @@
 package de.bricked.game.settings;
 import com.google.gson.Gson;
+import de.bricked.game.Config;
 import logger.LogLevel;
 import logger.Logger;
 import tools.PathUtils;
@@ -15,7 +16,6 @@ public class Settings
     private String language; //TODO change this to lanugage class maybe?
     private double volume;
     private boolean muted;
-    private transient final String directory = "/deadspaghetti/bricked/";
     private transient final String filename = "settings.json";
     private transient Gson gson;
     private transient File file;
@@ -23,8 +23,8 @@ public class Settings
     public Settings()
     {
         gson = new Gson();
-        PathUtils.checkFolder(new File(PathUtils.getOSindependentPath() + directory));
-        file = new File(PathUtils.getOSindependentPath() + directory + filename);
+        PathUtils.checkFolder(new File(Config.FILESYSTEM_ROOT_DIR));
+        file = new File(Config.FILESYSTEM_ROOT_DIR + filename);
         initDefaultSettings();
     }
 
@@ -56,7 +56,7 @@ public class Settings
     {
         try
         {
-            String jsonContent = new String(Files.readAllBytes(FileSystems.getDefault().getPath(PathUtils.getOSindependentPath().toAbsolutePath() + directory + filename)));
+            String jsonContent = new String(Files.readAllBytes(FileSystems.getDefault().getPath(Config.FILESYSTEM_ROOT_DIR + filename)));
             System.out.println(jsonContent);
             Settings loadedSettings = gson.fromJson(jsonContent, Settings.class);
             this.gameSize = loadedSettings.gameSize;
diff --git a/src/de/bricked/game/sound/SoundHandler.java b/src/de/bricked/game/sound/SoundHandler.java
index f666114..9e8f4df 100644
--- a/src/de/bricked/game/sound/SoundHandler.java
+++ b/src/de/bricked/game/sound/SoundHandler.java
@@ -3,6 +3,7 @@ package de.bricked.game.sound;
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
 
+import de.bricked.game.Config;
 import javafx.scene.media.Media;
 import javafx.scene.media.MediaPlayer;
 import logger.LogLevel;
@@ -25,7 +26,7 @@ public class SoundHandler
         {
             try
             {
-                String path = SoundHandler.class.getResource("/de/bricked/resources/sounds/" + soundID + ".mp3").toURI().toURL().toString();
+                String path = SoundHandler.class.getResource(Config.JAR_SOUND_SAVEDIR + soundID + ".mp3").toURI().toURL().toString();
                 Media sound = new Media(path);
                 MediaPlayer mediaPlayer = new MediaPlayer(sound);
                 mediaPlayer.setVolume(volume);
diff --git a/src/de/bricked/utils/Downloader.java b/src/de/bricked/utils/Downloader.java
index 0c6f65c..bd0a608 100644
--- a/src/de/bricked/utils/Downloader.java
+++ b/src/de/bricked/utils/Downloader.java
@@ -1,27 +1,16 @@
 package de.bricked.utils;
 
 
+import de.bricked.game.Config;
 import de.bricked.game.levels.LevelPack;
 import de.bricked.game.levels.LevelPackParser;
-import tools.PathUtils;
-
-import java.io.File;
 import java.io.FileWriter;
-import java.nio.file.Paths;
 
 public class Downloader
 {
     private LevelPack levelPack;
     private LevelPackParser levelPackParser;
     private String downloadedString = "";
-    private String outDir;
-    private String dirname = "/deadspaghetti/bricked/levelpacks/";
-
-    public Downloader()
-    {
-        outDir = PathUtils.getOSindependentPath()+dirname;
-        PathUtils.checkFolder(new File(outDir));
-    }
 
     public void download(String url)
     {
@@ -35,7 +24,7 @@ public class Downloader
     {
         try
         {
-            FileWriter fileWriter = new FileWriter(outDir+getPackName()+".json");
+            FileWriter fileWriter = new FileWriter(Config.FILESYSTEM_LEVELPACK_SAVEDIR +getPackName()+".json");
             fileWriter.write(downloadedString);
             fileWriter.flush();
             fileWriter.close();
diff --git a/src/de/bricked/utils/FileUtils.java b/src/de/bricked/utils/FileUtils.java
index accdf3c..e748c31 100644
--- a/src/de/bricked/utils/FileUtils.java
+++ b/src/de/bricked/utils/FileUtils.java
@@ -4,6 +4,7 @@ package de.bricked.utils;
 import de.bricked.game.levels.LevelPackHandler;
 import logger.LogLevel;
 import logger.Logger;
+import tools.PathUtils;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
@@ -13,7 +14,6 @@ import java.net.URL;
 
 public class FileUtils
 {
-
     private static String getContentsFromInputStream(InputStream inputStream) throws Exception
     {
         BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
-- 
GitLab