001package com.ericlam.mc.bungee.hnmc.permission;
002
003
004import net.md_5.bungee.api.CommandSender;
005
006import java.util.ArrayList;
007import java.util.List;
008
009public class Perm {
010    public static final String ADMIN = "hypernite.admin";
011    public static final String HELPER = "hypernite.helper";
012    public static final String MOD = "hypernite.mod";
013    public static final String BUILDER = "hypernite.builder";
014    public static final String DONOR = "hypernite.donor";
015    public static final String DEVELOPER = "hypernite.developer";
016    public static final String OWNER = "*";
017
018    public static boolean hasPermission(CommandSender sender, String permission) {
019        boolean reuslt = false;
020        if (permission == null) return true;
021        for (String Pnode : getPermHierarchy(permission)) {
022            reuslt = reuslt || sender.hasPermission(Pnode);
023        }
024        return reuslt;
025    }
026
027    public static List<String> getPermHierarchy(String string) {
028        String[] node = string.split("\\.");
029        List<String> permissionNode = new ArrayList<>();
030        StringBuilder stringBuilder = new StringBuilder();
031        for (int i = 0; i < node.length; i++) {
032            stringBuilder.append(node[i]);
033            permissionNode.add(stringBuilder.toString());
034            if (i != node.length - 1) stringBuilder.append(".");
035        }
036        return permissionNode;
037    }
038}