package fr.xephi.authme.permission.handlers;
import de.bananaco.bpermissions.api.ApiLayer;
import de.bananaco.bpermissions.api.CalculableType;
import fr.xephi.authme.permission.PermissionNode;
import fr.xephi.authme.permission.PermissionsSystemType;
import org.bukkit.OfflinePlayer;
import java.util.Arrays;
import java.util.List;
/**
* Handler for bPermissions.
*
* @see bPermissions Bukkit page
* @see bPermissions on Github
*/
public class BPermissionsHandler implements PermissionHandler {
@Override
public boolean addToGroup(OfflinePlayer player, String group) {
ApiLayer.addGroup(null, CalculableType.USER, player.getName(), group);
return true;
}
@Override
public boolean hasGroupSupport() {
return true;
}
@Override
public boolean hasPermissionOffline(String name, PermissionNode node) {
return ApiLayer.hasPermission(null, CalculableType.USER, name, node.getNode());
}
@Override
public boolean isInGroup(OfflinePlayer player, String group) {
return ApiLayer.hasGroup(null, CalculableType.USER, player.getName(), group);
}
@Override
public boolean removeFromGroup(OfflinePlayer player, String group) {
ApiLayer.removeGroup(null, CalculableType.USER, player.getName(), group);
return true;
}
@Override
public boolean setGroup(OfflinePlayer player, String group) {
ApiLayer.setGroup(null, CalculableType.USER, player.getName(), group);
return true;
}
@Override
public List getGroups(OfflinePlayer player) {
return Arrays.asList(ApiLayer.getGroups(null, CalculableType.USER, player.getName()));
}
@Override
public PermissionsSystemType getPermissionSystem() {
return PermissionsSystemType.B_PERMISSIONS;
}
}