added getGroups() to return a full list of all group-names

This commit is contained in:
Sleaker 2011-10-22 21:10:03 -07:00
parent 39e0bea777
commit 23df8b181f
7 changed files with 83 additions and 1 deletions

View File

@ -1019,4 +1019,10 @@ public abstract class Permission {
public void setGroupSuffix(World world, String group, String suffix) {
setGroupSuffix(world.getName(), group, suffix);
}
/**
* Returns a list of all known groups
* @return an Array of String of all groups
*/
abstract public String[] getGroups();
}

View File

@ -1,11 +1,17 @@
package net.milkbowl.vault.permission.plugins;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Logger;
import net.milkbowl.vault.permission.Permission;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.Group;
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
@ -321,4 +327,16 @@ public class Permission_GroupManager extends Permission {
}
return false;
}
@Override
public String[] getGroups() {
Set<String> groupNames = new HashSet<String>();
for (World world : Bukkit.getServer().getWorlds()) {
Collection<Group> groups = groupManager.getWorldsHolder().getWorldData(world.getName()).getGroupList();
for (Group group : groups) {
groupNames.add(group.getName());
}
}
return groupNames.toArray(new String[0]);
}
}

View File

@ -1,7 +1,11 @@
package net.milkbowl.vault.permission.plugins;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
@ -13,6 +17,7 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import com.nijiko.permissions.Group;
import com.nijiko.permissions.PermissionHandler;
import com.nijikokun.bukkit.Permissions.Permissions;
@ -328,4 +333,15 @@ public class Permission_Permissions2 extends Permission {
return false;
}
@Override
public String[] getGroups() {
Set<String> groupNames = new HashSet<String>();
for (World world : Bukkit.getServer().getWorlds()) {
for (Group group : perms.getGroups(world.getName())) {
groupNames.add(group.getName());
}
}
return groupNames.toArray(new String[0]);
}
}

View File

@ -19,10 +19,14 @@
package net.milkbowl.vault.permission.plugins;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Logger;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
@ -339,4 +343,15 @@ public class Permission_Permissions3 extends Permission {
return false;
}
}
@Override
public String[] getGroups() {
Set<String> groupNames = new HashSet<String>();
for (World world : Bukkit.getServer().getWorlds()) {
for (Group group : perms.getGroups(world.getName())) {
groupNames.add(group.getName());
}
}
return groupNames.toArray(new String[0]);
}
}

View File

@ -403,4 +403,14 @@ public class Permission_PermissionsBukkit extends Permission {
public void setGroupSuffix(String world, String group, String suffix) {
throw new UnsupportedOperationException(getName() + " does not support group info nodes.");
}
@Override
public String[] getGroups() {
List<String> groupNames = new ArrayList<String>();
for (Group group : perms.getAllGroups()) {
groupNames.add(group.getName());
}
return groupNames.toArray(new String[0]);
}
}

View File

@ -82,7 +82,7 @@ public class Permission_PermissionsEx extends Permission {
@Override
public boolean playerHas(Player player, String permission) {
return this.permission.has(player, permission);
return PermissionsEx.has(player, permission);
}
@Override
@ -466,4 +466,16 @@ public class Permission_PermissionsEx extends Permission {
return false;
}
}
@Override
public String[] getGroups() {
PermissionGroup[] groups = PermissionsEx.getPermissionManager().getGroups();
if (groups == null || groups.length == 0)
return null;
String[] groupNames = new String[groups.length];
for (int i = 0; i < groups.length; i++) {
groupNames[i] = groups[i].getName();
}
return groupNames;
}
}

View File

@ -242,4 +242,9 @@ public class Permission_SuperPerms extends Permission {
public void setGroupSuffix(String world, String group, String suffix) {
throw new UnsupportedOperationException(getName() + " no data permissions.");
}
@Override
public String[] getGroups() {
throw new UnsupportedOperationException(getName() + " does not support group listing!");
}
}