Improves and fixes JavaDocs for Economy, IdentityEconomy and Permission

This commit is contained in:
lbenav8095 2023-04-02 03:45:25 -06:00
parent b3bbcddff4
commit 1496c69fa0
3 changed files with 334 additions and 212 deletions

View File

@ -16,10 +16,10 @@
package net.milkbowl.vault.economy;
import java.util.List;
import org.bukkit.OfflinePlayer;
import java.util.List;
/**
* The main economy API
*
@ -28,18 +28,21 @@ public interface Economy {
/**
* Checks if economy method is enabled.
*
* @return Success or Failure
*/
public boolean isEnabled();
/**
* Gets name of economy method
*
* @return Name of Economy Method
*/
public String getName();
/**
* Returns true if the given implementation supports banks.
*
* @return true if the implementation supports banks
*/
public boolean hasBankSupport();
@ -48,6 +51,7 @@ public interface Economy {
* Some economy plugins round off after a certain number of digits.
* This function returns the number of digits the plugin keeps
* or -1 if no rounding occurs.
*
* @return number of digits after the decimal point kept
*/
public int fractionalDigits();
@ -79,8 +83,9 @@ public interface Economy {
public String currencyNameSingular();
/**
*
* @deprecated As of VaultAPI 1.4 use {@link #hasAccount(OfflinePlayer)} or {@link #hasAccount(UUID)} instead.
* @param playerName Name of the player.
* @return True if specified player name has an account, otherwise false.
* @deprecated As of VaultAPI 1.4 use {@link #hasAccount(OfflinePlayer)}
*/
@Deprecated
public boolean hasAccount(String playerName);
@ -96,6 +101,10 @@ public interface Economy {
public boolean hasAccount(OfflinePlayer player);
/**
* @param playerName Name of the player.
* @param worldName Name of the world.
* @return True if specified player name has an account in specific world,
* otherwise false.
* @deprecated As of VaultAPI 1.4 use {@link #hasAccount(OfflinePlayer, String)} instead.
*/
@Deprecated
@ -106,13 +115,15 @@ public interface Economy {
* This will always return true if the player has joined the server at least once
* as all major economy plugins auto-generate a player account when the player joins the server
*
* @param player to check in the world
* @param player to check in the world
* @param worldName world-specific account
* @return if the player has an account
*/
public boolean hasAccount(OfflinePlayer player, String worldName);
/**
* @param playerName Name of the player.
* @return Amount currently held in players account
* @deprecated As of VaultAPI 1.4 use {@link #getBalance(OfflinePlayer)} instead.
*/
@Deprecated
@ -127,6 +138,9 @@ public interface Economy {
public double getBalance(OfflinePlayer player);
/**
* @param playerName Name of the player.
* @param world Name of the world.
* @return Amount/balance currently held in players account
* @deprecated As of VaultAPI 1.4 use {@link #getBalance(OfflinePlayer, String)} instead.
*/
@Deprecated
@ -135,13 +149,17 @@ public interface Economy {
/**
* Gets balance of a player on the specified world.
* IMPLEMENTATION SPECIFIC - if an economy plugin does not support this the global balance will be returned.
*
* @param player to check
* @param world name of the world
* @param world name of the world
* @return Amount currently held in players account
*/
public double getBalance(OfflinePlayer player, String world);
/**
* @param playerName Name of the player.
* @param amount Amount to set balance to.
* @return true if the transaction was successful, false otherwise.
* @deprecated As of VaultAPI 1.4 use {@link #has(OfflinePlayer, double)} instead.
*/
@Deprecated
@ -157,6 +175,10 @@ public interface Economy {
public boolean has(OfflinePlayer player, double amount);
/**
* @param playerName Name of the player.
* @param worldName Name of the world.
* @param amount Amount to check for.
* @return True if the player has the amount in the given world, False else wise.
* @deprecated As of VaultAPI 1.4 use @{link {@link #has(OfflinePlayer, String, double)} instead.
*/
@Deprecated
@ -166,14 +188,17 @@ public interface Economy {
* Checks if the player account has the amount in a given world - DO NOT USE NEGATIVE AMOUNTS
* IMPLEMENTATION SPECIFIC - if an economy plugin does not support this the global balance will be returned.
*
* @param player to check
* @param player to check
* @param worldName to check with
* @param amount to check for
* @param amount to check for
* @return True if <b>player</b> has <b>amount</b> in the given <b>world</b>, False else wise
*/
public boolean has(OfflinePlayer player, String worldName, double amount);
/**
* @param playerName Name of the player
* @param amount Amount to withdraw
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {@link #withdrawPlayer(OfflinePlayer, double)} instead.
*/
@Deprecated
@ -189,6 +214,10 @@ public interface Economy {
public EconomyResponse withdrawPlayer(OfflinePlayer player, double amount);
/**
* @param playerName Name of the player.
* @param worldName Name of the world.
* @param amount Amount to withdraw
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {@link #withdrawPlayer(OfflinePlayer, String, double)} instead.
*/
@Deprecated
@ -197,14 +226,18 @@ public interface Economy {
/**
* Withdraw an amount from a player on a given world - DO NOT USE NEGATIVE AMOUNTS
* IMPLEMENTATION SPECIFIC - if an economy plugin does not support this the global balance will be returned.
* @param player to withdraw from
*
* @param player to withdraw from
* @param worldName - name of the world
* @param amount Amount to withdraw
* @param amount Amount to withdraw
* @return Detailed response of transaction
*/
public EconomyResponse withdrawPlayer(OfflinePlayer player, String worldName, double amount);
/**
* @param playerName Name of the player.
* @param amount Amount to deposit
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {@link #depositPlayer(OfflinePlayer, double)} instead.
*/
@Deprecated
@ -220,6 +253,10 @@ public interface Economy {
public EconomyResponse depositPlayer(OfflinePlayer player, double amount);
/**
* @param playerName Name of the player.
* @param worldName Name of the world.
* @param amount Amount to deposit
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {@link #depositPlayer(OfflinePlayer, String, double)} instead.
*/
@Deprecated
@ -229,14 +266,17 @@ public interface Economy {
* Deposit an amount to a player on a given world - DO NOT USE NEGATIVE AMOUNTS
* IMPLEMENTATION SPECIFIC - if an economy plugin does not support this the global balance will be returned.
*
* @param player to deposit to
* @param player to deposit to
* @param worldName name of the world
* @param amount Amount to deposit
* @param amount Amount to deposit
* @return Detailed response of transaction
*/
public EconomyResponse depositPlayer(OfflinePlayer player, String worldName, double amount);
/**
* @param name of the account
* @param player to check
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {{@link #createBank(String, OfflinePlayer)} instead.
*/
@Deprecated
@ -244,14 +284,16 @@ public interface Economy {
/**
* Creates a bank account with the specified name and the player as the owner
* @param name of account
*
* @param name of account
* @param player the account should be linked to
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse createBank(String name, OfflinePlayer player);
/**
* Deletes a bank account with the specified name.
*
* @param name of the back to delete
* @return if the operation completed successfully
*/
@ -259,40 +301,44 @@ public interface Economy {
/**
* Returns the amount the bank has
*
* @param name of the account
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse bankBalance(String name);
/**
* Returns true or false whether the bank has the amount specified - DO NOT USE NEGATIVE AMOUNTS
*
* @param name of the account
* @param name of the account
* @param amount to check for
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse bankHas(String name, double amount);
/**
* Withdraw an amount from a bank account - DO NOT USE NEGATIVE AMOUNTS
*
* @param name of the account
* @param name of the account
* @param amount to withdraw
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse bankWithdraw(String name, double amount);
/**
* Deposit an amount into a bank account - DO NOT USE NEGATIVE AMOUNTS
*
* @param name of the account
* @param name of the account
* @param amount to deposit
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse bankDeposit(String name, double amount);
/**
* @deprecated As of VaultAPI 1.4 use {@link #isBankOwner(String, OfflinePlayer)} or {@link #isBankOwner(String, UUID)} instead.
* @param name of the account
* @param playerName to check for ownership
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {@link #isBankOwner(String, OfflinePlayer)} instead.
*/
@Deprecated
public EconomyResponse isBankOwner(String name, String playerName);
@ -300,13 +346,16 @@ public interface Economy {
/**
* Check if a player is the owner of a bank account
*
* @param name of the account
* @param name of the account
* @param player to check for ownership
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse isBankOwner(String name, OfflinePlayer player);
/**
* @param name of the account
* @param playerName to check for membership
* @return Detailed response of transaction
* @deprecated As of VaultAPI 1.4 use {{@link #isBankMember(String, OfflinePlayer)} instead.
*/
@Deprecated
@ -315,32 +364,39 @@ public interface Economy {
/**
* Check if the player is a member of the bank account
*
* @param name of the account
* @param name of the account
* @param player to check membership
* @return EconomyResponse Object
* @return Detailed response of transaction
*/
public EconomyResponse isBankMember(String name, OfflinePlayer player);
/**
* Gets the list of banks
*
* @return the List of Banks
*/
public List<String> getBanks();
/**
* @deprecated As of VaultAPI 1.4 use {@link #createPlayerAccount(OfflinePlayer)} or {@link #createPlayerAccount(UUID)} instead.
* @param playerName Name of the player
* @return if the account creation was successful
* @deprecated As of VaultAPI 1.4 use {@link #createPlayerAccount(OfflinePlayer)} instead.
*/
@Deprecated
public boolean createPlayerAccount(String playerName);
/**
* Attempts to create a player account for the given player
*
* @param player OfflinePlayer
* @return if the account creation was successful
*/
public boolean createPlayerAccount(OfflinePlayer player);
/**
* @param playerName Name of the player
* @param worldName Name of the world
* @return if the account creation was successful
* @deprecated As of VaultAPI 1.4 use {{@link #createPlayerAccount(OfflinePlayer, String)} instead.
*/
@Deprecated
@ -349,7 +405,8 @@ public interface Economy {
/**
* Attempts to create a player account for the given player on the specified world
* IMPLEMENTATION SPECIFIC - if an economy plugin does not support this then false will always be returned.
* @param player OfflinePlayer
*
* @param player OfflinePlayer
* @param worldName String name of the world
* @return if the account creation was successful
*/

View File

@ -32,13 +32,14 @@ import java.util.UUID;
* <p>
* In order to register/provide it, you should use {@link IdentityEconomyWrapper#registerProviders()}
*/
public interface IdentityEconomy extends Economy{
public interface IdentityEconomy extends Economy {
/**
* Used to determine if IdentityEconomy was built through
* the EconomyWrapper as a LegacyEconomy.
* If false, method {@link #getAllRecords()} will not be work.
* This was made in order to support plugins which use older versions of VaultAPI/Vault.
* You can also use it / override it to disable previous mentioned methods!
*
* @return true if operation is supported
*/
public boolean supportsAllRecordsOperation();
@ -49,6 +50,7 @@ public interface IdentityEconomy extends Economy{
* If false, the method {@link #getAllOnline()} (UUID)} will not be work.
* This was made in order to support plugins which use older versions of VaultAPI/Vault.
* You can also use it / override it to disable previous mentioned methods!
*
* @return true if operation is supported
*/
public boolean supportsAllOnlineOperation();
@ -60,6 +62,7 @@ public interface IdentityEconomy extends Economy{
* are online/connected to the server in real time.
* If true, you should expect to call these operations
* asynchronously.
*
* @return true if operation is supported
*/
public boolean supportsOfflineOperations();
@ -69,6 +72,7 @@ public interface IdentityEconomy extends Economy{
* the EconomyWrapper as a LegacyEconomy.
* If false, you should expect UnsupportedOperationException
* being thrown when calling these methods.
*
* @return true if operation is supported
*/
public boolean supportsUUIDOperations();
@ -105,7 +109,7 @@ public interface IdentityEconomy extends Economy{
* Needs IdentityEconomy#hasUUIDSupport() to be true.
*
* @return a {@link Map} composed of the accounts keyed by their UUID, along
* with their associated last-known-name.
* with their associated last-known-name.
*/
public Map<UUID, String> getAllRecords();
@ -114,6 +118,7 @@ public interface IdentityEconomy extends Economy{
* online/connected to the server.
* This is used for Vault's economy converter and should
* Needs IdentityEconomy#hasUUIDSupport() to be true.
*
* @return a {@link Collection} of all UUIDs which have accounts in the plugin
*/
public Collection<UUID> getAllOnline();
@ -123,6 +128,7 @@ public interface IdentityEconomy extends Economy{
* messages to be more human-readable than UUIDs alone can provide.
*
* @param uuid UUID to look up.
* @return the last known name of the account associated with the given UUID.
*/
public String getAccountName(UUID uuid);
@ -145,11 +151,11 @@ public interface IdentityEconomy extends Economy{
/**
* A method which changes the name associated with the given UUID in the
* Map<UUID, String> received from {@link #getAllRecords()}
* Map&lt;UUID, String&gt; received from {@link #getAllRecords()}
*
* @param uuid which is having a name change.
* @param name name that will be associated with the UUID in the
* Map<UUID, String> map.
* Map&lt;UUID, String&gt; map.
* @return true if the name change is successful.
*/
public boolean renameAccount(UUID uuid, String name);
@ -191,7 +197,7 @@ public interface IdentityEconomy extends Economy{
* @param worldName to check with
* @param amount to check for
* @return True if <b>UUID</b> has <b>amount</b> in the given <b>world</b>,
* False else wise
* False else wise
*/
public boolean has(UUID uuid, String worldName, double amount);

View File

@ -15,8 +15,6 @@
*/
package net.milkbowl.vault.permission;
import java.util.logging.Logger;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
@ -25,34 +23,42 @@ import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import java.util.logging.Logger;
/**
* The main Permission API - allows for group and player based permission tests
*
*/
public abstract class Permission {
protected static final Logger log = Logger.getLogger("Minecraft");
protected static final Logger log = Logger.getLogger("Minecraft");
protected Plugin plugin = null;
/**
* Gets name of permission method
*
* @return Name of Permission Method
*/
abstract public String getName();
/**
* Checks if permission method is enabled.
*
* @return Success or Failure
*/
abstract public boolean isEnabled();
/**
* Returns if the permission system is or attempts to be compatible with super-perms.
*
* @return True if this permission implementation works with super-perms
*/
abstract public boolean hasSuperPermsCompat();
/**
* @param world World name
* @param player player name
* @param permission permission node
* @return true if player has permission node
* @deprecated As of VaultAPI 1.4 use {@link #playerHas(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -64,6 +70,10 @@ public abstract class Permission {
}
/**
* @param world World object
* @param player player name
* @param permission permission node
* @return true if player has permission node
* @deprecated As of VaultAPI 1.4 use {@link #playerHas(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -78,9 +88,10 @@ public abstract class Permission {
* Checks if a CommandSender has a permission node.
* This will return the result of bukkits, generic .hasPermission() method and is identical in all cases.
* This method will explicitly fail if the registered permission system does not register permissions in bukkit.
*
* <p>
* For easy checking of a commandsender
* @param sender to check permissions on
*
* @param sender to check permissions on
* @param permission to check for
* @return true if the sender has the permission
*/
@ -90,7 +101,8 @@ public abstract class Permission {
/**
* Checks if player has a permission node. (Short for playerHas(...)
* @param player Player Object
*
* @param player Player Object
* @param permission Permission node
* @return Success or Failure
*/
@ -99,12 +111,20 @@ public abstract class Permission {
}
/**
* @param world world name
* @param player player name
* @param permission permission node
* @return true if player has permission, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerHas(String, OfflinePlayer, String)} instead.
*/
@Deprecated
abstract public boolean playerHas(String world, String player, String permission);
/**
* @param world World object
* @param player player name
* @param permission permission node
* @return true if player has permission, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerHas(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -120,15 +140,15 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world String world name
* @param player to check
* @param world String world name
* @param player to check
* @param permission Permission node
* @return Success or Failure
*/
public boolean playerHas(String world, OfflinePlayer player, String permission) {
if (world == null) {
return has((String) null, player.getName(), permission);
}
if (world == null) {
return has((String) null, player.getName(), permission);
}
return has(world, player.getName(), permission);
}
@ -137,7 +157,7 @@ public abstract class Permission {
* Defaults to world-specific permission check if the permission system supports it.
* See {@link #playerHas(String, OfflinePlayer, String)} for explicit global or world checks.
*
* @param player Player Object
* @param player Player Object
* @param permission Permission node
* @return Success or Failure
*/
@ -146,20 +166,23 @@ public abstract class Permission {
}
/**
* @param world World name
* @param player Player name
* @param permission Permission node
* @return Success or Failure
* @deprecated As of VaultAPI 1.4 use {@link #playerAdd(String, OfflinePlayer, String)} instead.
* Add permission to a player.
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World name
* @param player Player name
* @param permission Permission node
* @return Success or Failure
*/
@Deprecated
abstract public boolean playerAdd(String world, String player, String permission);
/**
* @param world World Object
* @param player Player name
* @param permission Permission node
* @return true if successful, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerAdd(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -175,8 +198,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world String world name
* @param player to add to
* @param world String world name
* @param player to add to
* @param permission Permission node
* @return Success or Failure
*/
@ -192,7 +215,7 @@ public abstract class Permission {
* This is a world-specific operation, if you want to add global permission you must explicitly use NULL for the world.
* See {@link #playerAdd(String, OfflinePlayer, String)} for global permission use.
*
* @param player Player Object
* @param player Player Object
* @param permission Permission node
* @return Success or Failure
*/
@ -205,92 +228,96 @@ public abstract class Permission {
* This implementation can be used by any subclass which implements a "pure" superperms plugin, i.e.
* one that only needs the built-in Bukkit API to add transient permissions to a player.
*
* @param player to add to
* @param player to add to
* @param permission Permission node
* @return Success or Failure
*/
public boolean playerAddTransient(OfflinePlayer player, String permission) throws UnsupportedOperationException {
if (player.isOnline()) {
return playerAddTransient((Player) player, permission);
}
throw new UnsupportedOperationException(getName() + " does not support offline player transient permissions!");
}
if (player.isOnline()) {
return playerAddTransient((Player) player, permission);
}
throw new UnsupportedOperationException(getName() + " does not support offline player transient permissions!");
}
/**
* Add transient permission to a player.
* This operation adds a permission onto the player object in bukkit via Bukkit's permission interface.
*
* @param player Player Object
* @param player Player Object
* @param permission Permission node
* @return Success or Failure
*/
public boolean playerAddTransient(Player player, String permission) {
for (PermissionAttachmentInfo paInfo : player.getEffectivePermissions()) {
if (paInfo.getAttachment() != null && paInfo.getAttachment().getPlugin().equals(plugin)) {
paInfo.getAttachment().setPermission(permission, true);
return true;
}
}
for (PermissionAttachmentInfo paInfo : player.getEffectivePermissions()) {
if (paInfo.getAttachment() != null && paInfo.getAttachment().getPlugin().equals(plugin)) {
paInfo.getAttachment().setPermission(permission, true);
return true;
}
}
PermissionAttachment attach = player.addAttachment(plugin);
attach.setPermission(permission, true);
PermissionAttachment attach = player.addAttachment(plugin);
attach.setPermission(permission, true);
return true;
return true;
}
/**
* Adds a world specific transient permission to the player, may only work with some permission managers.
* Defaults to GLOBAL permissions for any permission system that does not support world-specific transient permissions!
*
* @param worldName to check on
* @param player to add to
* @param worldName to check on
* @param player to add to
* @param permission to test
* @return Success or Failure
*/
public boolean playerAddTransient(String worldName, OfflinePlayer player, String permission) {
return playerAddTransient(player, permission);
return playerAddTransient(player, permission);
}
/**
* Adds a world specific transient permission to the player, may only work with some permission managers.
* Defaults to GLOBAL permissions for any permission system that does not support world-specific transient permissions!
*
* @param worldName to check on
* @param player to check
* @param worldName to check on
* @param player to check
* @param permission to check for
* @return Success or Failure
*/
public boolean playerAddTransient(String worldName, Player player, String permission) {
return playerAddTransient(player, permission);
return playerAddTransient(player, permission);
}
/**
* Removes a world specific transient permission from the player, may only work with some permission managers.
* Defaults to GLOBAL permissions for any permission system that does not support world-specific transient permissions!
*
* @param worldName to remove for
* @param player to remove for
* @param worldName to remove for
* @param player to remove for
* @param permission to remove
* @return Success or Failure
*/
public boolean playerRemoveTransient(String worldName, OfflinePlayer player, String permission) {
return playerRemoveTransient(player, permission);
return playerRemoveTransient(player, permission);
}
/**
* Removes a world specific transient permission from the player, may only work with some permission managers.
* Defaults to GLOBAL permissions for any permission system that does not support world-specific transient permissions!
*
* @param worldName to check on
* @param player to check
* @param worldName to check on
* @param player to check
* @param permission to check for
* @return Success or Failure
*/
public boolean playerRemoveTransient(String worldName, Player player, String permission) {
return playerRemoveTransient((OfflinePlayer) player, permission);
return playerRemoveTransient((OfflinePlayer) player, permission);
}
/**
* @param world World name
* @param player player name
* @param permission Permission node
* @return true if successful, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerRemove(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -301,8 +328,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World name
* @param player OfflinePlayer
* @param world World name
* @param player OfflinePlayer
* @param permission Permission node
* @return Success or Failure
*/
@ -318,8 +345,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World name
* @param player Player name
* @param world World name
* @param player Player name
* @param permission Permission node
* @return Success or Failure
*/
@ -335,7 +362,7 @@ public abstract class Permission {
* Remove permission from a player.
* Will attempt to remove permission from the player on the player's current world. This is NOT a global operation.
*
* @param player Player Object
* @param player Player Object
* @param permission Permission node
* @return Success or Failure
*/
@ -350,33 +377,33 @@ public abstract class Permission {
* one that only needs the built-in Bukkit API to remove transient permissions from a player. Any subclass
* implementing a plugin which provides its own API for this needs to override this method.
*
* @param player OfflinePlayer
* @param player OfflinePlayer
* @param permission Permission node
* @return Success or Failure
*/
public boolean playerRemoveTransient(OfflinePlayer player, String permission) {
if (player.isOnline()) {
return playerRemoveTransient((Player) player, permission);
} else {
return false;
}
}
public boolean playerRemoveTransient(OfflinePlayer player, String permission) {
if (player.isOnline()) {
return playerRemoveTransient((Player) player, permission);
} else {
return false;
}
}
/**
* Remove transient permission from a player.
*
* @param player Player Object
* @param player Player Object
* @param permission Permission node
* @return Success or Failure
*/
public boolean playerRemoveTransient(Player player, String permission) {
for (PermissionAttachmentInfo paInfo : player.getEffectivePermissions()) {
if (paInfo.getAttachment() != null && paInfo.getAttachment().getPlugin().equals(plugin)) {
paInfo.getAttachment().unsetPermission(permission);
return true;
}
}
return false;
for (PermissionAttachmentInfo paInfo : player.getEffectivePermissions()) {
if (paInfo.getAttachment() != null && paInfo.getAttachment().getPlugin().equals(plugin)) {
paInfo.getAttachment().unsetPermission(permission);
return true;
}
}
return false;
}
/**
@ -384,8 +411,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World name
* @param group Group name
* @param world World name
* @param group Group name
* @param permission Permission node
* @return Success or Failure
*/
@ -396,8 +423,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World Object
* @param group Group name
* @param world World Object
* @param group Group name
* @param permission Permission node
* @return Success or Failure
*/
@ -413,8 +440,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World name
* @param group Group name
* @param world World name
* @param group Group name
* @param permission Permission node
* @return Success or Failure
*/
@ -425,8 +452,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World Object
* @param group Group name
* @param world World Object
* @param group Group name
* @param permission Permission node
* @return Success or Failure
*/
@ -442,8 +469,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World name
* @param group Group name
* @param world World name
* @param group Group name
* @param permission Permission node
* @return Success or Failure
*/
@ -454,8 +481,8 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World Object
* @param group Group name
* @param world World Object
* @param group Group name
* @param permission Permission node
* @return Success or Failure
*/
@ -467,12 +494,20 @@ public abstract class Permission {
}
/**
* @param world World name
* @param player player name
* @param group group name
* @return true if player is in group, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerInGroup(String, OfflinePlayer, String)} instead.
*/
@Deprecated
abstract public boolean playerInGroup(String world, String player, String group);
/**
* @param world World object
* @param player player name
* @param group group name
* @return true if player is in group, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerInGroup(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -488,9 +523,9 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World Object
* @param world World Object
* @param player to check
* @param group Group name
* @param group Group name
* @return Success or Failure
*/
public boolean playerInGroup(String world, OfflinePlayer player, String group) {
@ -506,7 +541,7 @@ public abstract class Permission {
* This may result in odd return behaviour depending on what permission system has been registered.
*
* @param player Player Object
* @param group Group name
* @param group Group name
* @return Success or Failure
*/
public boolean playerInGroup(Player player, String group) {
@ -514,12 +549,20 @@ public abstract class Permission {
}
/**
* @param world World name
* @param player player name
* @param group group name
* @return true if successful, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerAddGroup(String, OfflinePlayer, String)} instead.
*/
@Deprecated
abstract public boolean playerAddGroup(String world, String player, String group);
/**
* @param world World Object
* @param player player name
* @param group group name
* @return true if successful, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerAddGroup(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -535,9 +578,9 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world String world name
* @param world String world name
* @param player to add
* @param group Group name
* @param group Group name
* @return Success or Failure
*/
public boolean playerAddGroup(String world, OfflinePlayer player, String group) {
@ -553,7 +596,7 @@ public abstract class Permission {
* being used on the server does not support world-specific groups, or if the group being added to is a global group.
*
* @param player Player Object
* @param group Group name
* @param group Group name
* @return Success or Failure
*/
public boolean playerAddGroup(Player player, String group) {
@ -561,12 +604,20 @@ public abstract class Permission {
}
/**
* @param world world name
* @param player player name
* @param group group name
* @return true if successful, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerRemoveGroup(String, OfflinePlayer, String)} instead.
*/
@Deprecated
abstract public boolean playerRemoveGroup(String world, String player, String group);
/**
* @param world World Object
* @param player name
* @param group Group name
* @return true if successful, false otherwise
* @deprecated As of VaultAPI 1.4 use {@link #playerRemoveGroup(String, OfflinePlayer, String)} instead.
*/
@Deprecated
@ -582,9 +633,9 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world World Object
* @param world World Object
* @param player to remove
* @param group Group name
* @param group Group name
* @return Success or Failure
*/
public boolean playerRemoveGroup(String world, OfflinePlayer player, String group) {
@ -600,7 +651,7 @@ public abstract class Permission {
* being used on the server does not support world-specific groups, or if the group being added to is a global group.
*
* @param player Player Object
* @param group Group name
* @param group Group name
* @return Success or Failure
*/
public boolean playerRemoveGroup(Player player, String group) {
@ -608,12 +659,18 @@ public abstract class Permission {
}
/**
* @param world world name
* @param player player name
* @return Array of groups
* @deprecated As of VaultAPI 1.4 use {@link #getPlayerGroups(String, OfflinePlayer)} instead.
*/
@Deprecated
abstract public String[] getPlayerGroups(String world, String player);
/**
* @param world World Object
* @param player player name
* @return Array of groups
* @deprecated As of VaultAPI 1.4 use {@link #getPlayerGroups(String, OfflinePlayer)} instead.
*/
@Deprecated
@ -629,12 +686,12 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world String world name
* @param world String world name
* @param player OfflinePlayer
* @return Array of groups
*/
public String[] getPlayerGroups(String world, OfflinePlayer player) {
return getPlayerGroups(world, player.getName());
return getPlayerGroups(world, player.getName());
}
/**
@ -671,7 +728,7 @@ public abstract class Permission {
* Supports NULL value for World if the permission system registered supports global permissions.
* But May return odd values if the servers registered permission system does not have a global permission store.
*
* @param world String world name
* @param world String world name
* @param player to get from
* @return Players primary group
*/
@ -693,12 +750,14 @@ public abstract class Permission {
/**
* Returns a list of all known groups
*
* @return an Array of String of all groups
*/
abstract public String[] getGroups();
/**
* Returns true if the given implementation supports groups.
*
* @return true if the implementation supports groups
*/
abstract public boolean hasGroupSupport();