GroupManager/src/main/java/org/anjocaido/groupmanager/permissions/PermissionsReaderInterface....

256 lines
6.8 KiB
Java

package org.anjocaido.groupmanager.permissions;
// import java.util.Collection;
// import java.util.Map;
// import java.util.Set;
import java.util.List;
import java.util.Set;
import org.anjocaido.groupmanager.data.Group;
// import org.anjocaido.groupmanager.data.User;
import org.bukkit.entity.Player;
/**
* Made by Nijikokun. Changed by Gabriel Couto
*
* This class is intended to *read* permissions from a single world.
*
* @author Nijikokun
* @author Gabriel Couto
* @author ElgarL
*/
public abstract class PermissionsReaderInterface {
/**
*
* @param player
* @param string
* @return true if has permission
*/
public abstract boolean has(Player player, String string);
/**
*
* @param player
* @param string
* @return true if has permission
*/
public abstract boolean permission(Player player, String string);
/**
*
* @param userName
* @return group name for this player.
*/
public abstract String getGroup(String userName);
/**
*
* @param userName
* @param groupName
* @return true if in group
*/
public abstract boolean inGroup(String userName, String groupName);
/**
*
* @param groupName
* @return String of prefix
*/
public abstract String getGroupPrefix(String groupName);
/**
*
* @param groupName
* @return String of suffix
*/
public abstract String getGroupSuffix(String groupName);
/**
*
* @param groupName
* @return true if can build
*/
public abstract boolean canGroupBuild(String groupName);
/**
*
* @param groupName
* @param node
* @return String value
*/
public abstract String getGroupPermissionString(String groupName, String node);
/**
*
* @param groupName
* @param node
* @return integer value
*/
public abstract int getGroupPermissionInteger(String groupName, String node);
/**
*
* @param groupName
* @param node
* @return boolean value
*/
public abstract boolean getGroupPermissionBoolean(String groupName, String node);
/**
*
* @param groupName
* @param node
* @return double value
*/
public abstract double getGroupPermissionDouble(String groupName, String node);
/**
*
* @param userName
* @param node
* @return String value
*/
public abstract String getUserPermissionString(String userName, String node);
/**
*
* @param userName
* @param node
* @return integer value
*/
public abstract int getUserPermissionInteger(String userName, String node);
/**
*
* @param userName
* @param node
* @return boolean value
*/
public abstract boolean getUserPermissionBoolean(String userName, String node);
/**
*
* @param userName
* @param node
* @return double value
*/
public abstract double getUserPermissionDouble(String userName, String node);
/**
*
* @param userName
* @param node
* @return String value
*/
public abstract String getPermissionString(String userName, String node);
/**
*
* @param userName
* @param node
* @return integer value
*/
public abstract int getPermissionInteger(String userName, String node);
/**
*
* @param userName
* @param node
* @return boolean value
*/
public abstract boolean getPermissionBoolean(String userName, String node);
/**
*
* @param userName
* @param node
* @return double value
*/
public abstract double getPermissionDouble(String userName, String node);
/////////////////////////////
/**
* Gets the appropriate prefix for the user.
* This method is a utility method for chat plugins to get the user's prefix
* without having to look at every one of the user's ancestors.
* Returns an empty string if user has no parent groups.
*
* @param user
* Player's name
* @return Player's prefix
*/
public abstract String getUserPrefix(String user);
/**
* Gets the appropriate suffix for the user.
* This method is a utility method for chat plugins to get the user's suffix
* without having to look at every one of the user's ancestors.
* Returns an empty string if user has no parent groups.
*
* @param user
* Player's name
* @return Player's suffix
*/
public abstract String getUserSuffix(String user);
/**
* Returns the group object representing the default group of the given
* world.
* This method will return null if the object does not exist or the world
* has no default group.
*
* @return Group object representing default world, or null if it doesn't
* exist or is not defined.
*/
public abstract Group getDefaultGroup();
/**
* Gets a array of the names of all parent groups in the same world.
*
* @param name
* Target user's name
* @return An array containing the names of all parent groups (including
* ancestors) that are in the same world
*/
public abstract String[] getGroups(String name);
public abstract String getInfoString(String entryName, String path, boolean isGroup);
// public abstract String getInfoString(String entryName, String path, boolean isGroup, Comparator<String> comparator);
public abstract int getInfoInteger(String entryName, String path, boolean isGroup);
// public abstract int getInfoInteger(String entryName, String path, boolean isGroup, Comparator<Integer> comparator);
/**
* Gets a double from the Info node without inheritance.
*
* @param entryName
* @param path
* @param isGroup
* @return -1 if not found
*/
public abstract double getInfoDouble(String entryName, String path, boolean isGroup);
// public abstract double getInfoDouble(String entryName, String path, boolean isGroup, Comparator<Double> comparator);
public abstract boolean getInfoBoolean(String entryName, String path, boolean isGroup);
// public abstract boolean getInfoBoolean(String entryName, String path, boolean isGroup, Comparator<Boolean> comparator);
public abstract void addUserInfo(String name, String path, Object data);
public abstract void removeUserInfo(String name, String path);
public abstract void addGroupInfo(String name, String path, Object data);
public abstract void removeGroupInfo(String name, String path);
//////////////////////////////
public abstract List<String> getAllPlayersPermissions(String userName);
public abstract Set<String> getAllPlayersPermissions(String userName, Boolean includeChildren);
}