summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
diff options
context:
space:
mode:
authorElgarL <ElgarL@palmergames.com>2011-10-28 18:43:29 +0100
committerElgarL <ElgarL@palmergames.com>2011-10-28 18:43:29 +0100
commit819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4 (patch)
tree6a1ca7966c8c3bc39dba5785c3d1ab7ce64e61ce /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
parentfadfc490a73b87b7847ff5c57b14ff9e6b957dae (diff)
downloadEssentials-819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4.tar
Essentials-819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4.tar.gz
Essentials-819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4.tar.lz
Essentials-819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4.tar.xz
Essentials-819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4.zip
Fixed GM to recognize Superperm child nodes.
If you add a node like Towny.admin GM will now correctly report on all child nodes.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
index 6a5968c22..9bc38f933 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
@@ -150,8 +150,19 @@ public class BukkitPermissions {
value = true;
}
- if (value == true)
+ if (value == true){
+ // Set the root permission
attachment.setPermission(permission, value);
+ // fetch and set all children of this permission node
+ Map<String, Boolean> children = permission.getChildren();
+ if (children != null) {
+ for (String child : children.keySet()) {
+ if (children.get(child))
+ attachment.setPermission(child, true);
+ }
+ }
+
+ }
}
// Add any missing permissions for this player (non bukkit plugins)
@@ -171,6 +182,22 @@ public class BukkitPermissions {
player.recalculatePermissions();
}
+ /**
+ * Returns a map of the child permissions as defined by the supplying plugin
+ * null is empty
+ *
+ * @param node
+ * @return
+ */
+ public Map<String, Boolean> getChildren(String node) {
+ for (Permission permission : registeredPermissions) {
+ if (permission.getName() == node) {
+ return permission.getChildren();
+ }
+ }
+ return null;
+ }
+
public List<String> listPerms(Player player) {
List<String> perms = new ArrayList<String>();