Simplify instantiation of permission handlers
- Change permission handler to retrieve the services it needs, instead of getting them from the PermissionsManager - Reduce visibility of some methods - Add Reloadable interface
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
package fr.xephi.authme.permission.handlers;
|
||||
|
||||
/**
|
||||
* Exception during the instantiation of a {@link PermissionHandler}.
|
||||
*/
|
||||
public class PermissionHandlerException extends Exception {
|
||||
|
||||
public PermissionHandlerException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -15,8 +15,11 @@ public class PermissionsExHandler implements PermissionHandler {
|
||||
|
||||
private PermissionManager permissionManager;
|
||||
|
||||
public PermissionsExHandler(PermissionManager permissionManager) {
|
||||
this.permissionManager = permissionManager;
|
||||
public PermissionsExHandler() throws PermissionHandlerException {
|
||||
permissionManager = PermissionsEx.getPermissionManager();
|
||||
if (permissionManager == null) {
|
||||
throw new PermissionHandlerException("Could not get manager of PermissionsEx");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,7 +3,9 @@ package fr.xephi.authme.permission.handlers;
|
||||
import fr.xephi.authme.permission.PermissionNode;
|
||||
import fr.xephi.authme.permission.PermissionsSystemType;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -12,8 +14,24 @@ public class VaultHandler implements PermissionHandler {
|
||||
|
||||
private Permission vaultProvider;
|
||||
|
||||
public VaultHandler(Permission vaultProvider) {
|
||||
this.vaultProvider = vaultProvider;
|
||||
public VaultHandler(Server server) throws PermissionHandlerException {
|
||||
this.vaultProvider = getVaultPermission(server);
|
||||
}
|
||||
|
||||
private static Permission getVaultPermission(Server server) throws PermissionHandlerException {
|
||||
// Get the permissions provider service
|
||||
RegisteredServiceProvider<Permission> permissionProvider = server
|
||||
.getServicesManager().getRegistration(Permission.class);
|
||||
if (permissionProvider == null) {
|
||||
throw new PermissionHandlerException("Could not load permissions provider service");
|
||||
}
|
||||
|
||||
// Get the Vault provider and make sure it's valid
|
||||
Permission vaultPerms = permissionProvider.getProvider();
|
||||
if (vaultPerms == null) {
|
||||
throw new PermissionHandlerException("Could not load Vault permissions provider");
|
||||
}
|
||||
return vaultPerms;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,7 +14,12 @@ public class ZPermissionsHandler implements PermissionHandler {
|
||||
|
||||
private ZPermissionsService zPermissionsService;
|
||||
|
||||
public ZPermissionsHandler(ZPermissionsService zPermissionsService) {
|
||||
public ZPermissionsHandler() throws PermissionHandlerException {
|
||||
// Set the zPermissions service and make sure it's valid
|
||||
ZPermissionsService zPermissionsService = Bukkit.getServicesManager().load(ZPermissionsService.class);
|
||||
if (zPermissionsService == null) {
|
||||
throw new PermissionHandlerException("Failed to get the ZPermissions service!");
|
||||
}
|
||||
this.zPermissionsService = zPermissionsService;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user