Added new permission system

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
Bukkit/Spigot
2011-07-17 17:17:47 +01:00
parent 3c852a3c8f
commit 67a52cca79
15 changed files with 958 additions and 9 deletions

View File

@@ -0,0 +1,65 @@
package org.bukkit.permissions;
import java.util.HashMap;
import java.util.Map;
/**
* Represents the possible default values for permissions
*/
public enum PermissionDefault {
TRUE("true"),
FALSE("false"),
OP("op", "isop", "operator", "isoperator", "admin", "isadmin"),
NOT_OP("!op", "notop", "!operator", "notoperator", "!admin", "notadmin");
private final String[] names;
private final static Map<String, PermissionDefault> lookup = new HashMap<String, PermissionDefault>();
private PermissionDefault(String... names) {
this.names = names;
}
/**
* Calculates the value of this PermissionDefault for the given operator value
*
* @param op If the target is op
* @return True if the default should be true, or false
*/
public boolean getValue(boolean op) {
switch (this) {
case TRUE:
return true;
case FALSE:
return false;
case OP:
return op;
case NOT_OP:
return !op;
default:
return false;
}
}
/**
* Looks up a PermissionDefault by name
*
* @param name Name of the default
* @return Specified value, or null if not found
*/
public static PermissionDefault getByName(String name) {
return lookup.get(name.toLowerCase().replaceAll("[^a-z!]", ""));
}
@Override
public String toString() {
return names[0];
}
static {
for (PermissionDefault value : values()) {
for (String name : value.names) {
lookup.put(name, value);
}
}
}
}