Minor optimization for Group loading/clone

This commit is contained in:
ElgarL 2011-11-07 15:33:15 +00:00
parent ab2e8f94f0
commit f40260acef
2 changed files with 17 additions and 5 deletions

View file

@ -83,7 +83,6 @@ public class GlobalGroups {
public void load() {
GGroups = new YamlConfiguration();
groups = new HashMap<String, Group>();
GroupManager.setLoaded(false);
@ -110,7 +109,9 @@ public class GlobalGroups {
Map<String, Object> allGroups = (Map<String, Object>) GGroups.getConfigurationSection("groups").getValues(false);
// Load each groups permissions list.
if (allGroups != null)
if (allGroups != null) {
// Clear out old groups
resetGlobalGroups();
for (String groupName : allGroups.keySet()) {
Group newGroup = new Group(groupName.toLowerCase());
Object element;
@ -144,12 +145,12 @@ public class GlobalGroups {
// Push a new group
addGroup(newGroup);
}
}
removeGroupsChangedFlag();
setTimeStampGroups(GlobalGroupsFile.lastModified());
GroupManager.setLoaded(true);
//GlobalGroupsFile = null;
}
/**
@ -351,6 +352,13 @@ public class GlobalGroups {
return groups.keySet();
}
/**
* Resets GlobalGroups.
*/
public void resetGlobalGroups() {
this.groups = new HashMap<String, Group>();
}
/**
*
* @return a collection of the groups

View file

@ -334,11 +334,13 @@ public class WorldDataHolder {
// transfer new data
resetGroups();
for (Group tempGroup : ph.getGroupList()) {
if (tempGroup.getDataSource() != null) tempGroup.clone(this);
tempGroup.clone(this);
}
this.setDefaultGroup(this.getGroup(ph.getDefaultGroup().getName()));
this.removeGroupsChangedFlag();
this.timeStampGroups = ph.getTimeStampGroups();
ph = null;
} catch (Exception ex) {
Logger.getLogger(WorldDataHolder.class.getName()).log(Level.WARNING, null, ex);
}
@ -355,7 +357,7 @@ public class WorldDataHolder {
WorldDataHolder ph = new WorldDataHolder(this.getName());
// copy groups for reference
for (Group tempGroup : this.getGroupList()) {
if (tempGroup.getDataSource() != null) tempGroup.clone(ph);
tempGroup.clone(ph);
}
// setup the default group before loading user data.
ph.setDefaultGroup(ph.getGroup(this.getDefaultGroup().getName()));
@ -367,6 +369,8 @@ public class WorldDataHolder {
}
this.removeUsersChangedFlag();
this.timeStampUsers = ph.getTimeStampUsers();
ph = null;
} catch (Exception ex) {
Logger.getLogger(WorldDataHolder.class.getName()).log(Level.WARNING, null, ex);
}