Class PermissionAttachment


  • public class PermissionAttachment
    extends Object
    Holds information about a permission attachment on a Permissible object
    • Constructor Detail

      • PermissionAttachment

        public PermissionAttachment​(@NotNull
                                    Plugin plugin,
                                    @NotNull
                                    Permissible permissible)
    • Method Detail

      • getPlugin

        @NotNull
        public Plugin getPlugin()
        Gets the plugin responsible for this attachment
        Returns:
        Plugin responsible for this permission attachment
      • setRemovalCallback

        public void setRemovalCallback​(@Nullable
                                       PermissionRemovedExecutor ex)
        Sets an object to be called for when this attachment is removed from a Permissible. May be null.
        Parameters:
        ex - Object to be called when this is removed
      • getRemovalCallback

        @Nullable
        public PermissionRemovedExecutor getRemovalCallback()
        Gets the class that was previously set to be called when this attachment was removed from a Permissible. May be null.
        Returns:
        Object to be called when this is removed
      • getPermissible

        @NotNull
        public Permissible getPermissible()
        Gets the Permissible that this is attached to
        Returns:
        Permissible containing this attachment
      • getPermissions

        @NotNull
        public Map<String,​Boolean> getPermissions()
        Gets a copy of all set permissions and values contained within this attachment.

        This map may be modified but will not affect the attachment, as it is a copy.

        Returns:
        Copy of all permissions and values expressed by this attachment
      • setPermission

        public void setPermission​(@NotNull
                                  String name,
                                  boolean value)
        Sets a permission to the given value, by its fully qualified name
        Parameters:
        name - Name of the permission
        value - New value of the permission
      • setPermission

        public void setPermission​(@NotNull
                                  Permission perm,
                                  boolean value)
        Sets a permission to the given value
        Parameters:
        perm - Permission to set
        value - New value of the permission
      • unsetPermission

        public void unsetPermission​(@NotNull
                                    String name)
        Removes the specified permission from this attachment.

        If the permission does not exist in this attachment, nothing will happen.

        Parameters:
        name - Name of the permission to remove
      • unsetPermission

        public void unsetPermission​(@NotNull
                                    Permission perm)
        Removes the specified permission from this attachment.

        If the permission does not exist in this attachment, nothing will happen.

        Parameters:
        perm - Permission to remove
      • remove

        public boolean remove()
        Removes this attachment from its registered Permissible
        Returns:
        true if the permissible was removed successfully, false if it did not exist