summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java159
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;