Interface IPermissionManagement

    • Method Detail

      • getChildPermissionManagement

        @Nullable
        @Nullable IPermissionManagement getChildPermissionManagement()
        Get the child permission management or null if there is no child permission management.
        Returns:
        the child permission management or null if there is no child permission management.
      • canBeOverwritten

        boolean canBeOverwritten()
        Gets if this permission management can be overridden.
        Returns:
        if this permission management can be overridden.
      • getUser

        @Deprecated
        @ScheduledForRemoval(inVersion="3.5")
        java.util.List<IPermissionUser> getUser​(java.lang.String name)
        Deprecated.
        use getUsers(String) instead
        Gets all users with the given name.
        Parameters:
        name - the name of the permission users to get.
        Returns:
        all permission users with the given name.
      • getFirstUser

        IPermissionUser getFirstUser​(java.lang.String name)
        Gets the first permission user with the given name.
        Parameters:
        name - the name of the user to get.
        Returns:
        the first permission user or null if no user with this name exists.
      • init

        @Internal
        void init()
        Initializes this permission management.
      • reload

        boolean reload()
        Reloads this permission management
        Returns:
        true if the reload was successful
      • getHighestPermissionGroup

        IPermissionGroup getHighestPermissionGroup​(@NotNull
                                                   @NotNull IPermissionUser permissionUser)
        Gets the highest permission group of the specified user, evaluated by using the group potency.
        Parameters:
        permissionUser - the user
        Returns:
        the highest permission group.
      • getDefaultPermissionGroup

        IPermissionGroup getDefaultPermissionGroup()
        Gets the default permission group.
        Returns:
        the default permission group.
      • testPermissionGroup

        @Deprecated
        @ScheduledForRemoval
        boolean testPermissionGroup​(@Nullable
                                    @Nullable IPermissionGroup permissionGroup)
        Deprecated.
        Removes the timed-out permissions of the given permissionGroup.
        Parameters:
        permissionGroup - the group to check.
        Returns:
        true if at least one permission was removed.
      • testPermissionUser

        boolean testPermissionUser​(@Nullable
                                   @Nullable IPermissionUser permissionUser)
        Removes all timed-out permissions and groups of the given permissionUser.
        Parameters:
        permissionUser - the permission user to check.
        Returns:
        true if at least one permission was removed.
      • testPermissible

        boolean testPermissible​(@Nullable
                                @Nullable IPermissible permissible)
        Removes the timed-out permissions of the given permissible.
        Parameters:
        permissible - the permissible to check.
        Returns:
        true if at least one permission was removed.
      • addUser

        IPermissionUser addUser​(@NotNull
                                @NotNull java.lang.String name,
                                @NotNull
                                @NotNull java.lang.String password,
                                int potency)
        Adds a new permission user if it does not already exists.
        Parameters:
        name - the name of the new user.
        password - the password of the new user.
        potency - the potency of the new user.
        Returns:
        the newly created permission user.
      • addGroup

        IPermissionGroup addGroup​(@NotNull
                                  @NotNull java.lang.String role,
                                  int potency)
        Adds a new permission group if it does not already exists.
        Parameters:
        role - the case-sensitive name of the new group
        potency - the potency of the new group
        Returns:
        the newly created permission group
      • getGroups

        @NotNull
        @NotNull java.util.Collection<IPermissionGroup> getGroups​(@Nullable
                                                                  @Nullable IPermissible permissible)
        Gets the extended groups of the specified group.
        Parameters:
        permissible - the permissible to get the extended groups of.
        Returns:
        the extended groups of the given permissible.
      • getExtendedGroups

        @Deprecated
        @ScheduledForRemoval
        java.util.Collection<IPermissionGroup> getExtendedGroups​(@Nullable
                                                                 @Nullable IPermissionGroup group)
        Deprecated.
        Gets the extended groups of the specified group.
        Parameters:
        group - the group to get the extended groups of.
        Returns:
        the extended groups of the given group.
      • hasPermission

        default boolean hasPermission​(@NotNull
                                      @NotNull IPermissible permissible,
                                      @NotNull
                                      @NotNull java.lang.String permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        permission - the permission to check.
        Returns:
        the check result.
        See Also:
        getPermissionResult(IPermissible, String)
      • hasPermission

        default boolean hasPermission​(@NotNull
                                      @NotNull IPermissible permissible,
                                      @NotNull
                                      @NotNull Permission permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        permission - the permission to check.
        Returns:
        the check result.
        See Also:
        getPermissionResult(IPermissible, Permission)
      • hasPermission

        default boolean hasPermission​(@NotNull
                                      @NotNull IPermissible permissible,
                                      @NotNull
                                      @NotNull java.lang.String group,
                                      @NotNull
                                      @NotNull Permission permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        group - the group to get the permissions on.
        permission - the permission to check.
        Returns:
        the check result.
        See Also:
        getPermissionResult(IPermissible, String, Permission)
      • getPermissionResult

        @NotNull
        @NotNull PermissionCheckResult getPermissionResult​(@NotNull
                                                           @NotNull IPermissible permissible,
                                                           @NotNull
                                                           @NotNull java.lang.String permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        permission - the permission to check.
        Returns:
        the check result. PermissionCheckResult.DENIED indicates that there was no allowing/forbidding permission.
      • getPermissionResult

        @NotNull
        @NotNull PermissionCheckResult getPermissionResult​(@NotNull
                                                           @NotNull IPermissible permissible,
                                                           @NotNull
                                                           @NotNull Permission permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        permission - the permission to check.
        Returns:
        the check result. PermissionCheckResult.DENIED indicates that there was no allowing/forbidding permission.
      • getPermissionResult

        @NotNull
        @NotNull PermissionCheckResult getPermissionResult​(@NotNull
                                                           @NotNull IPermissible permissible,
                                                           @NotNull
                                                           @NotNull java.lang.String group,
                                                           @NotNull
                                                           @NotNull Permission permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        group - the group to get the permissions on.
        permission - the permission to check.
        Returns:
        the check result. PermissionCheckResult.DENIED indicates that there was no allowing/forbidding permission.
      • getPermissionResult

        @NotNull
        @NotNull PermissionCheckResult getPermissionResult​(@NotNull
                                                           @NotNull IPermissible permissible,
                                                           @NotNull
                                                           @NotNull java.lang.Iterable<java.lang.String> groups,
                                                           @NotNull
                                                           @NotNull Permission permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        groups - the groups to get the permissions on.
        permission - the permission to check.
        Returns:
        the check result. PermissionCheckResult.DENIED indicates that there was no allowing/forbidding permission.
      • getPermissionResult

        @NotNull
        @NotNull PermissionCheckResult getPermissionResult​(@NotNull
                                                           @NotNull IPermissible permissible,
                                                           @NotNull
                                                           @NotNull java.lang.String[] groups,
                                                           @NotNull
                                                           @NotNull Permission permission)
        Checks if the given permissible has the given permission.
        Parameters:
        permissible - the permissible to check if the permission is set.
        groups - the groups to get the permissions on.
        permission - the permission to check.
        Returns:
        the check result. PermissionCheckResult.DENIED indicates that there was no allowing/forbidding permission.
      • findHighestPermission

        @Nullable
        @Nullable Permission findHighestPermission​(@NotNull
                                                   @NotNull java.util.Collection<Permission> permissions,
                                                   @NotNull
                                                   @NotNull Permission permission)
        Finds the highest permission (sorted by the potency) in the given permissions array using the given permission potency as the starting point.
        Parameters:
        permissions - the permissions to check through.
        permission - the starting point for the check to run.
        Returns:
        the highest permission in the given permission or null if there is no permission with a higher potency in the given collection
      • getAllPermissions

        @NotNull
        @NotNull java.util.Collection<Permission> getAllPermissions​(@NotNull
                                                                    @NotNull IPermissible permissible)
        Gets all permission of the specified permissible
        Parameters:
        permissible - the permissible to get the permission of.
        Returns:
        all permissions of the permissible
      • getAllPermissions

        @NotNull
        @NotNull java.util.Collection<Permission> getAllPermissions​(@NotNull
                                                                    @NotNull IPermissible permissible,
                                                                    @Nullable
                                                                    @Nullable java.lang.String group)
        Gets all permission of the specified permissible on the given group.
        Parameters:
        permissible - the permissible to get the permission of.
        group - the group to get the permission on or null if no specific group should be used.
        Returns:
        all permissions of the permissible on the specified group if provided
      • addUser

        IPermissionUser addUser​(@NotNull
                                @NotNull IPermissionUser permissionUser)
        Adds a new user to the database.
        Parameters:
        permissionUser - the user to be added
        Returns:
        the new user
      • updateUser

        void updateUser​(@NotNull
                        @NotNull IPermissionUser permissionUser)
        Updates an already existing user in the database.
        Parameters:
        permissionUser - the user to be updated
      • deleteUser

        boolean deleteUser​(@NotNull
                           @NotNull java.lang.String name)
        Deletes all users in the database matching the given name. This method is case-sensitive.
        Parameters:
        name - the name of the users to be deleted
      • deleteUser

        boolean deleteUser​(@NotNull
                           @NotNull IPermissionUser permissionUser)
        Deletes one user with the uniqueId of the given user.
        Parameters:
        permissionUser - the user to be deleted
      • containsUser

        boolean containsUser​(@NotNull
                             @NotNull java.util.UUID uniqueId)
        Checks if a user with the given uniqueId is stored in the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        true if there is a user with that uniqueId, false otherwise
      • containsUser

        boolean containsUser​(@NotNull
                             @NotNull java.lang.String name)
        Checks if at least one user with the given name is stored in the database. This method is case-sensitive.
        Parameters:
        name - the name of the user
        Returns:
        true if there is a user with that name, false otherwise
      • getUser

        @Nullable
        @Nullable IPermissionUser getUser​(@NotNull
                                          @NotNull java.util.UUID uniqueId)
        Gets a user with the given uniqueId out of the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        the IPermissionUser from the database or null if there is no user with that uniqueId stored
      • getOrCreateUser

        @NotNull
        @NotNull IPermissionUser getOrCreateUser​(@NotNull
                                                 @NotNull java.util.UUID uniqueId,
                                                 @NotNull
                                                 @NotNull java.lang.String name)
        Gets a user with the given uniqueId out of the database or creates a new one if the database contains no such entry.
        Parameters:
        uniqueId - the uniqueId of the user
        name - the name of the permission user
        Returns:
        the IPermissionUser from the database or a newly created one.
      • getUsers

        @NotNull
        @NotNull java.util.List<IPermissionUser> getUsers​(@NotNull
                                                          @NotNull java.lang.String name)
        Gets a list of all users with the given name out of the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.
        Parameters:
        name - the name of the users
        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • getUsers

        @NotNull
        @NotNull java.util.Collection<IPermissionUser> getUsers()
        Gets a list of all users stored in the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • setUsers

        void setUsers​(@NotNull
                      @NotNull java.util.Collection<? extends IPermissionUser> users)
        Clears all users stored in the database and inserts the given list.
        Parameters:
        users - the new IPermissionUsers to be stored in the database
      • getUsersByGroup

        java.util.Collection<IPermissionUser> getUsersByGroup​(@NotNull
                                                              @NotNull java.lang.String group)
        Gets a list of all users stored in the database with the given group. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users with that group stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • addGroup

        IPermissionGroup addGroup​(@NotNull
                                  @NotNull IPermissionGroup permissionGroup)
        Adds a new permission group to the list of groups. If a group with that name already exists, it will be deleted and created again.
        Parameters:
        permissionGroup - the IPermissionGroup to be added
        Returns:
        the new group
      • updateGroup

        void updateGroup​(@NotNull
                         @NotNull IPermissionGroup permissionGroup)
        Updates a permission group in the list of groups. If a group with that name doesn't exist, it will be created.
        Parameters:
        permissionGroup - the IPermissionGroup to be updated
      • deleteGroup

        void deleteGroup​(@NotNull
                         @NotNull java.lang.String name)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        name - the case-sensitive name of the group
      • deleteGroup

        void deleteGroup​(@NotNull
                         @NotNull IPermissionGroup permissionGroup)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        permissionGroup - the IPermissionGroup to be deleted
      • containsGroup

        boolean containsGroup​(@NotNull
                              @NotNull java.lang.String group)
        Checks if a specific group exists.
        Parameters:
        group - the case-sensitive name of the group
        Returns:
        true if the group exists, false otherwise
      • getGroup

        @Nullable
        @Nullable IPermissionGroup getGroup​(@NotNull
                                            @NotNull java.lang.String name)
        Gets a specific group by its name.
        Parameters:
        name - the case-sensitive name of the group
        Returns:
        the IPermissionUser if it exists, null otherwise
      • getGroups

        java.util.Collection<IPermissionGroup> getGroups()
        Gets the list of all groups in the Cloud.
        Returns:
        a list of IPermissionGroups registered in the cloud or an empty list if there is no group registered
      • setGroups

        void setGroups​(@Nullable
                       @Nullable java.util.Collection<? extends IPermissionGroup> groups)
        Clears all groups in the Cloud and sets given groups.
        Parameters:
        groups - the new groups
      • modifyGroup

        IPermissionGroup modifyGroup​(@NotNull
                                     @NotNull java.lang.String name,
                                     @NotNull
                                     @NotNull java.util.function.Consumer<IPermissionGroup> modifier)
        Gets the permission group with the given name by using getGroup(String) and, if not null, puts it into the consumer, after that, the group will be updated by using updateGroup(IPermissionGroup).
        Parameters:
        name - the name of the group
        modifier - the Consumer to modify the user
        Returns:
        the modified user
      • modifyUser

        IPermissionUser modifyUser​(@NotNull
                                   @NotNull java.util.UUID uniqueId,
                                   @NotNull
                                   @NotNull java.util.function.Consumer<IPermissionUser> modifier)
        Gets the permission user with the given uniqueId by using getUser(UUID) and, if not null, puts them into the consumer, after that, the user will be updated by using updateUser(IPermissionUser).
        Parameters:
        uniqueId - the uniqueId of the user
        modifier - the Consumer to modify the user
        Returns:
        the modified user
      • modifyUsers

        java.util.List<IPermissionUser> modifyUsers​(@NotNull
                                                    @NotNull java.lang.String name,
                                                    @NotNull
                                                    @NotNull java.util.function.Consumer<IPermissionUser> modifier)
        Gets every user matching the given name by using getUsers(String) and puts them into the consumer, after that, every user will be updated by using updateUser(IPermissionUser).
        Parameters:
        name - the name of the users
        modifier - the Consumer to modify the available users
        Returns:
        a list of all modified users
      • getGroupsAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionGroup>> getGroupsAsync​(@Nullable
                                                                                                                    @Nullable IPermissionUser permissionUser)
        Retrieves every permission group object of the specified permissionUser.
        Parameters:
        permissionUser - the user to get the groups of
        Returns:
        a collection of all group objects the user is in
      • addUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> addUserAsync​(@NotNull
                                                                                           @NotNull IPermissionUser permissionUser)
        Adds a new user to the database.
        Parameters:
        permissionUser - the user to be added
        Returns:
        the created permission user
      • addUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> addUserAsync​(@NotNull
                                                                                           @NotNull java.lang.String name,
                                                                                           @NotNull
                                                                                           @NotNull java.lang.String password,
                                                                                           int potency)
        Adds a new user to the database.
        Parameters:
        name - the name of the new user
        password - the password of the new user
        potency - the potency of the new user
        Returns:
        the created permission user
      • updateUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> updateUserAsync​(@NotNull
                                                                                             @NotNull IPermissionUser permissionUser)
        Updates an already existing user in the database.
        Parameters:
        permissionUser - the user to be updated
        Returns:
        a task completed when the operation was executed
      • deleteUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> deleteUserAsync​(@NotNull
                                                                                                @NotNull java.lang.String name)
        Deletes all users in the database matching the given name. This method is case-sensitive.
        Parameters:
        name - the name of the users to be deleted
        Returns:
        if the operation was successful
      • deleteUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> deleteUserAsync​(@NotNull
                                                                                                @NotNull IPermissionUser permissionUser)
        Deletes one user with the uniqueId of the given user.
        Parameters:
        permissionUser - the user to be deleted
        Returns:
        if the operation was successful
      • containsUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> containsUserAsync​(@NotNull
                                                                                                  @NotNull java.util.UUID uniqueId)
        Checks if a user with the given uniqueId is stored in the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        true if there is a user with that uniqueId, false otherwise
      • containsUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> containsUserAsync​(@NotNull
                                                                                                  @NotNull java.lang.String name)
        Checks if at least one user with the given name is stored in the database. This method is case-sensitive.
        Parameters:
        name - the name of the user
        Returns:
        true if there is a user with that name, false otherwise
      • getUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> getUserAsync​(@NotNull
                                                                                           @NotNull java.util.UUID uniqueId)
        Gets a user with the given uniqueId out of the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        the IPermissionUser from the database or null if there is no user with that uniqueId stored
      • getOrCreateUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> getOrCreateUserAsync​(@NotNull
                                                                                                   @NotNull java.util.UUID uniqueId,
                                                                                                   @NotNull
                                                                                                   @NotNull java.lang.String name)
        Gets a user with the given uniqueId out of the database or creates a new one if the database contains no such entry.
        Parameters:
        uniqueId - the uniqueId of the user
        name - the name of the permission user
        Returns:
        the IPermissionUser from the database or a newly created one.
      • getUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.List<IPermissionUser>> getUsersAsync​(@NotNull
                                                                                                            @NotNull java.lang.String name)
        Gets a list of all users with the given name out of the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.
        Parameters:
        name - the name of the users
        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • getFirstUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> getFirstUserAsync​(java.lang.String name)
        Gets the first user with the specified name.
        Parameters:
        name - the name of the user to get.
        Returns:
        the IPermissionUser from the database or null if there is no user with that name stored
      • getUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionUser>> getUsersAsync()
        Gets a list of all users stored in the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • setUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> setUsersAsync​(@NotNull
                                                                                           @NotNull java.util.Collection<? extends IPermissionUser> users)
        Clears all users stored in the database and inserts the given list.
        Parameters:
        users - the new IPermissionUsers to be stored in the database
        Returns:
        a task completed when the operation was executed
      • getUsersByGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionUser>> getUsersByGroupAsync​(@NotNull
                                                                                                                         @NotNull java.lang.String group)
        Gets a list of all users stored in the database with the given group. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users with that group stored in the database, because that takes a lot of memory.

        Parameters:
        group - the name of the group to get the users of.
        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • addGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> addGroupAsync​(@NotNull
                                                                                             @NotNull IPermissionGroup permissionGroup)
        Adds a new permission group to the list of groups. If a group with that name already exists, it will be deleted and created again.
        Parameters:
        permissionGroup - the IPermissionGroup to be added
        Returns:
        the created permission group.
      • addGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> addGroupAsync​(@NotNull
                                                                                             @NotNull java.lang.String role,
                                                                                             int potency)
        Adds a new permission group to the list of groups. If a group with that name already exists, it will be deleted and created again.
        Parameters:
        role - the name of the group to create.
        potency - the potency of the new group.
        Returns:
        the created permission group.
      • updateGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> updateGroupAsync​(@NotNull
                                                                                              @NotNull IPermissionGroup permissionGroup)
        Updates a permission group in the list of groups. If a group with that name doesn't exist, it will be created.
        Parameters:
        permissionGroup - the IPermissionGroup to be updated
        Returns:
        a task completed when the operation was executed
      • deleteGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> deleteGroupAsync​(@NotNull
                                                                                              @NotNull java.lang.String name)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        name - the case-sensitive name of the group
        Returns:
        a task completed when the operation was executed
      • deleteGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> deleteGroupAsync​(@NotNull
                                                                                              @NotNull IPermissionGroup permissionGroup)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        permissionGroup - the IPermissionGroup to be deleted
        Returns:
        a task completed when the operation was executed
      • containsGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> containsGroupAsync​(@NotNull
                                                                                                   @NotNull java.lang.String group)
        Checks if a specific group exists.
        Parameters:
        group - the case-sensitive name of the group
        Returns:
        true if the group exists, false otherwise
      • getGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> getGroupAsync​(@NotNull
                                                                                             @NotNull java.lang.String name)
        Gets a specific group by its name.
        Parameters:
        name - the case-sensitive name of the group
        Returns:
        the IPermissionUser if it exists, null otherwise
      • getDefaultPermissionGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> getDefaultPermissionGroupAsync()
        Gets the default permission group.
        Returns:
        the default permission group.
      • getGroupsAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionGroup>> getGroupsAsync()
        Gets the list of all groups in the Cloud.
        Returns:
        a list of IPermissionGroups registered in the cloud or an empty list if there is no group registered
      • setGroupsAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> setGroupsAsync​(@Nullable
                                                                                            @Nullable java.util.Collection<? extends IPermissionGroup> groups)
        Clears all groups in the Cloud and sets given groups.
        Parameters:
        groups - the new groups
      • modifyGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> modifyGroupAsync​(@NotNull
                                                                                                @NotNull java.lang.String name,
                                                                                                @NotNull
                                                                                                @NotNull java.util.function.Consumer<IPermissionGroup> modifier)
        Gets the permission group with the given name by using getGroupAsync(String) and, if not null, puts it into the consumer, after that, the group will be updated by using updateGroup(IPermissionGroup).
        Parameters:
        name - the name of the group
        modifier - the Consumer to modify the user
        Returns:
        the modified user
      • modifyUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> modifyUserAsync​(@NotNull
                                                                                              @NotNull java.util.UUID uniqueId,
                                                                                              @NotNull
                                                                                              @NotNull java.util.function.Consumer<IPermissionUser> modifier)
        Gets the permission user with the given uniqueId by using getUserAsync(UUID) and, if not null, puts them into the consumer, after that, the user will be updated by using updateUser(IPermissionUser).
        Parameters:
        uniqueId - the uniqueId of the user
        modifier - the Consumer to modify the user
        Returns:
        the modified user
      • modifyUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.List<IPermissionUser>> modifyUsersAsync​(@NotNull
                                                                                                               @NotNull java.lang.String name,
                                                                                                               @NotNull
                                                                                                               @NotNull java.util.function.Consumer<IPermissionUser> modifier)
        Gets every user matching the given name by using getUsersAsync(String) and puts them into the consumer, after that, every user will be updated by using updateUser(IPermissionUser).
        Parameters:
        name - the name of the users
        modifier - the Consumer to modify the available users
        Returns:
        a list of all modified users