diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java | 62 |
1 files changed, 47 insertions, 15 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java index c1757d1..84ad5b4 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/ConfigManager.java @@ -1,3 +1,22 @@ +/* + * This file is part of Kenshins Hide and Seek + * + * Copyright (c) 2021 Tyler Murphy. + * + * Kenshins Hide and Seek free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * he Free Software Foundation version 3. + * + * Kenshins Hide and Seek is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + package net.tylermurphy.hideAndSeek.configuration; import net.tylermurphy.hideAndSeek.Main; @@ -11,17 +30,20 @@ import java.util.Map; public class ConfigManager { - private File file; + private final File file; private YamlConfiguration config,defaultConfig; private String defaultFilename; public ConfigManager(String filename){ - this.file = new File(Main.plugin.getDataFolder(), filename); + this.file = new File(Main.data, filename); this.defaultFilename = file.getName(); - File folder = Main.plugin.getDataFolder(); - if(!folder.exists()) - folder.mkdirs(); + File folder = Main.data; + if(!folder.exists()){ + if(!folder.mkdirs()){ + throw new RuntimeException("Failed to make directory: " + file.getPath()); + } + } if(!file.exists()){ saveDefaultConfiguration(); @@ -30,18 +52,21 @@ public class ConfigManager { this.config = YamlConfiguration.loadConfiguration(file); InputStream input = Main.plugin.getResource(file.getName()); + if(input == null){ + throw new RuntimeException("Could not create input stream for "+file.getPath()); + } InputStreamReader reader = new InputStreamReader(input); this.defaultConfig = YamlConfiguration.loadConfiguration(reader); try{ input.close(); reader.close(); - } catch (IOException e){} + } catch (IOException ignored){} } public ConfigManager(String filename, String defaultFilename){ this.defaultFilename = defaultFilename; - this.file = new File(Main.plugin.getDataFolder(), filename); + this.file = new File(Main.data, filename); if(!file.exists()){ saveDefaultConfiguration(); @@ -50,6 +75,9 @@ public class ConfigManager { this.config = YamlConfiguration.loadConfiguration(file); InputStream input = Main.plugin.getResource(defaultFilename); + if(input == null){ + throw new RuntimeException("Could not create input stream for "+defaultFilename); + } InputStreamReader reader = new InputStreamReader(input); this.defaultConfig = YamlConfiguration.loadConfiguration(reader); try{ @@ -65,6 +93,9 @@ public class ConfigManager { private void saveDefaultConfiguration(){ try{ InputStream input = Main.plugin.getResource(defaultFilename); + if(input == null){ + throw new RuntimeException("Could not create input stream for "+defaultFilename); + } java.nio.file.Files.copy(input, file.toPath()); input.close(); } catch(IOException e){ @@ -72,10 +103,6 @@ public class ConfigManager { } } - public void addToConfig(String path, Object value) { - config.set(path, value); - } - public double getDouble(String path){ double value = config.getDouble(path); if(value == 0.0D){ @@ -111,6 +138,9 @@ public class ConfigManager { this.defaultFilename = newDefaultFilename; InputStream input = Main.plugin.getResource(defaultFilename); + if(input == null){ + throw new RuntimeException("Could not create input stream for "+defaultFilename); + } InputStreamReader reader = new InputStreamReader(input); this.config = YamlConfiguration.loadConfiguration(reader); this.defaultConfig = YamlConfiguration.loadConfiguration(reader); @@ -119,7 +149,7 @@ public class ConfigManager { public boolean getBoolean(String path){ boolean value = config.getBoolean(path); - if(value == false){ + if(!value){ return defaultConfig.getBoolean(path); } else { return true; @@ -142,9 +172,12 @@ public class ConfigManager { public void saveConfig(){ try { InputStream is = Main.plugin.getResource(defaultFilename); + if(is == null){ + throw new RuntimeException("Could not create input stream for "+defaultFilename); + } StringBuilder textBuilder = new StringBuilder(); Reader reader = new BufferedReader(new InputStreamReader(is, Charset.forName(StandardCharsets.UTF_8.name()))); - int c = 0; + int c; while((c = reader.read()) != -1){ textBuilder.append((char) c); } @@ -165,7 +198,7 @@ public class ConfigManager { i++; if(index == -1) break; } - if(index < 10) continue;; + if(index < 10) continue; int start = yamlString.indexOf(' ', index); int end = yamlString.indexOf('\n', index); if(end == -1) end = yamlString.length(); @@ -173,7 +206,6 @@ public class ConfigManager { if(entry.getValue() instanceof String){ replace = "\"" + replace + "\""; } - System.out.println(entry.getKey() + " " + index + " " + start + " " + end); StringBuilder builder = new StringBuilder(yamlString); builder.replace(start+1, end, replace); yamlString = builder.toString(); |