diff options
author | ElgarL <ElgarL@palmergames.com> | 2012-03-26 19:18:19 +0100 |
---|---|---|
committer | ElgarL <ElgarL@palmergames.com> | 2012-03-26 19:18:19 +0100 |
commit | 246c62ea153d1a622646e424eff25c6f665c8295 (patch) | |
tree | 015ab9968e3435b1838a3d50bd3658a94e2960d9 /EssentialsGroupManager/src | |
parent | b13d2ae7875fa266408b34e338960256e07a82bf (diff) | |
download | Essentials-246c62ea153d1a622646e424eff25c6f665c8295.tar Essentials-246c62ea153d1a622646e424eff25c6f665c8295.tar.gz Essentials-246c62ea153d1a622646e424eff25c6f665c8295.tar.lz Essentials-246c62ea153d1a622646e424eff25c6f665c8295.tar.xz Essentials-246c62ea153d1a622646e424eff25c6f665c8295.zip |
Treat all world names as lower case for file handling (please check in
your worlds folder. You should have no folders with upper case letters
from now).
Diffstat (limited to 'EssentialsGroupManager/src')
-rw-r--r-- | EssentialsGroupManager/src/Changelog.txt | 3 | ||||
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java | 44 |
2 files changed, 28 insertions, 19 deletions
diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 6bedf7e90..5ee1a386e 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -151,4 +151,5 @@ v 1.9: - Better reporting when a users.yml is failing to load.
- Expanded '/manuadd'to accept an optional variable for the world (eg '/manuadd <player> <group> <world>').
- Removed some debug spam.
- - Don't remove an attachment on a player leaving as Bukkit never forgets it. This fixes non mirrored permissions being messed up if a player relogs.
\ No newline at end of file + - Don't remove an attachment on a player leaving as Bukkit never forgets it. This fixes non mirrored permissions being messed up if a player relogs.
+ - Treat all world names as lower case for file handling (please check in your worlds folder. You should have no folders with upper case letters from now).
\ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java index 290a58388..35e8794b5 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java @@ -362,9 +362,10 @@ public class WorldsHolder { * @return updated world holder */ private OverloadedWorldHolder getUpdatedWorldData(String worldName) { + String worldNameLowered = worldName.toLowerCase(); - if (worldsData.containsKey(worldName.toLowerCase())) { - OverloadedWorldHolder data = worldsData.get(worldName.toLowerCase()); + if (worldsData.containsKey(worldNameLowered)) { + OverloadedWorldHolder data = worldsData.get(worldNameLowered); data.updateDataSource(); return data; } @@ -444,17 +445,19 @@ public class WorldsHolder { } public void setupWorldFolder(String worldName) { + String worldNameLowered = worldName.toLowerCase(); + worldsFolder = new File(plugin.getDataFolder(), "worlds"); if (!worldsFolder.exists()) { worldsFolder.mkdirs(); } - File defaultWorldFolder = new File(worldsFolder, worldName); - if ((!defaultWorldFolder.exists()) && ((!mirrorsGroup.containsKey(worldName.toLowerCase()))) || (!mirrorsUser.containsKey(worldName.toLowerCase()))) { + File defaultWorldFolder = new File(worldsFolder, worldNameLowered); + if ((!defaultWorldFolder.exists()) && ((!mirrorsGroup.containsKey(worldNameLowered))) || (!mirrorsUser.containsKey(worldNameLowered))) { defaultWorldFolder.mkdirs(); } if (defaultWorldFolder.exists()) { - if (!mirrorsGroup.containsKey(worldName.toLowerCase())) { + if (!mirrorsGroup.containsKey(worldNameLowered)) { File groupsFile = new File(defaultWorldFolder, "groups.yml"); if (!groupsFile.exists() || groupsFile.length() == 0) { @@ -467,7 +470,7 @@ public class WorldsHolder { } } - if (!mirrorsUser.containsKey(worldName.toLowerCase())) { + if (!mirrorsUser.containsKey(worldNameLowered)) { File usersFile = new File(defaultWorldFolder, "users.yml"); if (!usersFile.exists() || usersFile.length() == 0) { @@ -485,13 +488,15 @@ public class WorldsHolder { /** * Copies the specified world data to another world + * * @param fromWorld * @param toWorld * @return true if successfully copied. */ public boolean cloneWorld(String fromWorld, String toWorld) { - File fromWorldFolder = new File(worldsFolder, fromWorld); - File toWorldFolder = new File(worldsFolder, toWorld); + + File fromWorldFolder = new File(worldsFolder, fromWorld.toLowerCase()); + File toWorldFolder = new File(worldsFolder, toWorld.toLowerCase()); if (toWorldFolder.exists() || !fromWorldFolder.exists()) { return false; } @@ -530,17 +535,20 @@ public class WorldsHolder { * @param worldName */ public void loadWorld(String worldName, Boolean isMirror) { - if (worldsData.containsKey(worldName.toLowerCase())) { - worldsData.get(worldName.toLowerCase()).reload(); + + String worldNameLowered = worldName.toLowerCase(); + + if (worldsData.containsKey(worldNameLowered)) { + worldsData.get(worldNameLowered).reload(); return; } GroupManager.logger.finest("Trying to load world " + worldName + "..."); - File thisWorldFolder = new File(worldsFolder, worldName); + File thisWorldFolder = new File(worldsFolder, worldNameLowered); if ((isMirror) || (thisWorldFolder.exists() && thisWorldFolder.isDirectory())) { // Setup file handles, if not mirrored - File groupsFile = (mirrorsGroup.containsKey(worldName.toLowerCase()))? null : new File(thisWorldFolder, "groups.yml"); - File usersFile = (mirrorsUser.containsKey(worldName.toLowerCase()))? null : new File(thisWorldFolder, "users.yml"); + File groupsFile = (mirrorsGroup.containsKey(worldNameLowered))? null : new File(thisWorldFolder, "groups.yml"); + File usersFile = (mirrorsUser.containsKey(worldNameLowered))? null : new File(thisWorldFolder, "users.yml"); if ((groupsFile != null) && (!groupsFile.exists())) { throw new IllegalArgumentException("Groups file for world '" + worldName + "' doesnt exist: " + groupsFile.getPath()); @@ -552,14 +560,14 @@ public class WorldsHolder { WorldDataHolder tempHolder = new WorldDataHolder(worldName); // Map the group object for any mirror - if (mirrorsGroup.containsKey(worldName.toLowerCase())) - tempHolder.setGroupsObject(this.getWorldData(mirrorsGroup.get(worldName.toLowerCase())).getGroupsObject()); + if (mirrorsGroup.containsKey(worldNameLowered)) + tempHolder.setGroupsObject(this.getWorldData(mirrorsGroup.get(worldNameLowered)).getGroupsObject()); else tempHolder.loadGroups(groupsFile); // Map the user object for any mirror - if (mirrorsUser.containsKey(worldName.toLowerCase())) - tempHolder.setUsersObject(this.getWorldData(mirrorsUser.get(worldName.toLowerCase())).getUsersObject()); + if (mirrorsUser.containsKey(worldNameLowered)) + tempHolder.setUsersObject(this.getWorldData(mirrorsUser.get(worldNameLowered)).getUsersObject()); else tempHolder.loadUsers(usersFile); @@ -573,7 +581,7 @@ public class WorldsHolder { if (thisWorldData != null) { GroupManager.logger.finest("Successful load of world " + worldName + "..."); - worldsData.put(worldName.toLowerCase(), thisWorldData); + worldsData.put(worldNameLowered, thisWorldData); return; } |