45 lines
1.1 KiB
Java
45 lines
1.1 KiB
Java
|
package com.boydti.fawe.util;
|
||
|
|
||
|
import com.boydti.fawe.object.FawePlayer;
|
||
|
|
||
|
public enum Perm {
|
||
|
/*
|
||
|
* Permission related functions
|
||
|
*/
|
||
|
ADMIN("fawe.admin", "admin");
|
||
|
|
||
|
public String s;
|
||
|
public String cat;
|
||
|
|
||
|
Perm(final String perm, final String cat) {
|
||
|
s = perm;
|
||
|
this.cat = cat;
|
||
|
}
|
||
|
|
||
|
public boolean has(final FawePlayer<?> player) {
|
||
|
return hasPermission(player, this);
|
||
|
}
|
||
|
|
||
|
public boolean hasPermission(final FawePlayer<?> player, final Perm perm) {
|
||
|
return hasPermission(player, perm.s);
|
||
|
}
|
||
|
|
||
|
public static boolean hasPermission(final FawePlayer<?> player, final String perm) {
|
||
|
if ((player == null) || player.hasPermission(ADMIN.s)) {
|
||
|
return true;
|
||
|
}
|
||
|
if (player.hasPermission(perm)) {
|
||
|
return true;
|
||
|
}
|
||
|
final String[] nodes = perm.split("\\.");
|
||
|
final StringBuilder n = new StringBuilder();
|
||
|
for (int i = 0; i < (nodes.length - 1); i++) {
|
||
|
n.append(nodes[i] + ("."));
|
||
|
if (player.hasPermission(n + "*")) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
}
|