mirror of
https://github.com/EssentialsX/Essentials.git
synced 2025-02-27 09:42:41 +01:00
Add PermissionsHandler for Vault.
We'll use the VaultAPI if it's there for group checks. This will also allow us to default to Player#hasPermission from Bukkit instead of going through each permission plugin.
This commit is contained in:
parent
7439dc01a5
commit
ac0858dcdb
@ -129,7 +129,7 @@
|
||||
<dependency>
|
||||
<groupId>net.milkbowl.vault</groupId>
|
||||
<artifactId>Vault</artifactId>
|
||||
<version>1.2.32</version>
|
||||
<version>1.5.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>zPermissions</groupId>
|
||||
@ -139,4 +139,10 @@
|
||||
<systemPath>${project.basedir}/../lib/zPermissions.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>vault-repo</id>
|
||||
<url>http://nexus.theyeticave.net/content/repositories/pub_releases</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</project>
|
||||
|
@ -97,6 +97,18 @@ public class PermissionsHandler implements IPermissionsHandler {
|
||||
public void checkPermissions() {
|
||||
final PluginManager pluginManager = ess.getServer().getPluginManager();
|
||||
|
||||
final Plugin vaultAPI = pluginManager.getPlugin("Vault");
|
||||
if (vaultAPI != null && vaultAPI.isEnabled()) {
|
||||
if (!(handler instanceof VaultHandler)) {
|
||||
VaultHandler vault = new VaultHandler(ess);
|
||||
if (vault.setupPermissions()) {
|
||||
LOGGER.log(Level.INFO, "Essentials: Using Vault based permissions.");
|
||||
handler = vault;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final Plugin permExPlugin = pluginManager.getPlugin("PermissionsEx");
|
||||
if (permExPlugin != null && permExPlugin.isEnabled()) {
|
||||
if (!(handler instanceof PermissionsExHandler)) {
|
||||
|
@ -0,0 +1,51 @@
|
||||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class VaultHandler extends SuperpermsHandler {
|
||||
|
||||
private Essentials plugin;
|
||||
private static Permission perms = null;
|
||||
|
||||
public VaultHandler(Essentials plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public boolean setupPermissions() {
|
||||
try {
|
||||
Class.forName("net.milkbowl.vault.permission.Permission");
|
||||
} catch (ClassNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
RegisteredServiceProvider<Permission> rsp = plugin.getServer().getServicesManager().getRegistration(Permission.class);
|
||||
perms = rsp.getProvider();
|
||||
return perms != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroup(final Player base) {
|
||||
return perms.getPrimaryGroup(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(final Player base) {
|
||||
return Arrays.asList(perms.getPlayerGroups(base));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group) {
|
||||
return perms.playerInGroup(base, group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(final Player base, String node) {
|
||||
return base.hasPermission(node);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user