diff --git a/pom.xml b/pom.xml
index 5465cc1..331f021 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
cn.CityCraft
RealBackpacks
- 0.1.3-SNAPSHOT
+ 0.1.4-SNAPSHOT
RealBackpacks
${project.name}
diff --git a/src/cn/citycraft/RealBackpacks/config/FileConfig.java b/src/cn/citycraft/RealBackpacks/config/FileConfig.java
index b2a1c14..3187efc 100644
--- a/src/cn/citycraft/RealBackpacks/config/FileConfig.java
+++ b/src/cn/citycraft/RealBackpacks/config/FileConfig.java
@@ -1,5 +1,6 @@
package cn.citycraft.RealBackpacks.config;
+import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -7,6 +8,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
+import java.io.Reader;
import java.io.Writer;
import java.util.logging.Level;
@@ -25,68 +27,82 @@ import com.google.common.base.Charsets;
import com.google.common.io.Files;
/**
- * An implementation of {@link Configuration} which saves all files in Yaml.
- * Note that this implementation is not synchronized.
+ * An implementation of {@link Configuration} which saves all files in Yaml. Note that this
+ * implementation is not synchronized.
*/
public class FileConfig extends YamlConfiguration {
- public static FileConfig init(File file) {
- return FileConfig.loadConfiguration(file);
- }
-
- public static FileConfig loadConfiguration(File file) {
- Validate.notNull(file, "File cannot be null");
- FileConfig config = new FileConfig();
- try {
- config.load(file);
- } catch (FileNotFoundException ex) {
- } catch (IOException ex) {
- Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
- } catch (InvalidConfigurationException ex) {
- Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
+ public static FileConfig init(File file) {
+ return FileConfig.loadConfiguration(file);
}
- return config;
- }
- protected final DumperOptions yamlOptions = new DumperOptions();
-
- protected final Representer yamlRepresenter = new YamlRepresenter();
-
- protected final Yaml yaml = new Yaml(new YamlConstructor(),
- yamlRepresenter, yamlOptions);
-
- @Override
- public void load(File file) throws FileNotFoundException, IOException,
- InvalidConfigurationException {
- Validate.notNull(file, "File cannot be null");
- final FileInputStream stream = new FileInputStream(file);
- load(new InputStreamReader(stream, Charsets.UTF_8));
- }
-
- @Override
- public void save(File file) throws IOException {
- Validate.notNull(file, "File cannot be null");
- Files.createParentDirs(file);
- String data = saveToString();
- Writer writer = new OutputStreamWriter(new FileOutputStream(file),
- Charsets.UTF_8);
- try {
- writer.write(data);
- } finally {
- writer.close();
+ public static FileConfig loadConfiguration(File file) {
+ Validate.notNull(file, "File cannot be null");
+ FileConfig config = new FileConfig();
+ try {
+ config.load(file);
+ } catch (FileNotFoundException ex) {
+ } catch (IOException ex) {
+ Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
+ } catch (InvalidConfigurationException ex) {
+ Bukkit.getLogger().log(Level.SEVERE, "Cannot load " + file, ex);
+ }
+ return config;
}
- }
- @Override
- public String saveToString() {
- yamlOptions.setIndent(options().indent());
- yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- yamlRepresenter.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- String header = buildHeader();
- String dump = yaml.dump(getValues(false));
- if (dump.equals(BLANK_CONFIG)) {
- dump = "";
+ protected final DumperOptions yamlOptions = new DumperOptions();
+
+ protected final Representer yamlRepresenter = new YamlRepresenter();
+
+ protected final Yaml yaml = new Yaml(new YamlConstructor(), yamlRepresenter, yamlOptions);
+
+ @Override
+ public void load(File file) throws FileNotFoundException, IOException, InvalidConfigurationException {
+ Validate.notNull(file, "File cannot be null");
+ final FileInputStream stream = new FileInputStream(file);
+ load(new InputStreamReader(stream, Charsets.UTF_8));
+ }
+
+ @Override
+ public void load(Reader reader) throws IOException, InvalidConfigurationException {
+ BufferedReader input = (reader instanceof BufferedReader) ? (BufferedReader) reader
+ : new BufferedReader(reader);
+ StringBuilder builder = new StringBuilder();
+ try {
+ String line;
+ while ((line = input.readLine()) != null) {
+ builder.append(line);
+ builder.append('\n');
+ }
+ } finally {
+ input.close();
+ }
+ loadFromString(builder.toString());
+ }
+
+ @Override
+ public void save(File file) throws IOException {
+ Validate.notNull(file, "File cannot be null");
+ Files.createParentDirs(file);
+ String data = saveToString();
+ Writer writer = new OutputStreamWriter(new FileOutputStream(file), Charsets.UTF_8);
+ try {
+ writer.write(data);
+ } finally {
+ writer.close();
+ }
+ }
+
+ @Override
+ public String saveToString() {
+ yamlOptions.setIndent(options().indent());
+ yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ yamlRepresenter.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ String header = buildHeader();
+ String dump = yaml.dump(getValues(false));
+ if (dump.equals(BLANK_CONFIG)) {
+ dump = "";
+ }
+ return header + dump;
}
- return header + dump;
- }
}
diff --git a/src/plugin.yml b/src/plugin.yml
index 1d868f9..b4e1682 100644
--- a/src/plugin.yml
+++ b/src/plugin.yml
@@ -1,6 +1,6 @@
name: RealBackpacks
main: cn.citycraft.RealBackpacks.RealBackpacks
-version: 0.1.3
+version: 0.1.4
author: Slayr288,喵♂呜
softdepend: [Vault]
commands: