diff --git a/src/main/java/com/skcraft/launcher/Launcher.java b/src/main/java/com/skcraft/launcher/Launcher.java index 05747b7..9883555 100644 --- a/src/main/java/com/skcraft/launcher/Launcher.java +++ b/src/main/java/com/skcraft/launcher/Launcher.java @@ -63,7 +63,8 @@ SharedLocale.loadBundle("com.skcraft.launcher.lang.Launcher", Locale.getDefault()); this.baseDir = baseDir; - this.properties = LauncherUtils.loadProperties(Launcher.class, "launcher.properties"); + this.properties = LauncherUtils.loadProperties(Launcher.class, + "launcher.properties", "com.skcraft.launcher.propertiesFile"); this.instances = new InstanceList(this); this.assets = new AssetsRoot(new File(baseDir, "assets")); this.config = Persistence.load(new File(baseDir, "config.json"), Configuration.class); diff --git a/src/main/java/com/skcraft/launcher/LauncherUtils.java b/src/main/java/com/skcraft/launcher/LauncherUtils.java index 9c5bcb5..0cf6e99 100644 --- a/src/main/java/com/skcraft/launcher/LauncherUtils.java +++ b/src/main/java/com/skcraft/launcher/LauncherUtils.java @@ -37,15 +37,23 @@ } } - public static Properties loadProperties(Class clazz, String name) throws IOException { + public static Properties loadProperties(Class clazz, String name, String extraProperty) throws IOException { Closer closer = Closer.create(); Properties prop = new Properties(); try { InputStream in = closer.register(clazz.getResourceAsStream(name)); prop.load(in); + String extraPath = System.getProperty(extraProperty); + if (extraPath != null) { + log.info("Loading extra properties for " + + clazz.getCanonicalName() + ":" + name + " from " + extraPath + "..."); + in = closer.register(new BufferedInputStream(closer.register(new FileInputStream(extraPath)))); + prop.load(in); + } } finally { closer.close(); } + return prop; }