diff options
author | mdway <romangraef@gmail.com> | 2020-04-28 15:12:31 +0200 |
---|---|---|
committer | mdway <romangraef@gmail.com> | 2020-04-28 15:12:31 +0200 |
commit | 677d35402573a0be0c9a76ca17263f32c4a7d926 (patch) | |
tree | f36d67b3ec6052b36486f4059b5a08ff380332b1 /src/main/java/de/romjaki/selfbot/Config.java | |
parent | f43ccf4105da2b38a579500d115c4bb818a330f2 (diff) | |
download | Selfbot-master.tar.gz Selfbot-master.tar.bz2 Selfbot-master.zip |
Diffstat (limited to 'src/main/java/de/romjaki/selfbot/Config.java')
-rw-r--r-- | src/main/java/de/romjaki/selfbot/Config.java | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/main/java/de/romjaki/selfbot/Config.java b/src/main/java/de/romjaki/selfbot/Config.java index f2cf900..6ed13c7 100644 --- a/src/main/java/de/romjaki/selfbot/Config.java +++ b/src/main/java/de/romjaki/selfbot/Config.java @@ -5,7 +5,8 @@ import net.dv8tion.jda.core.utils.SimpleLog; import java.io.*; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.Scanner; +import java.util.Hashtable; +import java.util.Properties; import java.util.stream.Stream; /** @@ -32,30 +33,15 @@ public class Config { } public static Config getConfig(File file) { + file = file.getAbsoluteFile(); if (file.isDirectory()) { SimpleLog.getLog("startup").fatal("Config file is a directory"); System.exit(1); } - try (Scanner s = new Scanner(file)) { - Config c = new Config(); - Class<? extends Config> clazz = c.getClass(); - while (s.hasNextLine()) { - String line = s.nextLine(); - String[] tmp = line.split(":", 2); - String key = tmp[0].trim(); - String val = tmp[1].trim(); - if (val.isEmpty()) continue; - try { - Field f = clazz.getField(key.toUpperCase()); - if (f == null || !f.isAnnotationPresent(Configurable.class) || Modifier.isStatic(f.getModifiers())) - continue; - f.set(c, val); - } catch (Exception e) { - continue; - } - } - return c; - } catch (FileNotFoundException e) { + Properties props = new Properties(); + try (InputStream is = new FileInputStream(file)) { + props.load(is); + } catch (IOException e) { SimpleLog.getLog("startup").fatal("Config not found. Trying to generate file. Fill in the information and restart."); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); @@ -69,7 +55,20 @@ public class Config { } System.exit(1); } - return null; + Config c = new Config(); + Class<? extends Config> clazz = c.getClass(); + ((Hashtable<String, String>) (Hashtable)props).forEach((key, val) -> { + if (val.isEmpty()) return; + try { + Field f = clazz.getField(key.toUpperCase()); + if (f == null || !f.isAnnotationPresent(Configurable.class) || Modifier.isStatic(f.getModifiers())) + return; + f.set(c, val); + } catch (Exception e) { + return; + } + }); + return c; } private static void writeTemplateToFile(File file) { @@ -83,7 +82,7 @@ public class Config { private static String buildTemplate() { StringBuilder sb = new StringBuilder(); - Stream.of(Config.class.getFields()).forEach(s -> sb.append(s.getName().toUpperCase()).append(':').append(System.lineSeparator())); + Stream.of(Config.class.getFields()).forEach(s -> sb.append(s.getName().toUpperCase()).append('=').append(System.lineSeparator())); return sb.toString(); } } |