From 000d060ea690ba14b665e01e9097e3885d796820 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sun, 20 Nov 2011 02:27:25 +0000 Subject: better groups match checking for globalgroups --- .../src/org/anjocaido/groupmanager/data/DataUnit.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'EssentialsGroupManager/src') diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java index 8ae272328..924da3616 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java @@ -39,10 +39,19 @@ public abstract class DataUnit { public boolean equals(Object o) { if (o instanceof DataUnit) { DataUnit go = (DataUnit) o; - if (this.getName().equalsIgnoreCase(go.getName()) - && ((this.dataSource == null && go.getDataSource() == null) - || (this.dataSource.getName().equalsIgnoreCase(go.getDataSource().getName())))) { - return true; + if (this.getName().equalsIgnoreCase(go.getName())) { + // Global Group match. + if (this.dataSource == null && go.getDataSource() == null) + return true; + // This is a global group, the object to test isn't. + if (this.dataSource == null && go.getDataSource() != null) + return false; + // This is not a global group, but the object to test is. + if (this.dataSource != null && go.getDataSource() == null) + return false; + // Match on group name and world name. + if (this.dataSource.getName().equalsIgnoreCase(go.getDataSource().getName())) + return true; } } return false; -- cgit v1.2.3