summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
diff options
context:
space:
mode:
authorElgarL <ElgarL@palmergames.com>2013-02-22 11:46:59 +0000
committerElgarL <ElgarL@palmergames.com>2013-02-22 11:46:59 +0000
commit78c4ca51820e46564d45f07cbc6049096536e076 (patch)
tree02beffd21cb4fd7ed3d9263a9d0afeed562fb4dc /EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
parent696aff7c196b9dfa660a4b39b491052d1264155a (diff)
downloadEssentials-78c4ca51820e46564d45f07cbc6049096536e076.tar
Essentials-78c4ca51820e46564d45f07cbc6049096536e076.tar.gz
Essentials-78c4ca51820e46564d45f07cbc6049096536e076.tar.lz
Essentials-78c4ca51820e46564d45f07cbc6049096536e076.tar.xz
Essentials-78c4ca51820e46564d45f07cbc6049096536e076.zip
'/manselect' will no longer list duplicate worlds.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java21
1 files changed, 15 insertions, 6 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
index 2661c6bc0..9accfaf95 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
@@ -699,16 +699,21 @@ public class WorldsHolder {
}
/**
- * Returns all physically loaded worlds which have at least
- * one of their own data sets for users or groups which isn't an identical mirror.
+ * Returns all physically loaded worlds which have at least one of their own
+ * data sets for users or groups which isn't an identical mirror.
*
* @return ArrayList<OverloadedWorldHolder> of all loaded worlds
*/
public ArrayList<OverloadedWorldHolder> allWorldsDataList() {
ArrayList<OverloadedWorldHolder> list = new ArrayList<OverloadedWorldHolder>();
- for (OverloadedWorldHolder data : worldsData.values()) {
- if ((!list.contains(data))) { // && (!mirrorsGroup.containsKey(data.getName().toLowerCase()) || !mirrorsUser.containsKey(data.getName().toLowerCase()))) {
+
+ for (String world : worldsData.keySet()) {
+
+ // Fetch the relevant world object
+ OverloadedWorldHolder data = getWorldData(world);
+
+ if (!list.contains(data)) {
String worldNameLowered = data.getName().toLowerCase();
String usersMirror = mirrorsUser.get(worldNameLowered);
@@ -722,8 +727,12 @@ public class WorldsHolder {
// if the data sources are the same, return the parent
if (usersMirror == groupsMirror) {
- if (!list.contains(usersMirror.toLowerCase()))
- list.add(worldsData.get(usersMirror.toLowerCase()));
+ data = getWorldData(usersMirror.toLowerCase());
+
+ // Only add the parent if it's not already listed.
+ if (!list.contains(data))
+ list.add(data);
+
continue;
}
// Both data sources are mirrors, but they are from different parents