Class Permission

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

public class Permission extends Object
Represents a unique permission that may be attached to a Permissible
  • Field Details

  • Constructor Details

  • Method Details

    • getName

      @NotNull public String getName()
      Returns the unique fully qualified name of this Permission
      Returns:
      Fully qualified name
    • getChildren

      @NotNull public Map<String,​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

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

      public void setDefault(@NotNull 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

      @NotNull public String getDescription()
      Gets a brief description of this permission, may be empty
      Returns:
      Brief description of this permission
    • setDescription

      public void setDescription(@Nullable 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

      @NotNull public 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

      @NotNull public Permission addParent(@NotNull 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(@NotNull 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

      @NotNull public static List<Permission> loadPermissions(@NotNull Map<?,​?> data, @NotNull String error, @Nullable 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. May contain "%s" format tag, which will be replaced with the name of invalid permission.
      def - Default permission value to use if missing
      Returns:
      Permission object
    • loadPermission

      @NotNull public static Permission loadPermission(@NotNull String name, @NotNull Map<String,​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

      @NotNull public static Permission loadPermission(@NotNull String name, @NotNull Map<?,​?> data, @Nullable PermissionDefault def, @Nullable 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