From 2bd3f2227d98e8dcef42f0b3974063d47e46d86a Mon Sep 17 00:00:00 2001 From: ElgarL Date: Fri, 13 Jul 2012 13:38:53 +0100 Subject: Change to our own Yaml parsing for globalgroups instead of using the YAMLConfiguration class in bukkit. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../org/anjocaido/groupmanager/GlobalGroups.java | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'EssentialsGroupManager/src') diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index c736d9ee2..c8b8260c7 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -188,4 +188,5 @@ v 2.0: - Fix loading users with only numerals in their names to be seen as strings. - Ignore any sub folders in the Worlds folder which start with a period (fix for storing data in svn respoitories). - Throw a better error than 'null' when someone removes all groups from a yml. - - Stop force removing attachments and let Bukkit handle it's own mess. \ No newline at end of file + - Stop force removing attachments and let Bukkit handle it's own mess. + - Change to our own Yaml parsing for globalgroups instead of using the YAMLConfiguration class in bukkit. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java index 04d9e86be..a84666b8e 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java @@ -1,6 +1,7 @@ package org.anjocaido.groupmanager; import java.io.File; +import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -20,9 +21,10 @@ import org.anjocaido.groupmanager.events.GroupManagerEventHandler; import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.Tasks; import org.bukkit.configuration.MemorySection; -import org.bukkit.configuration.file.YamlConfiguration; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.SafeConstructor; +import org.yaml.snakeyaml.reader.UnicodeReader; /** * @author ElgarL @@ -31,7 +33,7 @@ import org.yaml.snakeyaml.Yaml; public class GlobalGroups { private GroupManager plugin; - private YamlConfiguration GGroups; + //private Yaml GGroups; private Map groups; @@ -89,8 +91,9 @@ public class GlobalGroups { @SuppressWarnings("unchecked") public void load() { - GGroups = new YamlConfiguration(); - + Yaml GGroupYAML = new Yaml(new SafeConstructor()); + Map GGroups; + GroupManager.setLoaded(false); // READ globalGroups FILE @@ -106,8 +109,13 @@ public class GlobalGroups { } } + /* + * Load the YAML file. + */ try { - GGroups.load(GlobalGroupsFile); + FileInputStream groupsInputStream = new FileInputStream(GlobalGroupsFile); + GGroups = (Map) GGroupYAML.load(new UnicodeReader(groupsInputStream)); + groupsInputStream.close(); } catch (Exception ex) { throw new IllegalArgumentException("The following file couldn't pass on Parser.\n" + GlobalGroupsFile.getPath(), ex); } @@ -115,12 +123,12 @@ public class GlobalGroups { // Clear out old groups resetGlobalGroups(); - if (!GGroups.getKeys(false).isEmpty()) { + if (!GGroups.keySet().isEmpty()) { // Read all global groups Map allGroups = new HashMap(); try { - allGroups = (Map) GGroups.getConfigurationSection("groups").getValues(false); + allGroups = (Map) GGroups.get("groups"); } catch (Exception ex) { // ex.printStackTrace(); throw new IllegalArgumentException("Your " + GlobalGroupsFile.getPath() + " file is invalid. See console for details.", ex); -- cgit v1.2.3