Class Permission

java.lang.Object
org.bukkit.permissions.Permission

public class Permission
extends java.lang.Object
Represents a unique permission that may be attached to a Permissible
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static PermissionDefault DEFAULT_PERMISSION  
  • Constructor Summary

    Constructors 
    Constructor Description
    Permission​(java.lang.String name)  
    Permission​(java.lang.String name, java.lang.String description)  
    Permission​(java.lang.String name, java.lang.String description, java.util.Map<java.lang.String,​java.lang.Boolean> children)  
    Permission​(java.lang.String name, java.lang.String description, PermissionDefault defaultValue)  
    Permission​(java.lang.String name, java.lang.String description, PermissionDefault defaultValue, java.util.Map<java.lang.String,​java.lang.Boolean> children)  
    Permission​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.Boolean> children)  
    Permission​(java.lang.String name, PermissionDefault defaultValue)  
    Permission​(java.lang.String name, PermissionDefault defaultValue, java.util.Map<java.lang.String,​java.lang.Boolean> children)  
  • Method Summary

    Modifier and Type Method Description
    Permission addParent​(java.lang.String name, boolean value)
    Adds this permission to the specified parent permission.
    void addParent​(Permission perm, boolean value)
    Adds this permission to the specified parent permission.
    java.util.Map<java.lang.String,​java.lang.Boolean> getChildren()
    Gets the children of this permission.
    PermissionDefault getDefault()
    Gets the default value of this permission.
    java.lang.String getDescription()
    Gets a brief description of this permission, if set
    java.lang.String getName()
    Returns the unique fully qualified name of this Permission
    java.util.Set<Permissible> getPermissibles()
    Gets a set containing every Permissible that has this permission.
    static Permission loadPermission​(java.lang.String name, java.util.Map<?,​?> data, PermissionDefault def, java.util.List<Permission> output)
    Loads a Permission from a map of data, usually used from retrieval from a yaml file.
    static Permission loadPermission​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.Object> data)
    Loads a Permission from a map of data, usually used from retrieval from a yaml file.
    static java.util.List<Permission> loadPermissions​(java.util.Map<?,​?> data, java.lang.String error, PermissionDefault def)
    Loads a list of Permissions from a map of data, usually used from retrieval from a yaml file.
    void recalculatePermissibles()
    Recalculates all Permissibles that contain this permission.
    void setDefault​(PermissionDefault value)
    Sets the default value of this permission.
    void setDescription​(java.lang.String value)
    Sets the description of this permission.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Permission

      public Permission​(java.lang.String name)
    • Permission

      public Permission​(java.lang.String name, java.lang.String description)
    • Permission

      public Permission​(java.lang.String name, PermissionDefault defaultValue)
    • Permission

      public Permission​(java.lang.String name, java.lang.String description, PermissionDefault defaultValue)
    • Permission

      public Permission​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.Boolean> children)
    • Permission

      public Permission​(java.lang.String name, java.lang.String description, java.util.Map<java.lang.String,​java.lang.Boolean> children)
    • Permission

      public Permission​(java.lang.String name, PermissionDefault defaultValue, java.util.Map<java.lang.String,​java.lang.Boolean> children)
    • Permission

      public Permission​(java.lang.String name, java.lang.String description, PermissionDefault defaultValue, java.util.Map<java.lang.String,​java.lang.Boolean> children)
  • Method Details

    • getName

      public java.lang.String getName()
      Returns the unique fully qualified name of this Permission
      Returns:
      Fully qualified name
    • getChildren

      public java.util.Map<java.lang.String,​java.lang.Boolean> getChildren()
      Gets the children of this permission.

      If you change this map in any form, you must call recalculatePermissibles() to recalculate all Permissibles

      Returns:
      Permission children
    • getDefault

      public PermissionDefault getDefault()
      Gets the default value of this permission.
      Returns:
      Default value of this permission.
    • setDefault

      public void setDefault​(PermissionDefault value)
      Sets the default value of this permission.

      This will not be saved to disk, and is a temporary operation until the server reloads permissions. Changing this default will cause all Permissibles that contain this permission to recalculate their permissions

      Parameters:
      value - The new default to set
    • getDescription

      public java.lang.String getDescription()
      Gets a brief description of this permission, if set
      Returns:
      Brief description of this permission
    • setDescription

      public void setDescription​(java.lang.String value)
      Sets the description of this permission.

      This will not be saved to disk, and is a temporary operation until the server reloads permissions.

      Parameters:
      value - The new description to set
    • getPermissibles

      public java.util.Set<Permissible> getPermissibles()
      Gets a set containing every Permissible that has this permission.

      This set cannot be modified.

      Returns:
      Set containing permissibles with this permission
    • recalculatePermissibles

      public void recalculatePermissibles()
      Recalculates all Permissibles that contain this permission.

      This should be called after modifying the children, and is automatically called after modifying the default value

    • addParent

      public Permission addParent​(java.lang.String name, boolean value)
      Adds this permission to the specified parent permission.

      If the parent permission does not exist, it will be created and registered.

      Parameters:
      name - Name of the parent permission
      value - The value to set this permission to
      Returns:
      Parent permission it created or loaded
    • addParent

      public void addParent​(Permission perm, boolean value)
      Adds this permission to the specified parent permission.
      Parameters:
      perm - Parent permission to register with
      value - The value to set this permission to
    • loadPermissions

      public static java.util.List<Permission> loadPermissions​(java.util.Map<?,​?> data, java.lang.String error, PermissionDefault def)
      Loads a list of Permissions from a map of data, usually used from retrieval from a yaml file.

      The data may contain a list of name:data, where the data contains the following keys:

      • default: Boolean true or false. If not specified, false.
      • children: Map<String, Boolean> of child permissions. If not specified, empty list.
      • description: Short string containing a very small description of this description. If not specified, empty string.
      Parameters:
      data - Map of permissions
      error - An error message to show if a permission is invalid.
      def - Default permission value to use if missing
      Returns:
      Permission object
    • loadPermission

      public static Permission loadPermission​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.Object> data)
      Loads a Permission from a map of data, usually used from retrieval from a yaml file.

      The data may contain the following keys:

      • default: Boolean true or false. If not specified, false.
      • children: Map<String, Boolean> of child permissions. If not specified, empty list.
      • description: Short string containing a very small description of this description. If not specified, empty string.
      Parameters:
      name - Name of the permission
      data - Map of keys
      Returns:
      Permission object
    • loadPermission

      public static Permission loadPermission​(java.lang.String name, java.util.Map<?,​?> data, PermissionDefault def, java.util.List<Permission> output)
      Loads a Permission from a map of data, usually used from retrieval from a yaml file.

      The data may contain the following keys:

      • default: Boolean true or false. If not specified, false.
      • children: Map<String, Boolean> of child permissions. If not specified, empty list.
      • description: Short string containing a very small description of this description. If not specified, empty string.
      Parameters:
      name - Name of the permission
      data - Map of keys
      def - Default permission value to use if not set
      output - A list to append any created child-Permissions to, may be null
      Returns:
      Permission object