Files
Paper/paper-api/src/main/java/org/bukkit/permissions/PermissionDefault.java
2019-04-23 14:00:20 +10:00

71 lines
1.8 KiB
Java

package org.bukkit.permissions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
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 static final Map<String, PermissionDefault> lookup = new HashMap<String, PermissionDefault>();
private PermissionDefault(/*@NotNull*/ 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
*/
@Nullable
public static PermissionDefault getByName(@NotNull String name) {
return lookup.get(name.toLowerCase(java.util.Locale.ENGLISH).replaceAll("[^a-z!]", ""));
}
@Override
public String toString() {
return names[0];
}
static {
for (PermissionDefault value : values()) {
for (String name : value.names) {
lookup.put(name, value);
}
}
}
}