diff options
Diffstat (limited to 'EssentialsGroupBridge/src/com/nijiko')
4 files changed, 504 insertions, 425 deletions
diff --git a/EssentialsGroupBridge/src/com/nijiko/permissions/Entry.java b/EssentialsGroupBridge/src/com/nijiko/permissions/Entry.java index 913c7f51e..a0c369aca 100644 --- a/EssentialsGroupBridge/src/com/nijiko/permissions/Entry.java +++ b/EssentialsGroupBridge/src/com/nijiko/permissions/Entry.java @@ -1,5 +1,6 @@ package com.nijiko.permissions; -public class Entry { - + +public class Entry +{ } diff --git a/EssentialsGroupBridge/src/com/nijiko/permissions/Group.java b/EssentialsGroupBridge/src/com/nijiko/permissions/Group.java index 0d070c207..aa5a39d3c 100644 --- a/EssentialsGroupBridge/src/com/nijiko/permissions/Group.java +++ b/EssentialsGroupBridge/src/com/nijiko/permissions/Group.java @@ -1,6 +1,6 @@ package com.nijiko.permissions; -public class Group extends Entry { - +public class Group extends Entry +{ }
\ No newline at end of file diff --git a/EssentialsGroupBridge/src/com/nijiko/permissions/PermissionHandler.java b/EssentialsGroupBridge/src/com/nijiko/permissions/PermissionHandler.java index 3b7181d03..f09da5d65 100644 --- a/EssentialsGroupBridge/src/com/nijiko/permissions/PermissionHandler.java +++ b/EssentialsGroupBridge/src/com/nijiko/permissions/PermissionHandler.java @@ -7,430 +7,508 @@ import java.util.Set; import org.bukkit.entity.Player; + /** - * Permissions 3.0 - * Copyright (C) 2011 Matt 'The Yeti' Burnett <admin@theyeticave.net> - * Original Credit & Copyright (C) 2010 Nijikokun <nijikokun@gmail.com> + * Permissions 3.0 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 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. + * 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/>. + * You should have received a copy of the GNU Permissions Public License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ +public abstract class PermissionHandler +{ + //World config manipulation methods + /** + * Sets the default world that is loaded on startup. + * + * @param world World to load on startup + */ + public abstract void setDefaultWorld(String world); + + /** + * Check if world is loaded. A world is considered as loaded if there exists a user/group storage for it or it + * mirrors another world. + * + * @param world Target world + * @return Whether the world is loaded. + */ + public abstract boolean checkWorld(String world); + + /** + * Attempts to load a world. If the world is already loaded, nothing happens. + * + * @param world World to load + * @return Whether world isn't already loaded + * @throws Exception Any exception that may occur when loading the world. + */ + public abstract boolean loadWorld(String world) throws Exception; + + /** + * Forces a load of the world. + * + * @param world World to load + * @throws Exception Any exception that may occur when loading the world. + */ + public abstract void forceLoadWorld(String world) throws Exception; + + /** + * Returns a set of the names all loaded worlds. A world is considered as loaded if there exists a user/group + * storage for it or it mirrors another world. + * + * @return Set of the names all loaded worlds. + */ + public abstract Set<String> getWorlds(); + + /** + * Loads the default world and global permissions. + * + * @throws Exception Any exception that may occur when loading the worlds. + */ + public abstract void load() throws Exception; + + /** + * Reloads all worlds + */ + public abstract void reload(); + + /** + * Reloads the specified world + * + * @param world Name of target world + * @return False if world is not loaded, true otherwise + */ + public abstract boolean reload(String world); + + /** + * Forces all storages to save, + */ + public abstract void saveAll(); + + /** + * This method forces a save of the specified world + * + * @param world Name of target world + */ + public abstract void save(String world); + + /** + * Forces all storages to close. + */ + public abstract void closeAll(); + + //Permission-checking methods + /** + * This is an alias for permission(Player, String). + * + * @param player Target player + * @param node Permission node + * @return True if the player has the specified node, false otherwise + */ + public abstract boolean has(Player player, String node); + + /** + * This is an alias for permission(String, String, String). + * + * @param worldName Target world (may be different from player's current world) + * @param playerName Player's name + * @param node Permission node + * @return True if the player has the specified node, false otherwise + */ + public abstract boolean has(String worldName, String playerName, String node); + + /** + * This method checks if the player has the given permissions in his/her current world. In other words, this calls + * permissions(player.getWorld().getName(), player.getName(), node). + * + * @param player Target player + * @param node Permission node + * @return True if the player has the specified node, false otherwise + */ + public abstract boolean permission(Player player, String node); + + /** + * This method checks if the player has the given permissions in the given world. + * + * @param worldName Target world (may be different from player's current world) + * @param playerName Player's name + * @param node Permission node + * @return True if the player has the specified node, false otherwise + */ + public abstract boolean permission(String worldName, String playerName, String node); + + //Permission-manipulation methods + /** + * Adds the given permission to the targeted player. + * + * @param world Target world (may be different from player's current world) + * @param user Player's name + * @param node Permission node + */ + public abstract void addUserPermission(String world, String user, String node); + + /** + * Removes the given permission from the targeted player. + * + * @param world Target world (may be different from player's current world) + * @param user Player's name + * @param node Permission node + */ + public abstract void removeUserPermission(String world, String user, String node); + + /** + * Adds the given permission to the targeted group. + * + * @param world Target world + * @param user Group's name + * @param node Permission node + */ + public abstract void addGroupPermission(String world, String user, String node); + + /** + * Removes the given permission from the targeted group. + * + * @param world Target world + * @param user Group's name + * @param node Permission node + */ + public abstract void removeGroupPermission(String world, String user, String node); + + //Chat, prefix, suffix, build methods + /** + * Retrieves the properly-capitalised version of the given group's name. Returns an empty string if group does not + * exist. + * + * @param world Group's world + * @param group Group's name (any capitalisation) + * @return Group's properly-capitalised name. + */ + public abstract String getGroupProperName(String world, String group); + + /** + * 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 world Player's world + * @param user Player's name + * @return Player's prefix + */ + public abstract String getUserPrefix(String world, 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 world Player's world + * @param user Player's name + * @return Player's suffix + */ + public abstract String getUserSuffix(String world, String user); + + /** + * Gets the primary group of the user. Returns the default group if user has no parent groups, or null if there is + * no default group for that world. + * + * @param world Player's world + * @param user Player's name + * @return Player's primary group + */ + public abstract Group getPrimaryGroupObject(String world, String user); + + /** + * Gets name of the primary group of the user. Returns the name of the default group if user has no parent groups, + * or "Default" if there is no default group for that world. + * + * @param world Player's world + * @param user Player's name + * @return Name of player's primary group + */ + public abstract String getPrimaryGroup(String world, String user); + + /** + * Check if user can build. + * + * @param world Player's world + * @param user Player's name + * @return Whether the user can build + */ + public abstract boolean canUserBuild(String world, String user); + + /** + * Retrieves group's raw prefix, inheritance not included. Will return an empty string if no prefix is defined for + * the group. + * + * @param world Group's world + * @param group Group's name + * @return The prefix defined for the group, empty string if prefix is not defined. + */ + public abstract String getGroupRawPrefix(String world, String group); + + /** + * Retrieves group's raw suffix, inheritance not included. Will return an empty string if no suffix is defined for + * the group. + * + * @param world Group's world + * @param group Group's name + * @return The suffix defined for the group, empty string if suffix is not defined. + */ + public abstract String getGroupRawSuffix(String world, String group); + + /** + * Retrieves group's build setting, inheritance not included. + * + * @param world Group's world + * @param group Group's name + * @return Returns group's build setting. + */ + public abstract boolean canGroupRawBuild(String world, String group); + + //Entry methods + /** + * Returns the user object defined by the given world and name. This method attempts to create the object if it does + * not exist. + * + * @param world User's world + * @param name User's name + * @return User object + * @throws Exception An exception when creating the user object + */ + public abstract User safeGetUser(String world, String name) throws Exception; + + /** + * Returns the group object defined by the given world and name. This method attempts to create the object if it + * does not exist. + * + * @param world Group's world + * @param name Group's name + * @return Group object + * @throws Exception An exception when creating the group object + */ + public abstract Group safeGetGroup(String world, String name) throws Exception; + + /** + * Returns the user object defined by the given world and name. This method will return null if the object does not + * exist. + * + * @param world User's world + * @param name User's name + * @return User object, or null if it doesn't exist + */ + public abstract User getUserObject(String world, String name); + + /** + * Returns the group object defined by the given world and name. This method will return null if the object does not + * exist. + * + * @param world Group's world + * @param name Group's name + * @return Group object, or null if it doesn't exist + */ + public abstract Group getGroupObject(String world, String name); + + /** + * 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. + * + * @param world Target world + * @return Group object representing default world, or null if it doesn't exist or is not defined. + */ + public abstract Group getDefaultGroup(String world); + + /** + * Returns all the user objects in the world. Will return null if world does not exist. + * + * @param world Target world + * @return Collection of all user objects belonging to the world. + */ + public abstract Collection<User> getUsers(String world); + + /** + * Returns all the group objects in the world. Will return null if world does not exist. + * + * @param world Target world + * @return Collection of all group objects belonging to the world. + */ + public abstract Collection<Group> getGroups(String world); + + //Parent-related methods + public abstract Set<String> getTracks(String world); + + /** + * Checks if user is in specified group. Includes inherited groups. + * + * @param world World of both the user and the group + * @param user User's name + * @param group Parent group's name + * @return Whether user is a child of the specified group + */ + public abstract boolean inGroup(String world, String user, String group); + + /** + * Checks if user is in specified group. Includes inherited groups. + * + * @param world User's world + * @param user User's name + * @param groupWorld Parent group's world + * @param group Parent group's name + * @return Whether user is a child of the specified group + */ + public abstract boolean inGroup(String world, String user, String groupWorld, String group); -public abstract class PermissionHandler { - //World config manipulation methods - - /** - * Sets the default world that is loaded on startup. - * @param world World to load on startup - */ - public abstract void setDefaultWorld(String world); - /** - * Check if world is loaded. - * A world is considered as loaded if there exists a user/group storage for it or it mirrors another world. - * @param world Target world - * @return Whether the world is loaded. - */ - public abstract boolean checkWorld(String world); - - /** - * Attempts to load a world. If the world is already loaded, nothing happens. - * @param world World to load - * @return Whether world isn't already loaded - * @throws Exception Any exception that may occur when loading the world. - */ - public abstract boolean loadWorld(String world) throws Exception; - /** - * Forces a load of the world. - * @param world World to load - * @throws Exception Any exception that may occur when loading the world. - */ - public abstract void forceLoadWorld(String world) throws Exception; - /** - * Returns a set of the names all loaded worlds. - * A world is considered as loaded if there exists a user/group storage for it or it mirrors another world. - * @return Set of the names all loaded worlds. - */ - public abstract Set<String> getWorlds(); - /** - * Loads the default world and global permissions. - * @throws Exception Any exception that may occur when loading the worlds. - */ - public abstract void load() throws Exception; - /** - * Reloads all worlds - */ - public abstract void reload(); - /** - * Reloads the specified world - * @param world Name of target world - * @return False if world is not loaded, true otherwise - */ - public abstract boolean reload(String world); - /** - * Forces all storages to save, - */ - public abstract void saveAll(); - /** - * This method forces a save of the specified world - * @param world Name of target world - */ - public abstract void save(String world); - /** - * Forces all storages to close. - */ - public abstract void closeAll(); - - //Permission-checking methods - /** - * This is an alias for permission(Player, String). - * @param player Target player - * @param node Permission node - * @return True if the player has the specified node, false otherwise - */ - public abstract boolean has(Player player, String node); - /** - * This is an alias for permission(String, String, String). - * @param worldName Target world (may be different from player's current world) - * @param playerName Player's name - * @param node Permission node - * @return True if the player has the specified node, false otherwise - */ - public abstract boolean has(String worldName, String playerName, String node); - /** - * This method checks if the player has the given permissions in his/her current world. - * In other words, this calls permissions(player.getWorld().getName(), player.getName(), node). - * @param player Target player - * @param node Permission node - * @return True if the player has the specified node, false otherwise - */ - public abstract boolean permission(Player player, String node); - /** - * This method checks if the player has the given permissions in the given world. - * @param worldName Target world (may be different from player's current world) - * @param playerName Player's name - * @param node Permission node - * @return True if the player has the specified node, false otherwise - */ - public abstract boolean permission(String worldName, String playerName, String node); - - //Permission-manipulation methods - /** - * Adds the given permission to the targeted player. - * @param world Target world (may be different from player's current world) - * @param user Player's name - * @param node Permission node - */ - public abstract void addUserPermission(String world, String user, String node); - /** - * Removes the given permission from the targeted player. - * @param world Target world (may be different from player's current world) - * @param user Player's name - * @param node Permission node - */ - public abstract void removeUserPermission(String world, String user, String node); - /** - * Adds the given permission to the targeted group. - * @param world Target world - * @param user Group's name - * @param node Permission node - */ - public abstract void addGroupPermission(String world, String user, String node); - /** - * Removes the given permission from the targeted group. - * @param world Target world - * @param user Group's name - * @param node Permission node - */ - public abstract void removeGroupPermission(String world, String user, String node); - - //Chat, prefix, suffix, build methods - /** - * Retrieves the properly-capitalised version of the given group's name. - * Returns an empty string if group does not exist. - * @param world Group's world - * @param group Group's name (any capitalisation) - * @return Group's properly-capitalised name. - */ - public abstract String getGroupProperName(String world, String group); - /** - * 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 world Player's world - * @param user Player's name - * @return Player's prefix - */ - public abstract String getUserPrefix(String world, 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 world Player's world - * @param user Player's name - * @return Player's suffix - */ - public abstract String getUserSuffix(String world, String user); - /** - * Gets the primary group of the user. - * Returns the default group if user has no parent groups, - * or null if there is no default group for that world. - * @param world Player's world - * @param user Player's name - * @return Player's primary group - */ - public abstract Group getPrimaryGroupObject(String world, String user); - /** - * Gets name of the primary group of the user. - * Returns the name of the default group if user has no parent groups, - * or "Default" if there is no default group for that world. - * @param world Player's world - * @param user Player's name - * @return Name of player's primary group - */ - public abstract String getPrimaryGroup(String world, String user); - /** - * Check if user can build. - * @param world Player's world - * @param user Player's name - * @return Whether the user can build - */ - public abstract boolean canUserBuild(String world, String user); - - /** - * Retrieves group's raw prefix, inheritance not included. - * Will return an empty string if no prefix is defined for the group. - * @param world Group's world - * @param group Group's name - * @return The prefix defined for the group, empty string if prefix is not defined. - */ - public abstract String getGroupRawPrefix(String world, String group); - /** - * Retrieves group's raw suffix, inheritance not included. - * Will return an empty string if no suffix is defined for the group. - * @param world Group's world - * @param group Group's name - * @return The suffix defined for the group, empty string if suffix is not defined. - */ - public abstract String getGroupRawSuffix(String world, String group); - /** - * Retrieves group's build setting, inheritance not included. - * @param world Group's world - * @param group Group's name - * @return Returns group's build setting. - */ - public abstract boolean canGroupRawBuild(String world, String group); - - //Entry methods - /** - * Returns the user object defined by the given world and name. - * This method attempts to create the object if it does not exist. - * @param world User's world - * @param name User's name - * @return User object - * @throws Exception An exception when creating the user object - */ - public abstract User safeGetUser(String world, String name) throws Exception; - /** - * Returns the group object defined by the given world and name. - * This method attempts to create the object if it does not exist. - * @param world Group's world - * @param name Group's name - * @return Group object - * @throws Exception An exception when creating the group object - */ - public abstract Group safeGetGroup(String world, String name) throws Exception; - /** - * Returns the user object defined by the given world and name. - * This method will return null if the object does not exist. - * @param world User's world - * @param name User's name - * @return User object, or null if it doesn't exist - */ - public abstract User getUserObject(String world, String name); - /** - * Returns the group object defined by the given world and name. - * This method will return null if the object does not exist. - * @param world Group's world - * @param name Group's name - * @return Group object, or null if it doesn't exist - */ - public abstract Group getGroupObject(String world, String name); - - /** - * 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. - * @param world Target world - * @return Group object representing default world, or null if it doesn't exist or is not defined. - */ - public abstract Group getDefaultGroup(String world); - /** - * Returns all the user objects in the world. - * Will return null if world does not exist. - * @param world Target world - * @return Collection of all user objects belonging to the world. - */ - public abstract Collection<User> getUsers(String world); - /** - * Returns all the group objects in the world. - * Will return null if world does not exist. - * @param world Target world - * @return Collection of all group objects belonging to the world. - */ - public abstract Collection<Group> getGroups(String world); - - //Parent-related methods - public abstract Set<String> getTracks(String world); - /** - * Checks if user is in specified group. Includes inherited groups. - * @param world World of both the user and the group - * @param user User's name - * @param group Parent group's name - * @return Whether user is a child of the specified group - */ - public abstract boolean inGroup(String world, String user, String group); - /** - * Checks if user is in specified group. Includes inherited groups. - * @param world User's world - * @param user User's name - * @param groupWorld Parent group's world - * @param group Parent group's name - * @return Whether user is a child of the specified group - */ - public abstract boolean inGroup(String world, String user, String groupWorld, String group); - /** - * Checks if user is in specified group, not counting inherited parents. - * @param world World of both the user and the group - * @param user User's name - * @param group Parent group's name - * @return Whether user is a child of the specified group - */ - public abstract boolean inSingleGroup(String world, String user, String group); - /** - * Checks if user is in specified group, not counting inherited parents. - * @param world User's world - * @param user User's name - * @param groupWorld Parent group's world - * @param group Parent group's name - * @return Whether user is a child of the specified group - */ - public abstract boolean inSingleGroup(String world, String user, String groupWorld, String group); - /** - * Gets a array of the names of all parent groups in the same world. - * @param world Target user's 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 world, String name); - /** - * Gets a map of world name to all parent groups of the target user in that world. - * @param world Target user's world - * @param name Target user's name - * @return Map of world name to set of groups that the user inherits from in the world. - */ - public abstract Map<String, Set<String>> getAllGroups(String world, String name); - - //Weight-related methods - /** - * Compare the weights of two users. - * This method is for plugin devs to compare whether a user can do an action to another user. - * For example, SlapPlugin can compare the weights of two users when one of them wants to /slap the other. - * It can decide whether to allow the slap using the result of this function. - * @param firstWorld First user's world - * @param first First user's name - * @param secondWorld Second user's world - * @param second Second user's name - * @return -1 if firstWeight < secondWeight, 0 if firstWeight == secondWeight, 1 if firstWeight > secondWeight - */ - public abstract int compareWeights(String firstWorld, String first, String secondWorld, String second); - /** - * Alias for compareWeights(world, first, world, second). - * @param world World - * @param first First user's name - * @param second Second user's name - * @return -1 if firstWeight < secondWeight, 0 if firstWeight == secondWeight, 1 if firstWeight > secondWeight - */ - public abstract int compareWeights(String world, String first, String second); - - //Data-related methods - public abstract String getRawInfoString(String world, String entryName, String path,boolean isGroup); - - public abstract Integer getRawInfoInteger(String world, String entryName, String path, boolean isGroup); - - public abstract Double getRawInfoDouble(String world, String entryName, String path, boolean isGroup); - - public abstract Boolean getRawInfoBoolean(String world, String entryName, String path, boolean isGroup); - - - public abstract String getInfoString(String world, String entryName, String path,boolean isGroup); - public abstract String getInfoString(String world, String entryName, String path, boolean isGroup, Comparator<String> comparator); - - public abstract Integer getInfoInteger(String world, String entryName, String path, boolean isGroup); - public abstract Integer getInfoInteger(String world, String entryName, String path, boolean isGroup, Comparator<Integer> comparator); - - public abstract Double getInfoDouble(String world, String entryName, String path, boolean isGroup); - public abstract Double getInfoDouble(String world, String entryName, String path, boolean isGroup, Comparator<Double> comparator); - - public abstract Boolean getInfoBoolean(String world, String entryName, String path, boolean isGroup); - public abstract Boolean getInfoBoolean(String world, String entryName, String path, boolean isGroup, Comparator<Boolean> comparator); - - - public abstract void addUserInfo(String world, String name, String path, Object data); - public abstract void removeUserInfo(String world, String name, String path); - public abstract void addGroupInfo(String world, String name, String path, Object data); - public abstract void removeGroupInfo(String world, String name, String path); - - //Legacy methods - @Deprecated - public abstract String getGroupPermissionString(String world, String group, String path); - @Deprecated - public abstract int getGroupPermissionInteger(String world, String group, String path); - @Deprecated - public abstract boolean getGroupPermissionBoolean(String world, String group, String path); - @Deprecated - public abstract double getGroupPermissionDouble(String world, String group, String path); - - @Deprecated - public abstract String getUserPermissionString(String world, String group, String path); - @Deprecated - public abstract int getUserPermissionInteger(String world, String group, String path); - @Deprecated - public abstract boolean getUserPermissionBoolean(String world, String group, String path); - @Deprecated - public abstract double getUserPermissionDouble(String world, String group, String path); - - @Deprecated - public abstract String getPermissionString(String world, String group, String path); - @Deprecated - public abstract int getPermissionInteger(String world, String group, String path); - @Deprecated - public abstract boolean getPermissionBoolean(String world, String group, String path); - @Deprecated - public abstract double getPermissionDouble(String world, String group, String path); - - - @Deprecated - public abstract String getGroup(String world, String group); - - @Deprecated - public abstract String getGroupPrefix(String world, String group); - @Deprecated - public abstract String getGroupSuffix(String world, String group); - @Deprecated - public abstract boolean canGroupBuild(String world, String group); - - //Cache methods are no longer available + /** + * Checks if user is in specified group, not counting inherited parents. + * + * @param world World of both the user and the group + * @param user User's name + * @param group Parent group's name + * @return Whether user is a child of the specified group + */ + public abstract boolean inSingleGroup(String world, String user, String group); + + /** + * Checks if user is in specified group, not counting inherited parents. + * + * @param world User's world + * @param user User's name + * @param groupWorld Parent group's world + * @param group Parent group's name + * @return Whether user is a child of the specified group + */ + public abstract boolean inSingleGroup(String world, String user, String groupWorld, String group); + + /** + * Gets a array of the names of all parent groups in the same world. + * + * @param world Target user's 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 world, String name); + + /** + * Gets a map of world name to all parent groups of the target user in that world. + * + * @param world Target user's world + * @param name Target user's name + * @return Map of world name to set of groups that the user inherits from in the world. + */ + public abstract Map<String, Set<String>> getAllGroups(String world, String name); + + //Weight-related methods + /** + * Compare the weights of two users. This method is for plugin devs to compare whether a user can do an action to + * another user. For example, SlapPlugin can compare the weights of two users when one of them wants to /slap the + * other. It can decide whether to allow the slap using the result of this function. + * + * @param firstWorld First user's world + * @param first First user's name + * @param secondWorld Second user's world + * @param second Second user's name + * @return -1 if firstWeight < secondWeight, 0 if firstWeight == secondWeight, 1 if firstWeight > secondWeight + */ + public abstract int compareWeights(String firstWorld, String first, String secondWorld, String second); + + /** + * Alias for compareWeights(world, first, world, second). + * + * @param world World + * @param first First user's name + * @param second Second user's name + * @return -1 if firstWeight < secondWeight, 0 if firstWeight == secondWeight, 1 if firstWeight > secondWeight + */ + public abstract int compareWeights(String world, String first, String second); + + //Data-related methods + public abstract String getRawInfoString(String world, String entryName, String path, boolean isGroup); + + public abstract Integer getRawInfoInteger(String world, String entryName, String path, boolean isGroup); + + public abstract Double getRawInfoDouble(String world, String entryName, String path, boolean isGroup); + + public abstract Boolean getRawInfoBoolean(String world, String entryName, String path, boolean isGroup); + + public abstract String getInfoString(String world, String entryName, String path, boolean isGroup); + + public abstract String getInfoString(String world, String entryName, String path, boolean isGroup, Comparator<String> comparator); + + public abstract Integer getInfoInteger(String world, String entryName, String path, boolean isGroup); + + public abstract Integer getInfoInteger(String world, String entryName, String path, boolean isGroup, Comparator<Integer> comparator); + + public abstract Double getInfoDouble(String world, String entryName, String path, boolean isGroup); + + public abstract Double getInfoDouble(String world, String entryName, String path, boolean isGroup, Comparator<Double> comparator); + + public abstract Boolean getInfoBoolean(String world, String entryName, String path, boolean isGroup); + + public abstract Boolean getInfoBoolean(String world, String entryName, String path, boolean isGroup, Comparator<Boolean> comparator); + + public abstract void addUserInfo(String world, String name, String path, Object data); + + public abstract void removeUserInfo(String world, String name, String path); + + public abstract void addGroupInfo(String world, String name, String path, Object data); + + public abstract void removeGroupInfo(String world, String name, String path); + + //Legacy methods + @Deprecated + public abstract String getGroupPermissionString(String world, String group, String path); + + @Deprecated + public abstract int getGroupPermissionInteger(String world, String group, String path); + + @Deprecated + public abstract boolean getGroupPermissionBoolean(String world, String group, String path); + + @Deprecated + public abstract double getGroupPermissionDouble(String world, String group, String path); + + @Deprecated + public abstract String getUserPermissionString(String world, String group, String path); + + @Deprecated + public abstract int getUserPermissionInteger(String world, String group, String path); + + @Deprecated + public abstract boolean getUserPermissionBoolean(String world, String group, String path); + + @Deprecated + public abstract double getUserPermissionDouble(String world, String group, String path); + + @Deprecated + public abstract String getPermissionString(String world, String group, String path); + + @Deprecated + public abstract int getPermissionInteger(String world, String group, String path); + + @Deprecated + public abstract boolean getPermissionBoolean(String world, String group, String path); + + @Deprecated + public abstract double getPermissionDouble(String world, String group, String path); + + @Deprecated + public abstract String getGroup(String world, String group); + + @Deprecated + public abstract String getGroupPrefix(String world, String group); + + @Deprecated + public abstract String getGroupSuffix(String world, String group); + + @Deprecated + public abstract boolean canGroupBuild(String world, String group); + //Cache methods are no longer available // @Deprecated // public void setCache(String world, Map<String, Boolean> Cache) { // } @@ -454,5 +532,4 @@ public abstract class PermissionHandler { // @Deprecated // public void clearAllCache(){ // } - }
\ No newline at end of file diff --git a/EssentialsGroupBridge/src/com/nijiko/permissions/User.java b/EssentialsGroupBridge/src/com/nijiko/permissions/User.java index 9e93d850a..3bdea431f 100644 --- a/EssentialsGroupBridge/src/com/nijiko/permissions/User.java +++ b/EssentialsGroupBridge/src/com/nijiko/permissions/User.java @@ -1,5 +1,6 @@ package com.nijiko.permissions; -public class User extends Entry { - + +public class User extends Entry +{ } |