1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-11 17:15:07 +02:00

New permission checks, now only registers the parent nodes and needs two checks. This combines the 2.9 and 3.0 permission check methods.

This commit is contained in:
snowleo
2012-10-03 15:57:37 +02:00
parent 53b512415e
commit b677dbfb25
7 changed files with 67 additions and 73 deletions

View File

@@ -7,13 +7,11 @@ import net.ess3.bukkit.PermissionFactory;
import net.ess3.permissions.BasePermission;
import org.bukkit.Material;
import org.bukkit.command.CommandSender;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
public enum Permissions implements IPermission
{
BLACKLIST_ALLOWPLACEMENT,
BLACKLIST_ALLOWUSAGE,
BLACKLIST_ALLOWBREAK,
@@ -22,7 +20,7 @@ public enum Permissions implements IPermission
private static final String base = "essentials.build.";
private final String permission;
private final PermissionDefault defaultPerm;
private transient Permission bukkitPerm = null;
private transient String parent = null;
private Permissions()
{
@@ -42,15 +40,15 @@ public enum Permissions implements IPermission
}
@Override
public Permission getPermission()
public String getParentPermission()
{
if (bukkitPerm != null)
if (parent != null)
{
return bukkitPerm;
return parent;
}
else
{
return PermissionFactory.registerPermission(getPermissionName(), getPermissionDefault());
return PermissionFactory.registerParentPermission(getPermissionName());
}
}
@@ -63,9 +61,8 @@ public enum Permissions implements IPermission
@Override
public boolean isAuthorized(final CommandSender sender)
{
return sender.hasPermission(getPermission());
return PermissionFactory.checkPermission(sender, this);
}
private static EnumMap<Material, IPermission> permissions = new EnumMap<Material, IPermission>(Material.class);
public static IPermission getPlacePermission(final Material mat)
@@ -85,7 +82,7 @@ public enum Permissions implements IPermission
}
return perm;
}
public static IPermission getBreakPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
@@ -103,7 +100,7 @@ public enum Permissions implements IPermission
}
return perm;
}
public static IPermission getInteractPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
@@ -121,6 +118,7 @@ public enum Permissions implements IPermission
}
return perm;
}
public static IPermission getCraftPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
@@ -138,7 +136,7 @@ public enum Permissions implements IPermission
}
return perm;
}
public static IPermission getPickupPermission(final Material mat)
{
IPermission perm = permissions.get(mat);
@@ -156,7 +154,7 @@ public enum Permissions implements IPermission
}
return perm;
}
public static IPermission getDropPermission(final Material mat)
{
IPermission perm = permissions.get(mat);