|
@@ -1,33 +1,52 @@
|
|
package com.gmail.nossr50;
|
|
package com.gmail.nossr50;
|
|
|
|
|
|
-import java.util.logging.Level;
|
|
|
|
import java.util.logging.Logger;
|
|
import java.util.logging.Logger;
|
|
|
|
|
|
import org.bukkit.Server;
|
|
import org.bukkit.Server;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.Plugin;
|
|
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;
|
|
import com.nijikokun.bukkit.Permissions.Permissions;
|
|
|
|
|
|
public class mcPermissions
|
|
public class mcPermissions
|
|
{
|
|
{
|
|
- private static Permissions permissionsPlugin;
|
|
|
|
- public static boolean permissionsEnabled = false;
|
|
|
|
private static volatile mcPermissions instance;
|
|
private static volatile mcPermissions instance;
|
|
|
|
+
|
|
|
|
+ private enum PermissionType {
|
|
|
|
+ PEX, PERMISSIONS, BUKKIT
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private static PermissionType permissionType;
|
|
|
|
+ private static Object PHandle;
|
|
|
|
+ public static boolean permissionsEnabled = false;
|
|
|
|
|
|
public static void initialize(Server server)
|
|
public static void initialize(Server server)
|
|
{
|
|
{
|
|
- Plugin test = server.getPluginManager().getPlugin("Permissions");
|
|
|
|
- if (test != null)
|
|
|
|
- {
|
|
|
|
- Logger log = Logger.getLogger("Minecraft");
|
|
|
|
- permissionsPlugin = ((Permissions) test);
|
|
|
|
- permissionsEnabled = true;
|
|
|
|
- log.log(Level.INFO, "[mcMMO] Permissions enabled.");
|
|
|
|
- } else
|
|
|
|
- {
|
|
|
|
- Logger log = Logger.getLogger("Minecraft");
|
|
|
|
- log.log(Level.SEVERE, "[mcMMO] Permissions isn't loaded, there are no restrictions.");
|
|
|
|
- }
|
|
|
|
|
|
+ Logger log = Logger.getLogger("Minecraft");
|
|
|
|
+
|
|
|
|
+ if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return;
|
|
|
|
+
|
|
|
|
+ Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
|
|
|
|
+ Plugin test = server.getPluginManager().getPlugin("Permissions");
|
|
|
|
+ if(PEXtest != null) {
|
|
|
|
+ PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
|
|
|
|
+ permissionType = PermissionType.PEX;
|
|
|
|
+ permissionsEnabled = true;
|
|
|
|
+ log.info("[mcMMO] PermissionsEx found, using PermissionsEx.");
|
|
|
|
+ } else if(test != null) {
|
|
|
|
+ PHandle = (PermissionHandler) ((Permissions) test).getHandler();
|
|
|
|
+ permissionType = PermissionType.PERMISSIONS;
|
|
|
|
+ permissionsEnabled = true;
|
|
|
|
+ log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions.");
|
|
|
|
+ } else {
|
|
|
|
+ permissionType = PermissionType.BUKKIT;
|
|
|
|
+ permissionsEnabled = true;
|
|
|
|
+ log.info("[mcMMO] Using Bukkit Permissions.");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
public static boolean getEnabled()
|
|
public static boolean getEnabled()
|
|
@@ -35,10 +54,20 @@ public class mcPermissions
|
|
return permissionsEnabled;
|
|
return permissionsEnabled;
|
|
}
|
|
}
|
|
|
|
|
|
- private static boolean permission(Player player, String string)
|
|
|
|
|
|
+ private static boolean permission(Player player, String permission)
|
|
{
|
|
{
|
|
- return permissionsPlugin.getHandler().has(player, string);
|
|
|
|
- }
|
|
|
|
|
|
+ if(!permissionsEnabled) return player.isOp();
|
|
|
|
+ switch(permissionType) {
|
|
|
|
+ case PEX:
|
|
|
|
+ return ((PermissionManager) PHandle).has(player, permission);
|
|
|
|
+ case PERMISSIONS:
|
|
|
|
+ return ((PermissionHandler) PHandle).has(player, permission);
|
|
|
|
+ case BUKKIT:
|
|
|
|
+ return player.hasPermission(permission);
|
|
|
|
+ default:
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
public boolean admin(Player player){
|
|
public boolean admin(Player player){
|
|
if (permissionsEnabled) {
|
|
if (permissionsEnabled) {
|
|
return permission(player, "mcmmo.admin");
|
|
return permission(player, "mcmmo.admin");
|