diff options
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/data')
3 files changed, 77 insertions, 17 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java index 48d0e55e9..36c26bb1d 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/DataUnit.java @@ -19,19 +19,20 @@ import org.anjocaido.groupmanager.utils.StringPermissionComparator; public abstract class DataUnit { private WorldDataHolder dataSource; - private String name; + private String uUID; + private String lastName; private boolean changed, sorted = false; private List<String> permissions = Collections.unmodifiableList(Collections.<String>emptyList()); public DataUnit(WorldDataHolder dataSource, String name) { this.dataSource = dataSource; - this.name = name; + this.uUID = name; } public DataUnit(String name) { - this.name = name; + this.uUID = name; } /** @@ -45,7 +46,7 @@ public abstract class DataUnit { if (o instanceof DataUnit) { DataUnit go = (DataUnit) o; - if (this.getName().equalsIgnoreCase(go.getName())) { + if (this.getUUID().equalsIgnoreCase(go.getUUID())) { // Global Group match. if (this.dataSource == null && go.getDataSource() == null) return true; @@ -67,7 +68,7 @@ public abstract class DataUnit { public int hashCode() { int hash = 5; - hash = 71 * hash + (this.name != null ? this.name.toLowerCase().hashCode() : 0); + hash = 71 * hash + (this.uUID != null ? this.uUID.toLowerCase().hashCode() : 0); return hash; } @@ -90,13 +91,29 @@ public abstract class DataUnit { return dataSource; } + + public String getUUID() { - /** - * @return the name - */ - public String getName() { + return uUID; + } + + public String getLastName() { - return name; + if (uUID.length() < 36) + return uUID; + + return lastName; + } + + public void setLastName(String lastName) { + + if (!this.lastName.equals(lastName)) { + + this.lastName = lastName; + changed = true; + + } + } public void flagAsChanged() { @@ -109,7 +126,7 @@ public abstract class DataUnit { else source = testSource.getName(); - GroupManager.logger.finest("DataSource: " + source + " - DataUnit: " + getName() + " flagged as changed!"); + GroupManager.logger.finest("DataSource: " + source + " - DataUnit: " + getUUID() + " flagged as changed!"); // for(StackTraceElement st: Thread.currentThread().getStackTrace()){ // GroupManager.logger.finest(st.toString()); // } @@ -132,7 +149,7 @@ public abstract class DataUnit { else source = testSource.getName(); - GroupManager.logger.finest("DataSource: " + source + " - DataUnit: " + getName() + " flagged as saved!"); + GroupManager.logger.finest("DataSource: " + source + " - DataUnit: " + getUUID() + " flagged as saved!"); changed = false; } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java index c0c19c997..d07edcef2 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java @@ -48,6 +48,14 @@ public class Group extends DataUnit implements Cloneable { super(name); } + + /** + * @return the name + */ + public String getName() { + + return this.getUUID(); + } /** * Is this a GlobalGroup diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index adec183cd..61efdc3de 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -51,7 +51,7 @@ public class User extends DataUnit implements Cloneable { @Override public User clone() { - User clone = new User(getDataSource(), this.getName()); + User clone = new User(getDataSource(), this.getLastName()); clone.group = this.group; for (String perm : this.getPermissionList()) { clone.addPermission(perm); @@ -69,10 +69,10 @@ public class User extends DataUnit implements Cloneable { */ public User clone(WorldDataHolder dataSource) { - if (dataSource.isUserDeclared(this.getName())) { + if (dataSource.isUserDeclared(this.getLastName())) { return null; } - User clone = dataSource.createUser(this.getName()); + User clone = dataSource.createUser(this.getLastName()); if (dataSource.getGroup(group) == null) { clone.setGroup(dataSource.getDefaultGroup()); } else { @@ -85,6 +85,28 @@ public class User extends DataUnit implements Cloneable { clone.flagAsChanged(); return clone; } + + public User clone(String uUID) { + + User clone = this.getDataSource().createUser(uUID); + + if (this.getDataSource().getGroup(group) == null) { + clone.setGroup(this.getDataSource().getDefaultGroup()); + } else { + clone.setGroup(this.getDataSource().getGroup(this.getGroupName())); + } + + clone.setLastName(this.getLastName()); + + for (String perm : this.getPermissionList()) { + clone.addPermission(perm); + } + + clone.variables = this.variables.clone(this); + clone.flagAsChanged(); + + return clone; + } public Group getGroup() { @@ -107,6 +129,19 @@ public class User extends DataUnit implements Cloneable { } return group; } + + /** + * Place holder to let people know to stop using this method. + * + * @deprecated use {@link getLastName()} and {@link getUUID()}. + * @return a string containing the players last known name. + */ + @Deprecated + public String getName() { + + return this.getLastName(); + + } /** @@ -144,7 +179,7 @@ public class User extends DataUnit implements Cloneable { boolean notify = (!oldGroup.equalsIgnoreCase(defaultGroupName)) || ((oldGroup.equalsIgnoreCase(defaultGroupName)) && (!this.group.equalsIgnoreCase(defaultGroupName))); if (notify) - GroupManager.notify(this.getName(), String.format(" moved to the group %s in %s.", group.getName(), this.getDataSource().getName())); + GroupManager.notify(this.getLastName(), String.format(" moved to the group %s in %s.", group.getName(), this.getDataSource().getName())); GroupManager.getGMEventHandler().callEvent(this, Action.USER_GROUP_CHANGED); } @@ -269,7 +304,7 @@ public class User extends DataUnit implements Cloneable { public Player getBukkitPlayer() { if (bukkitPlayer == null) { - bukkitPlayer = Bukkit.getPlayer(this.getName()); + bukkitPlayer = Bukkit.getPlayer(this.getLastName()); } return bukkitPlayer; } |