diff --git a/src/main/java/net/vhati/modmanager/core/EmptyAwareSAXHandlerFactory.java b/src/main/java/net/vhati/modmanager/core/EmptyAwareSAXHandlerFactory.java index 5dd2302..da21a50 100644 --- a/src/main/java/net/vhati/modmanager/core/EmptyAwareSAXHandlerFactory.java +++ b/src/main/java/net/vhati/modmanager/core/EmptyAwareSAXHandlerFactory.java @@ -121,4 +121,4 @@ public class EmptyAwareSAXHandlerFactory implements SAXHandlerFactory { } } } -} \ No newline at end of file +} diff --git a/src/main/java/net/vhati/modmanager/core/FTLUtilities.java b/src/main/java/net/vhati/modmanager/core/FTLUtilities.java index 3575713..82b52a9 100644 --- a/src/main/java/net/vhati/modmanager/core/FTLUtilities.java +++ b/src/main/java/net/vhati/modmanager/core/FTLUtilities.java @@ -29,7 +29,7 @@ public class FTLUtilities { String humblePath = "FTL/resources"; String xdgDataHome = System.getenv("XDG_DATA_HOME"); - if (xdgDataHome == null) + if ( xdgDataHome == null ) xdgDataHome = System.getProperty("user.home") +"/.local/share"; File[] candidates = new File[] { @@ -174,4 +174,37 @@ public class FTLUtilities { } return result; } + + + /** + * Returns the directory for user profiles and saved games, or null. + */ + public static File findUserDataDir() { + + String xdgDataHome = System.getenv("XDG_DATA_HOME"); + if ( xdgDataHome == null ) + xdgDataHome = System.getProperty("user.home") +"/.local/share"; + + File[] candidates = new File[] { + // Windows XP + new File( System.getProperty("user.home") +"/My Documents/My Games/FasterThanLight" ), + // Windows Vista/7 + new File( System.getProperty("user.home") +"/Documents/My Games/FasterThanLight" ), + // Linux + new File( xdgDataHome +"/FasterThanLight" ), + // OSX + new File( System.getProperty("user.home") +"/Library/Application Support/FasterThanLight" ) + }; + + File result = null; + + for ( File candidate : candidates ) { + if ( candidate.isDirectory() && candidate.exists() ) { + result = candidate; + break; + } + } + + return result; + } } diff --git a/src/main/java/net/vhati/modmanager/core/ModUtilities.java b/src/main/java/net/vhati/modmanager/core/ModUtilities.java index 6d3e79e..ae30f49 100644 --- a/src/main/java/net/vhati/modmanager/core/ModUtilities.java +++ b/src/main/java/net/vhati/modmanager/core/ModUtilities.java @@ -27,6 +27,7 @@ import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import net.vhati.modmanager.core.EmptyAwareSAXHandlerFactory; import net.vhati.modmanager.core.Report; import net.vhati.modmanager.core.Report.ReportMessage; import net.vhati.modmanager.core.SloppyXMLParser;