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); } } } }