From a5e4da2a7681faa0695f77ca4c2169c001cd0540 Mon Sep 17 00:00:00 2001
From: Lennart ten Wolde <0p1q9o2w@hotmail.nl>
Date: Thu, 26 May 2016 04:14:31 +0200
Subject: [PATCH] fix permissions
---
pom.xml | 14 ++--
.../com/lenis0012/bukkit/marriage2/MData.java | 2 -
.../lenis0012/bukkit/marriage2/MPlayer.java | 2 -
.../bukkit/marriage2/config/Permissions.java | 75 ++++++++-----------
4 files changed, 37 insertions(+), 56 deletions(-)
diff --git a/pom.xml b/pom.xml
index 2f8b3fb..7d663ff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,13 +42,13 @@
1.9-R0.1-SNAPSHOT
provided
-
- org.spigotmc
- spigot
- 1.9-R0.1-SNAPSHOT
- system
- ${project.basedir}/lib/spigot.jar
-
+
+
+
+
+
+
+
com.lenis0012.bukkit
lenisutils
diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/MData.java b/src/main/java/com/lenis0012/bukkit/marriage2/MData.java
index 8533993..5d0db0a 100644
--- a/src/main/java/com/lenis0012/bukkit/marriage2/MData.java
+++ b/src/main/java/com/lenis0012/bukkit/marriage2/MData.java
@@ -2,7 +2,6 @@ package com.lenis0012.bukkit.marriage2;
import org.bukkit.Location;
-import javax.annotation.Nullable;
import java.util.UUID;
public interface MData {
@@ -24,7 +23,6 @@ public interface MData {
*
* @return Marriage home, NULL if not set.
*/
- @Nullable
Location getHome();
/**
diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/MPlayer.java b/src/main/java/com/lenis0012/bukkit/marriage2/MPlayer.java
index 337ef00..60e8310 100644
--- a/src/main/java/com/lenis0012/bukkit/marriage2/MPlayer.java
+++ b/src/main/java/com/lenis0012/bukkit/marriage2/MPlayer.java
@@ -1,6 +1,5 @@
package com.lenis0012.bukkit.marriage2;
-import javax.annotation.Nullable;
import java.util.UUID;
public interface MPlayer {
@@ -46,7 +45,6 @@ public interface MPlayer {
*
* @return Player's marriage, NULL if not married.
*/
- @Nullable
MData getMarriage();
/**
diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java b/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java
index 99dafcc..8680eb5 100644
--- a/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java
+++ b/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java
@@ -1,22 +1,25 @@
package com.lenis0012.bukkit.marriage2.config;
+import com.lenis0012.bukkit.marriage2.internal.MarriagePlugin;
+import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
-import org.bukkit.permissions.Permission;
-import org.bukkit.permissions.PermissionDefault;
+import org.bukkit.plugin.RegisteredServiceProvider;
+
+import java.util.logging.Level;
public enum Permissions {
/**
- * Kitds
+ * Kits
*/
- ALL("marry.*", PermissionDefault.FALSE, -1),
- ADMIN("marry.admin", PermissionDefault.OP, 0),
- DEFAULT("marry.default", PermissionDefault.OP, 0),
+ ALL("marry.*", -1),
+ ADMIN("marry.admin", 0),
+ DEFAULT("marry.default", 0),
/**
* Admin commands
*/
- UPDATE("marry.update", PermissionDefault.FALSE, 1),
- CHAT_SPY("marry.chatspy", PermissionDefault.FALSE, 1),
+ UPDATE("marry.update", 1),
+ CHAT_SPY("marry.chatspy", 1),
/**
* Player commands
*/
@@ -29,35 +32,29 @@ public enum Permissions {
CHAT("marry.chat"),
SEEN("marry.seen");
-// public static Permission permissionService;
-//
-// public boolean setupPermissions() {
-// RegisteredServiceProvider permissionProvider = Bukkit.getServicesManager().getRegistration(Permission.class);
-// if(permissionProvider != null) {
-// permissionService = permissionProvider.getProvider();
-// }
-// return permissionService != null;
-// }
+ private static boolean vaultEnabled = false;
+ private static Permission permissionService;
+
+ public boolean setupPermissions() {
+ RegisteredServiceProvider permissionProvider = Bukkit.getServicesManager().getRegistration(Permission.class);
+ if(permissionProvider != null) {
+ permissionService = permissionProvider.getProvider();
+ vaultEnabled = true;
+ MarriagePlugin.getCore().getLogger().log(Level.INFO, "Hooked with " + permissionService.getName() + " using Vault!");
+ }
+ return permissionService != null;
+ }
private final String node;
- private final PermissionDefault defaultSetting;
private final int parent;
- private Permission permission;
Permissions(String node) {
- this(node, PermissionDefault.FALSE);
+ this(node, 2);
}
- Permissions(String node, PermissionDefault defaultSetting) {
- this(node, defaultSetting, 2);
- }
-
- Permissions(String node, PermissionDefault defaultSetting, int parent) {
+ Permissions(String node, int parent) {
this.node = node;
- this.defaultSetting = defaultSetting;
this.parent = parent;
- this.permission = new Permission(node, null, defaultSetting);
- Bukkit.getPluginManager().addPermission(permission);
}
/**
@@ -67,7 +64,11 @@ public enum Permissions {
* @return True if has permission, False otherwise
*/
public boolean has(CommandSender sender) {
- return sender.hasPermission(permission);
+ if(parent >= 0 && values()[parent].has(sender)) {
+ return true;
+ }
+
+ return vaultEnabled ? permissionService.has(sender, node) : sender.hasPermission(node);
}
/**
@@ -85,20 +86,4 @@ public enum Permissions {
return null;
}
-
- /**
- * Set child relations
- */
- public static void setupChildRelations() {
- for(Permissions perm : values()) {
- if(perm.parent < 0) continue;
- perm.permission.addParent(values()[perm.parent].permission, true);
- }
- }
-
- public static void unloadAll() {
- for(Permissions perm : values()) {
- Bukkit.getPluginManager().removePermission(perm.permission);
- }
- }
}