| package com.nijiko.permissions; |
| |
| import java.util.Map; |
| import org.bukkit.entity.Player; |
| import org.bukkit.util.config.Configuration; |
| |
| /** |
| * Permissions 2.x |
| * Copyright (C) 2011 Matt 'The Yeti' Burnett <admin@theyeticave.net> |
| * Original Credit & Copyright (C) 2010 Nijikokun <nijikokun@gmail.com> |
| * |
| * This program is free software: you can redistribute it and/or modify |
| * it under the terms of the GNU Permissions Public License as published by |
| * the Free Software Foundation, either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU Permissions Public License for more details. |
| * |
| * You should have received a copy of the GNU Permissions Public License |
| * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| |
| /** |
| * Abstract method for multiple permission handlers |
| * |
| * @author Nijiko |
| */ |
| public abstract class PermissionHandler { |
| |
| public abstract void setDefaultWorld(String world); |
| |
| |
| public abstract boolean loadWorld(String world); |
| public abstract void forceLoadWorld(String world); |
| public abstract boolean checkWorld(String world); |
| |
| public abstract void load(); |
| public abstract void load(String world, Configuration config); |
| public abstract void reload(); |
| public abstract boolean reload(String world); |
| |
| // Cache |
| public abstract void setCache(String world, Map<String, Boolean> Cache); |
| public abstract void setCacheItem(String world, String player, String permission, boolean data); |
| public abstract Map<String, Boolean> getCache(String world); |
| public abstract boolean getCacheItem(String world, String player, String permission); |
| public abstract void removeCachedItem(String world, String player, String permission); |
| public abstract void clearCache(String world); |
| public abstract void clearAllCache(); |
| |
| |
| /** |
| * Simple alias for permission method. |
| * Easier to understand / recognize what it does and is checking for. |
| * |
| * @param player |
| * @param permission |
| * @return boolean |
| */ |
| public abstract boolean has(Player player, String permission); |
| |
| public abstract boolean has(String worldName, String playerName, String permission); |
| |
| /** |
| * Checks to see if a player has permission to a specific tree node. |
| * <br /><br /> |
| * Example usage: |
| * <blockquote><pre> |
| * boolean canReload = Plugin.Permissions.Security.permission(player, "permission.reload"); |
| * if(canReload) { |
| * System.out.println("The user can reload!"); |
| * } else { |
| * System.out.println("The user has no such permission!"); |
| * } |
| * </pre></blockquote> |
| * |
| * @param player |
| * @param permission |
| * @return boolean |
| */ |
| public abstract boolean permission(Player player, String permission); |
| |
| public abstract boolean permission(String worldName, String playerName, String permission); |
| |
| /** |
| * Grabs group name. |
| * <br /><br /> |
| * Namespace: groups.name |
| * |
| * @param group |
| * @return String |
| */ |
| public abstract String getGroup(String world, String name); |
| |
| /** |
| * Grabs users groups. |
| * <br /><br /> |
| * |
| * @param group |
| * @return Array |
| */ |
| public abstract String[] getGroups(String world, String name); |
| |
| /** |
| * Checks to see if the player is in the requested group. |
| * |
| * @param world |
| * @param name - Player |
| * @param group - Group to be checked upon. |
| * @return boolean |
| */ |
| public abstract boolean inGroup(String world, String name, String group); |
| |
| public abstract boolean inGroup(String name, String group); |
| |
| /** |
| * Checks to see if a player is in a single group. |
| * This does not check inheritance. |
| * |
| * @param world |
| * @param name - Player |
| * @param group - Group to be checked |
| * @return boolean |
| */ |
| public abstract boolean inSingleGroup(String world, String name, String group); |
| |
| /** |
| * Grabs group prefix, line that comes before the group. |
| * <br /><br /> |
| * Namespace: groups.name.info.prefix |
| * |
| * @param world |
| * @param group |
| * @return String |
| */ |
| public abstract String getGroupPrefix(String world, String group); |
| |
| /** |
| * Grabs group suffix, line that comes after the group. |
| * <br /><br /> |
| * Namespace: groups.name.info.suffix |
| * |
| * @param world |
| * @param group |
| * @return String |
| */ |
| public abstract String getGroupSuffix(String world, String group); |
| |
| /** |
| * Checks to see if the group has build permission. |
| * <br /><br /> |
| * Namespace: groups.name.info.build |
| * |
| * @param world |
| * @param group |
| * @return String |
| */ |
| public abstract boolean canGroupBuild(String world, String group); |
| |
| /** |
| * Get permission nodes from a group that contain values. |
| * <br /><br /> |
| * Grab Group Permission String values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return String. If no string found return "". |
| */ |
| public abstract String getGroupPermissionString(String world, String group, String permission); |
| |
| /** |
| * Get permission nodes from a group that contain values. |
| * <br /><br /> |
| * Grab Group Permission Integer values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Integer. No integer found return -1. |
| */ |
| public abstract int getGroupPermissionInteger(String world, String group, String permission); |
| |
| /** |
| * Get permission nodes from a group that contain values. |
| * <br /><br /> |
| * Grab Group Permission String values. |
| * |
| * @param group |
| * @param permission |
| * @return Boolean. No boolean found return false. |
| */ |
| public abstract boolean getGroupPermissionBoolean(String world, String group, String permission); |
| |
| /** |
| * Get permission nodes from a group that contain values. |
| * <br /><br /> |
| * Grab Group Permission Double values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Double. No value found return -1.0 |
| */ |
| public abstract double getGroupPermissionDouble(String world, String group, String permission); |
| |
| /** |
| * Get permission nodes from a specific user that contain values. |
| * <br /><br /> |
| * Grab User Permission String values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return String. If no string found return "". |
| */ |
| public abstract String getUserPermissionString(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a specific user that contain values. |
| * <br /><br /> |
| * Grab User Permission Integer values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Integer. No integer found return -1. |
| */ |
| public abstract int getUserPermissionInteger(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a specific user that contain values. |
| * <br /><br /> |
| * Grab User Permission Boolean values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Boolean. No boolean found return false. |
| */ |
| public abstract boolean getUserPermissionBoolean(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a specific user that contain values. |
| * <br /><br /> |
| * Grab User Permission Double values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Double. No value found return -1.0 |
| */ |
| public abstract double getUserPermissionDouble(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a user / group that contain values. |
| * <br /><br /> |
| * Grab User Permission String values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return String. If no string found return "". |
| */ |
| public abstract String getPermissionString(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a user / group that contain values. |
| * <br /><br /> |
| * Grab User Permission Integer values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Integer. No integer found return -1. |
| */ |
| public abstract int getPermissionInteger(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a user / group that contain values. |
| * <br /><br /> |
| * Grab User Permission Boolean values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Boolean. No boolean found return false. |
| */ |
| public abstract boolean getPermissionBoolean(String world, String name, String permission); |
| |
| /** |
| * Get permission nodes from a user / group that contain values. |
| * <br /><br /> |
| * Grab User Permission Double values. |
| * |
| * @param world |
| * @param group |
| * @param permission |
| * @return Double. No value found return -1.0 |
| */ |
| public abstract double getPermissionDouble(String world, String name, String permission); |
| |
| public abstract void addGroupInfo(String world, String group, String node, Object data); |
| public abstract void removeGroupInfo(String world, String group, String node); |
| |
| public abstract void addUserPermission(String world, String user, String node); |
| public abstract void removeUserPermission(String world, String user, String node); |
| |
| //Addition by rcjrrjcr |
| public abstract void save(String world); |
| public abstract void saveAll(); |
| //End of addition by rcjrrjcr |
| |
| } |