Class Permission


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

      • getName

        @NotNull
        public String getName()
        Returns the unique fully qualified name of this Permission
        Returns:
        Fully qualified name
      • 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