diff options
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java | 159 |
1 files changed, 104 insertions, 55 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index 6c74c2e50..128e5a7b1 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -16,44 +16,47 @@ import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.entity.Player; + /** - * + * * @author gabrielcouto/ElgarL */ -public class User extends DataUnit implements Cloneable { - +public class User extends DataUnit implements Cloneable +{ /** - * - */ + * + */ private String group = null; private ArrayList<String> subGroups = new ArrayList<String>(); /** - * This one holds the fields in INFO node. like prefix = 'c' or build = - * false + * This one holds the fields in INFO node. like prefix = 'c' or build = false */ private UserVariables variables = new UserVariables(this); - private transient Player bukkitPlayer = null; + private Player bukkitPlayer = null; /** - * + * * @param name */ - public User(WorldDataHolder source, String name) { + public User(WorldDataHolder source, String name) + { super(source, name); this.group = source.getDefaultGroup().getName(); } /** - * + * * @return User clone */ @Override - public User clone() { + public User clone() + { User clone = new User(getDataSource(), this.getName()); clone.group = this.group; - for (String perm : this.getPermissionList()) { + for (String perm : this.getPermissionList()) + { clone.addPermission(perm); } // clone.variables = this.variables.clone(); @@ -63,22 +66,28 @@ public class User extends DataUnit implements Cloneable { /** * Use this to deliver a user from one WorldDataHolder to another - * + * * @param dataSource * @return null if given dataSource already contains the same user */ - public User clone(WorldDataHolder dataSource) { + public User clone(WorldDataHolder dataSource) + { - if (dataSource.isUserDeclared(this.getName())) { + if (dataSource.isUserDeclared(this.getName())) + { return null; } User clone = dataSource.createUser(this.getName()); - if (dataSource.getGroup(group) == null) { + if (dataSource.getGroup(group) == null) + { clone.setGroup(dataSource.getDefaultGroup()); - } else { + } + else + { clone.setGroup(dataSource.getGroup(this.getGroupName())); } - for (String perm : this.getPermissionList()) { + for (String perm : this.getPermissionList()) + { clone.addPermission(perm); } clone.variables = this.variables.clone(this); @@ -86,10 +95,12 @@ public class User extends DataUnit implements Cloneable { return clone; } - public Group getGroup() { + public Group getGroup() + { Group result = getDataSource().getGroup(group); - if (result == null) { + if (result == null) + { this.setGroup(getDataSource().getDefaultGroup()); result = getDataSource().getDefaultGroup(); } @@ -99,21 +110,22 @@ public class User extends DataUnit implements Cloneable { /** * @return the group */ - public String getGroupName() { + public String getGroupName() + { Group result = getDataSource().getGroup(group); - if (result == null) { + if (result == null) + { group = getDataSource().getDefaultGroup().getName(); } return group; } - /** - * @param group - * the group to set + * @param group the group to set */ - public void setGroup(Group group) { + public void setGroup(Group group) + { setGroup(group, true); } @@ -121,20 +133,25 @@ public class User extends DataUnit implements Cloneable { /** * @param group the group to set * @param updatePerms if we are to trigger a superperms update. - * + * */ - public void setGroup(Group group, Boolean updatePerms) { + public void setGroup(Group group, Boolean updatePerms) + { - if (!this.getDataSource().groupExists(group.getName())) { + if (!this.getDataSource().groupExists(group.getName())) + { getDataSource().addGroup(group); } group = getDataSource().getGroup(group.getName()); String oldGroup = this.group; this.group = group.getName(); flagAsChanged(); - if (GroupManager.isLoaded()) { + if (GroupManager.isLoaded()) + { if (!GroupManager.BukkitPermissions.isPlayer_join() && (updatePerms)) + { GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); + } // Do we notify of the group change? String defaultGroupName = getDataSource().getDefaultGroup().getName(); @@ -144,32 +161,42 @@ 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.", group.getName())); + } GroupManagerEventHandler.callEvent(this, Action.USER_GROUP_CHANGED); } } - public boolean addSubGroup(Group subGroup) { + public boolean addSubGroup(Group subGroup) + { // Don't allow adding a subgroup if it's already set as the primary. - if (this.group.equalsIgnoreCase(subGroup.getName())) { + if (this.group.equalsIgnoreCase(subGroup.getName())) + { return false; } // User already has this subgroup if (containsSubGroup(subGroup)) + { return false; + } // If the group doesn't exists add it - if (!this.getDataSource().groupExists(subGroup.getName())) { + if (!this.getDataSource().groupExists(subGroup.getName())) + { getDataSource().addGroup(subGroup); } subGroups.add(subGroup.getName()); flagAsChanged(); - if (GroupManager.isLoaded()) { + if (GroupManager.isLoaded()) + { if (!GroupManager.BukkitPermissions.isPlayer_join()) + { GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); + } GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); } return true; @@ -179,43 +206,58 @@ public class User extends DataUnit implements Cloneable { //subGroups.add(subGroup.getName()); } - public int subGroupsSize() { + public int subGroupsSize() + { return subGroups.size(); } - public boolean isSubGroupsEmpty() { + public boolean isSubGroupsEmpty() + { return subGroups.isEmpty(); } - public boolean containsSubGroup(Group subGroup) { + public boolean containsSubGroup(Group subGroup) + { return subGroups.contains(subGroup.getName()); } - public boolean removeSubGroup(Group subGroup) { + public boolean removeSubGroup(Group subGroup) + { - try { - if (subGroups.remove(subGroup.getName())) { + try + { + if (subGroups.remove(subGroup.getName())) + { flagAsChanged(); if (GroupManager.isLoaded()) + { if (!GroupManager.BukkitPermissions.isPlayer_join()) + { GroupManager.BukkitPermissions.updatePlayer(getBukkitPlayer()); + } + } GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); return true; } - } catch (Exception e) { + } + catch (Exception e) + { } return false; } - public ArrayList<Group> subGroupListCopy() { + public ArrayList<Group> subGroupListCopy() + { ArrayList<Group> val = new ArrayList<Group>(); - for (String gstr : subGroups) { + for (String gstr : subGroups) + { Group g = getDataSource().getGroup(gstr); - if (g == null) { + if (g == null) + { removeSubGroup(g); continue; } @@ -224,7 +266,8 @@ public class User extends DataUnit implements Cloneable { return val; } - public ArrayList<String> subGroupListStringCopy() { + public ArrayList<String> subGroupListStringCopy() + { return new ArrayList<String>(subGroups); } @@ -232,40 +275,46 @@ public class User extends DataUnit implements Cloneable { /** * @return the variables */ - public UserVariables getVariables() { + public UserVariables getVariables() + { return variables; } /** - * + * * @param varList */ - public void setVariables(Map<String, Object> varList) { + public void setVariables(Map<String, Object> varList) + { //UserVariables temp = new UserVariables(this, varList); variables.clearVars(); - for (String key : varList.keySet()) { + for (String key : varList.keySet()) + { variables.addVar(key, varList.get(key)); } flagAsChanged(); - if (GroupManager.isLoaded()) { + if (GroupManager.isLoaded()) + { //if (!GroupManager.BukkitPermissions.isPlayer_join()) // GroupManager.BukkitPermissions.updatePlayer(this.getName()); GroupManagerEventHandler.callEvent(this, Action.USER_INFO_CHANGED); } } - - public User updatePlayer(Player player) { + public User updatePlayer(Player player) + { bukkitPlayer = player; return this; } - public Player getBukkitPlayer() { + public Player getBukkitPlayer() + { - if (bukkitPlayer == null) { + if (bukkitPlayer == null) + { bukkitPlayer = Bukkit.getPlayer(this.getName()); } return bukkitPlayer; |