redone permissions subnodes tests ... but neither tested xD

This commit is contained in:
Michel Roux 2012-05-08 14:58:41 +02:00
parent 5a3e6c3f32
commit 3015ba280b

View File

@ -441,19 +441,32 @@ public class SimplyCommands implements CommandExecutor {
private boolean checkPerm(CommandSender sender, String node, List<String> subnodes) { private boolean checkPerm(CommandSender sender, String node, List<String> subnodes) {
boolean ok = sender.hasPermission("permissions." + node + ".*"); boolean ok = sender.hasPermission("permissions." + node + ".*");
if (!ok) {
for (String subnode : subnodes) { for (String subnode : subnodes) {
String testnode = ""; String testnode = "";
for (String sub : subnode.split(".")) { for (String sub : subnode.split(".")) {
testnode += sub; testnode += sub;
if (sender.hasPermission("permissions." + node + "." + testnode) if (sender.isPermissionSet("permissions." + node + "." + testnode)) {
|| sender.hasPermission("permissions." + node + "." + testnode + ".*")) { if (ok && !sender.hasPermission("permissions." + node + "." + testnode)) {
ok = false;
break;
}
else if (!ok && sender.hasPermission("permissions." + node + "." + testnode)) {
ok = true; ok = true;
break; break;
} }
} }
if (ok) break; else if (sender.isPermissionSet("permissions." + node + "." + testnode + ".*")) {
if (ok && !sender.hasPermission("permissions." + node + "." + testnode + ".*")) {
ok = false;
break;
} }
else if (!ok && sender.hasPermission("permissions." + node + "." + testnode + ".*")) {
ok = true;
break;
}
}
}
if (!ok) break;
} }
if (!ok) { if (!ok) {
sender.sendMessage(ChatColor.RED + "You do not have permissions to do that."); sender.sendMessage(ChatColor.RED + "You do not have permissions to do that.");