mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-04-27 08:59:45 +00: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
3 changed files with 70 additions and 1 deletions
|
@ -129,7 +129,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.milkbowl.vault</groupId>
|
<groupId>net.milkbowl.vault</groupId>
|
||||||
<artifactId>Vault</artifactId>
|
<artifactId>Vault</artifactId>
|
||||||
<version>1.2.32</version>
|
<version>1.5.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>zPermissions</groupId>
|
<groupId>zPermissions</groupId>
|
||||||
|
@ -139,4 +139,10 @@
|
||||||
<systemPath>${project.basedir}/../lib/zPermissions.jar</systemPath>
|
<systemPath>${project.basedir}/../lib/zPermissions.jar</systemPath>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>vault-repo</id>
|
||||||
|
<url>http://nexus.theyeticave.net/content/repositories/pub_releases</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -97,6 +97,18 @@ public class PermissionsHandler implements IPermissionsHandler {
|
||||||
public void checkPermissions() {
|
public void checkPermissions() {
|
||||||
final PluginManager pluginManager = ess.getServer().getPluginManager();
|
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");
|
final Plugin permExPlugin = pluginManager.getPlugin("PermissionsEx");
|
||||||
if (permExPlugin != null && permExPlugin.isEnabled()) {
|
if (permExPlugin != null && permExPlugin.isEnabled()) {
|
||||||
if (!(handler instanceof PermissionsExHandler)) {
|
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 a new issue