Stop throwing errors on an empty users file.

This commit is contained in:
ElgarL 2011-11-21 09:51:31 +00:00
parent 000d060ea6
commit fd1c2824ce
2 changed files with 65 additions and 68 deletions

View file

@ -75,3 +75,4 @@ v 1.5:
- Fixed a crash on reload due to bukkit not unloading plugins before reloading. - Fixed a crash on reload due to bukkit not unloading plugins before reloading.
v 1.6: v 1.6:
- Prevent Group.equals tests throwing a NullPointerException for GlobalGroups. - Prevent Group.equals tests throwing a NullPointerException for GlobalGroups.
- Stop throwing errors on an empty users file.

View file

@ -711,78 +711,74 @@ public class WorldDataHolder {
// PROCESS USERS FILE // PROCESS USERS FILE
Map<String, Object> allUsersNode = (Map<String, Object>) usersRootDataNode.get("users"); Map<String, Object> allUsersNode = (Map<String, Object>) usersRootDataNode.get("users");
// Stop loading if the file is empty // Load users if the file is NOT empty
if (allUsersNode == null) if (allUsersNode != null)
return ; for (String usersKey : allUsersNode.keySet()) {
Map<String, Object> thisUserNode = (Map<String, Object>) allUsersNode.get(usersKey);
User thisUser = ph.createUser(usersKey);
if (thisUser == null) {
throw new IllegalArgumentException("I think this user was declared more than once: " + usersKey);
}
if (thisUserNode.get("permissions") == null) {
thisUserNode.put("permissions", new ArrayList<String>());
}
if (thisUserNode.get("permissions") instanceof List) {
for (Object o : ((List) thisUserNode.get("permissions"))) {
thisUser.addPermission(o.toString());
}
} else if (thisUserNode.get("permissions") instanceof String) {
thisUser.addPermission(thisUserNode.get("permissions").toString());
}
for (String usersKey : allUsersNode.keySet()) { //SUBGROUPS LOADING
Map<String, Object> thisUserNode = (Map<String, Object>) allUsersNode.get(usersKey); if (thisUserNode.get("subgroups") == null) {
User thisUser = ph.createUser(usersKey); thisUserNode.put("subgroups", new ArrayList<String>());
if (thisUser == null) { }
throw new IllegalArgumentException("I think this user was declared more than once: " + usersKey); if (thisUserNode.get("subgroups") instanceof List) {
} for (Object o : ((List) thisUserNode.get("subgroups"))) {
if (thisUserNode.get("permissions") == null) { Group subGrp = ph.getGroup(o.toString());
thisUserNode.put("permissions", new ArrayList<String>()); if (subGrp != null) {
} thisUser.addSubGroup(subGrp);
if (thisUserNode.get("permissions") instanceof List) { } else {
for (Object o : ((List) thisUserNode.get("permissions"))) { GroupManager.logger.warning("Subgroup " + o.toString() + " not found for user " + thisUser.getName() + ". Ignoring entry.");
thisUser.addPermission(o.toString()); }
} }
} else if (thisUserNode.get("permissions") instanceof String) { } else if (thisUserNode.get("subgroups") instanceof String) {
thisUser.addPermission(thisUserNode.get("permissions").toString()); Group subGrp = ph.getGroup(thisUserNode.get("subgroups").toString());
} if (subGrp != null) {
thisUser.addSubGroup(subGrp);
//SUBGROUPS LOADING } else {
if (thisUserNode.get("subgroups") == null) { GroupManager.logger.warning("Subgroup " + thisUserNode.get("subgroups").toString() + " not found for user " + thisUser.getName() + ". Ignoring entry.");
thisUserNode.put("subgroups", new ArrayList<String>()); }
} }
if (thisUserNode.get("subgroups") instanceof List) {
for (Object o : ((List) thisUserNode.get("subgroups"))) {
Group subGrp = ph.getGroup(o.toString());
if (subGrp != null) {
thisUser.addSubGroup(subGrp);
} else {
GroupManager.logger.warning("Subgroup " + o.toString() + " not found for user " + thisUser.getName() + ". Ignoring entry.");
}
}
} else if (thisUserNode.get("subgroups") instanceof String) {
Group subGrp = ph.getGroup(thisUserNode.get("subgroups").toString());
if (subGrp != null) {
thisUser.addSubGroup(subGrp);
} else {
GroupManager.logger.warning("Subgroup " + thisUserNode.get("subgroups").toString() + " not found for user " + thisUser.getName() + ". Ignoring entry.");
}
}
//USER INFO NODE - BETA //USER INFO NODE - BETA
//INFO NODE //INFO NODE
Map<String, Object> infoNode = (Map<String, Object>) thisUserNode.get("info"); Map<String, Object> infoNode = (Map<String, Object>) thisUserNode.get("info");
if (infoNode != null) { if (infoNode != null) {
thisUser.setVariables(infoNode); thisUser.setVariables(infoNode);
} }
//END INFO NODE - BETA //END INFO NODE - BETA
if (thisUserNode.get("group") != null) { if (thisUserNode.get("group") != null) {
Group hisGroup = ph.getGroup(thisUserNode.get("group").toString()); Group hisGroup = ph.getGroup(thisUserNode.get("group").toString());
if (hisGroup == null) { if (hisGroup == null) {
GroupManager.logger.warning("There is no group " + thisUserNode.get("group").toString() + ", as stated for player " + thisUser.getName() + ": Set to '" + ph.getDefaultGroup().getName() + "'."); GroupManager.logger.warning("There is no group " + thisUserNode.get("group").toString() + ", as stated for player " + thisUser.getName() + ": Set to '" + ph.getDefaultGroup().getName() + "'.");
hisGroup = ph.defaultGroup; hisGroup = ph.defaultGroup;
//throw new IllegalArgumentException("There is no group " + thisUserNode.get("group").toString() + ", as stated for player " + thisUser.getName()); //throw new IllegalArgumentException("There is no group " + thisUserNode.get("group").toString() + ", as stated for player " + thisUser.getName());
} }
thisUser.setGroup(hisGroup); thisUser.setGroup(hisGroup);
} else { } else {
thisUser.setGroup(ph.defaultGroup); thisUser.setGroup(ph.defaultGroup);
} }
} }
ph.removeUsersChangedFlag(); ph.removeUsersChangedFlag();
// Update the LastModified time. // Update the LastModified time.
ph.usersFile = usersFile; ph.usersFile = usersFile;
ph.setTimeStampUsers(usersFile.lastModified()); ph.setTimeStampUsers(usersFile.lastModified());
//return ph;
} }
/** /**