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
commitfd936c582a4bd82773fa644164e11c00fb8ea2ba (patch)
tree923fe95095fbf0010b044feacce895212995b770 /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java
parent7770c0b99c58554386b7cb6fcfb9def44b90cdc2 (diff)
downloadEssentials-fd936c582a4bd82773fa644164e11c00fb8ea2ba.tar
Essentials-fd936c582a4bd82773fa644164e11c00fb8ea2ba.tar.gz
Essentials-fd936c582a4bd82773fa644164e11c00fb8ea2ba.tar.lz
Essentials-fd936c582a4bd82773fa644164e11c00fb8ea2ba.tar.xz
Essentials-fd936c582a4bd82773fa644164e11c00fb8ea2ba.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>();