FixMe from Gnat008 : Add PermissionsBukkit groups support

This commit is contained in:
Xephi59 2016-12-13 19:12:07 +01:00 committed by ljacqu
parent de579044f2
commit de97c60b5d
3 changed files with 36 additions and 4 deletions

14
pom.xml
View File

@ -617,6 +617,20 @@
</exclusions>
</dependency>
<!-- PermissionsBukkit plugin -->
<dependency>
<groupId>com.platymuus</groupId>
<artifactId>bukkit-permissions</artifactId>
<version>2.5</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- zPermissions plugin -->
<dependency>
<groupId>org.tyrannyofheaven.bukkit</groupId>

View File

@ -115,7 +115,7 @@ public class PermissionsManager implements Reloadable {
case B_PERMISSIONS:
return new BPermissionsHandler();
case PERMISSIONS_BUKKIT:
return new PermissionsBukkitHandler();
return new PermissionsBukkitHandler(pluginManager);
default:
throw new IllegalStateException("Unhandled permission type '" + type + "'");
}

View File

@ -1,15 +1,29 @@
package fr.xephi.authme.permission.handlers;
import com.platymuus.bukkit.permissions.Group;
import com.platymuus.bukkit.permissions.PermissionsPlugin;
import fr.xephi.authme.permission.PermissionNode;
import fr.xephi.authme.permission.PermissionsSystemType;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import java.util.ArrayList;
import java.util.List;
public class PermissionsBukkitHandler implements PermissionHandler {
private PermissionsPlugin permissionsBukkitInstance;
public PermissionsBukkitHandler(PluginManager pluginManager) throws PermissionHandlerException {
Plugin plugin = pluginManager.getPlugin("PermissionsBukkit");
if (plugin == null) {
throw new PermissionHandlerException("Could not get instance of PermissionsBukkit");
}
permissionsBukkitInstance = (PermissionsPlugin) plugin;
}
@Override
public boolean addToGroup(Player player, String group) {
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player addgroup " + player.getName() + " " + group);
@ -44,8 +58,11 @@ public class PermissionsBukkitHandler implements PermissionHandler {
@Override
public List<String> getGroups(Player player) {
// FIXME Gnat008 20160601: Add support for this
return new ArrayList<>();
List<String> groups = new ArrayList<String>();
for (Group group : permissionsBukkitInstance.getGroups(player.getUniqueId())) {
groups.add(group.getName());
}
return groups;
}
@Override
@ -54,8 +71,9 @@ public class PermissionsBukkitHandler implements PermissionHandler {
List<String> groups = getGroups(player);
// Make sure there is any group available, or return null
if (groups.isEmpty())
if (groups.isEmpty()) {
return null;
}
// Return the first group
return groups.get(0);