Interface UserManager


  • public interface UserManager
    Stores the persistent User data of a Player.

    Any Users retrieved from this manager should not be stored, as they may become invalid at any time.

    • Method Detail

      • load

        CompletableFuture<Optional<User>> load​(String lastKnownName)
        Gets the data of a User by their last known user name (case-insensitive).

        To get the current name of a player, use the GameProfileManager service.

        Parameters:
        lastKnownName - The user name
        Returns:
        User or Optional.empty() if not found
      • loadOrCreate

        CompletableFuture<User> loadOrCreate​(UUID uuid)
        Gets or creates a persistent User with the given UUID.
        Parameters:
        uuid - The UUID of the player to load or create.
        Returns:
        The user object
      • delete

        CompletableFuture<Boolean> delete​(UUID uuid)
        Deletes the data associated with a User, if the player is offline.
        Parameters:
        uuid - The uuid of the user to delete
        Returns:
        true if the deletion was successful
      • removeFromCache

        boolean removeFromCache​(UUID uuid)
        If the implementation supports caching user objects, this will hint to the implementation that the user with the given UUID should no longer be cached. Any User objects held that this point will become invalid (though developers should not be storing users).

        Be aware, any changes that have been made to the user may not be saved.

        Users that are online will not be affected by this call.

        Parameters:
        uuid - The UUID of the user to save.
        Returns:
        true if the user was removed from a cache.
      • forceSave

        CompletableFuture<Boolean> forceSave​(UUID uuid)
        If the implementation supports caching user objects, this will hint to the implementation that the user with the given UUID should be saved to the disk immediately.

        If an exception is encountered during save, the completed future will be exceptional and the boolean will be null. It is therefore recommended that you check for any exceptions this future holds.

        Parameters:
        uuid - The user to attempt to save.
        Returns:
        A completed future that returns true if the implementation saved the user.
      • exists

        boolean exists​(UUID playerUuid)
        Returns whether data to create a User exists for a given player with a specified UUID.

        If this is false, then load(UUID) will return an empty optional.

        Parameters:
        playerUuid - The UUID of the player to check.
        Returns:
        If the player has existing user data that can be loaded.
      • streamOfMatches

        Stream<GameProfile> streamOfMatches​(String lastKnownName)
        Gets a Stream that returns a GameProfile for each stored User whose last known user names start with the given string (case-insensitive).

        It is important to note that the names this method uses to perform the matching is based on the latest information the server holds and no attempt is made to update this information.

        If you require up to date GameProfiles, use the appropriate methods on the GameProfileManager and/or its associated GameProfileManager.

        Use load(GameProfile) to load associated User data.

        Parameters:
        lastKnownName - The name to check for
        Returns:
        A Stream of GameProfiles