diff options
author | ElgarL <ElgarL@palmergames.com> | 2011-10-28 18:43:29 +0100 |
---|---|---|
committer | ElgarL <ElgarL@palmergames.com> | 2011-10-28 18:43:29 +0100 |
commit | 819c8f3aa997ada92fd97d3d22c7e35cdc1f36d4 (patch) | |
tree | 6a1ca7966c8c3bc39dba5785c3d1ab7ce64e61ce /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java | |
parent | fadfc490a73b87b7847ff5c57b14ff9e6b957dae (diff) | |
download | Essentials-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.java | 29 |
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>();
|