2
0
Эх сурвалжийг харах

NuclearW pull request 2: Electric Boogaloo (Permissions alterations, updated for 1.0.35 wip, locally
untested)

Benjamin Diskmaster Lierman 14 жил өмнө
parent
commit
35c80da928

+ 37 - 8
mcMMO/com/gmail/nossr50/mcPermissions.java

@@ -6,27 +6,47 @@ import java.util.logging.Logger;
 import org.bukkit.Server;
 import org.bukkit.entity.Player;
 import org.bukkit.plugin.Plugin;
+
+import ru.tehkode.permissions.PermissionManager;
+import ru.tehkode.permissions.bukkit.PermissionsEx;
+
+import com.nijiko.permissions.PermissionHandler;
 import com.nijikokun.bukkit.Permissions.Permissions;
 
 public class mcPermissions 
 {
-	private static Permissions permissionsPlugin;
+    private enum PermissionType {
+        PEX, PERMISSIONS, BUKKIT
+    }
+    
+    private static PermissionType permissionType;
+    private static Object PHandle;
     public static boolean permissionsEnabled = false;
     private static volatile mcPermissions instance;
 
     public static void initialize(Server server) 
     {
+        Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
         Plugin test = server.getPluginManager().getPlugin("Permissions");
-        if (test != null) 
-        {
-            Logger log = Logger.getLogger("Minecraft");
-            permissionsPlugin = ((Permissions) test);
+        Logger log = Logger.getLogger("Minecraft");
+        if (PEXtest != null) {
+            PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
+            permissionType = PermissionType.PEX;
+            permissionsEnabled = true;
+            log.log(Level.INFO, "[mcMMO] PermissionsEx enabled.");
+        } else if (test != null) {
+            PHandle = (PermissionHandler) ((Permissions) test).getHandler();
+            permissionType = PermissionType.PERMISSIONS;
             permissionsEnabled = true;
-            log.log(Level.INFO, "[mcMMO] Permissions enabled.");
+            log.log(Level.INFO, "[mcMMO] Permissions "+test.getDescription().getVersion()+" enabled.");
         } else 
         {
-            Logger log = Logger.getLogger("Minecraft");
             log.log(Level.SEVERE, "[mcMMO] Permissions isn't loaded, there are no restrictions.");
+            /*
+            permissionType = PermissionType.BUKKIT;
+            permissionsEnabled = true;
+            log.info("[mcMMO] Using Bukkit Permissions.")
+             */
         }
     }
     
@@ -37,7 +57,16 @@ public class mcPermissions
   
     private static boolean permission(Player player, String string) 
     {
-        return permissionsPlugin.getHandler().has(player, string);
+    	switch (permissionType) {
+            case PEX:
+                return ((PermissionManager) PHandle).has(player, string);
+            case PERMISSIONS:
+                return ((PermissionHandler) PHandle).has(player, string);
+            case BUKKIT:
+                //return player.hasPermission(string);
+            default:
+                return true;
+    	}
     }
     public boolean admin(Player player){
     	if (permissionsEnabled) {