From 34ba8e89bc9e9be00a539bb07a8ddaca16f9e954 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Mon, 31 Oct 2011 08:34:07 +0000 Subject: Added Global Groups Defined in groupmanager/globalgroups.yml. Create groups in the yml with a g: prefix, then inherit in the worlds groups files. --- .../permissions/AnjoPermissionsHandler.java | 49 +++++++++++++++------- 1 file changed, 34 insertions(+), 15 deletions(-) (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions') diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java index 203ac95a9..99f6fb5c3 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java @@ -93,22 +93,40 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { List playerPermArray = new ArrayList(ph.getUser(userName).getPermissionList()); - for (String group : getGroups(userName)) { - for (String perm : ph.getGroup(group).getPermissionList()) { - if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-"+perm))) { - playerPermArray.add(perm); - - Map children = GroupManager.BukkitPermissions.getChildren(perm); - if (children != null) { - for (String child : children.keySet()) { - if (children.get(child)) - if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-"+perm))) - playerPermArray.add(child); - } - } - + for (String group : getGroups(userName)) { + if (group.startsWith("g:") && GroupManager.getGlobalGroups().hasGroup(group)) { + for (String perm : GroupManager.getGlobalGroups().getGroupsPermissions(group)) { + if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-"+perm))) { + playerPermArray.add(perm); + + Map children = GroupManager.BukkitPermissions.getChildren(perm); + if (children != null) { + for (String child : children.keySet()) { + if (children.get(child)) + if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-"+perm))) + playerPermArray.add(child); + } + } + } } - } + + } else { + for (String perm : ph.getGroup(group).getPermissionList()) { + if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-"+perm))) { + playerPermArray.add(perm); + + Map children = GroupManager.BukkitPermissions.getChildren(perm); + if (children != null) { + for (String child : children.keySet()) { + if (children.get(child)) + if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-"+perm))) + playerPermArray.add(child); + } + } + + } + } + } } return playerPermArray; @@ -935,6 +953,7 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { for (Group subg : ph.getUser(userName).subGroupListCopy()) { allGroups.addAll(listAllGroupsInherited(subg)); } + String[] arr = new String[allGroups.size()]; return allGroups.toArray(arr); } -- cgit v1.2.3