package com.alecgorge.minecraft.jsonapi.config; import java.util.HashMap; import java.util.List; import java.util.Map; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.plugin.Plugin; import com.alecgorge.minecraft.jsonapi.JSONAPI; public class PermissionNodesConfig extends Config { public Map<String, Map<String, List<String>>> permissions = new HashMap<String, Map<String, List<String>>>(); public PermissionNodesConfig(Plugin plugin) { CONFIG_STREAM = plugin.getResource("permission_nodes.yml"); CONFIG_HEADER = "JSONAPI v4 permissions file"; } public static PermissionNodesConfig inst = null; public static PermissionNodesConfig config() { if(inst == null) { inst = new PermissionNodesConfig(JSONAPI.instance); try { inst.init(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } } return inst; } Map<String, JSONAPIPermissionNode> perms = null; public Map<String, JSONAPIPermissionNode> getPermissions() { if(perms == null) { perms = new HashMap<String, JSONAPIPermissionNode>(); for(String k : permissions.keySet()) { JSONAPIPermissionNode node = new JSONAPIPermissionNode(k); if(permissions.get(k).get("streams") != null) node.streams = permissions.get(k).get("streams"); if(permissions.get(k).get("methods") != null) node.methods = permissions.get(k).get("methods"); perms.put(k, node); } } return perms; } public static JSONAPIPermissionNode fromName(String name) { return config().getPermissionNode(name); } public JSONAPIPermissionNode getPermissionNode(String name) { Map<String, JSONAPIPermissionNode> nodes = getPermissions(); if(!nodes.containsKey(name)) { try { throw new Exception("The permission node "+ name +" does not exist!"); } catch (Exception e) { e.printStackTrace(); } return null; } return nodes.get(name).setName(name); } }