Interface User

    • Method Detail

      • getName

        @Nonnull
        String getName()
        The username of the User. Length is between 2 and 32 characters (inclusive).
        Returns:
        Never-null String containing the User's username.
      • getDiscriminator

        @Nonnull
        String getDiscriminator()

        The discriminator of the User. Used to differentiate between users with the same usernames.
        This only contains the 4 digits after the username and the #. Ex: 6297
        Returns:
        Never-null String containing the User discriminator.
      • getAvatarId

        @Nullable
        String getAvatarId()
        The Discord Id for this user's avatar image. If the user has not set an image, this will return null.
        Returns:
        Possibly-null String containing the User avatar id.
      • getAvatarUrl

        @Nullable
        default String getAvatarUrl()
        The URL for the user's avatar image. If the user has not set an image, this will return null.
        Returns:
        Possibly-null String containing the User avatar url.
      • getDefaultAvatarId

        @Nonnull
        String getDefaultAvatarId()
        The Discord Id for this user's default avatar image.
        Returns:
        Never-null String containing the User default avatar id.
      • getDefaultAvatarUrl

        @Nonnull
        default String getDefaultAvatarUrl()
        The URL for the for the user's default avatar image.
        Returns:
        Never-null String containing the User default avatar url.
      • getEffectiveAvatarUrl

        @Nonnull
        default String getEffectiveAvatarUrl()
        The URL for the user's avatar image If they do not have an avatar set, this will return the URL of their default avatar
        Returns:
        Never-null String containing the User effective avatar url.
      • getAsTag

        @Nonnull
        String getAsTag()
        The "tag" for this user

        This is the equivalent of calling String.format("%#s", user)

        Returns:
        Never-null String containing the tag for this user, for example DV8FromTheWorld#6297
      • hasPrivateChannel

        boolean hasPrivateChannel()
        Whether or not the currently logged in user and this user have a currently open PrivateChannel or not.
        Returns:
        True if the logged in account shares a PrivateChannel with this user.
      • openPrivateChannel

        @Nonnull
        @CheckReturnValue
        RestAction<PrivateChannel> openPrivateChannel()
        Opens a PrivateChannel with this User.
        If a channel has already been opened with this user, it is immediately returned in the RestAction's success consumer without contacting the Discord API.

        Examples

        
         // Send message without response handling
         public void sendMessage(User user, String content) {
             user.openPrivateChannel().queue(channel ->
                 channel.sendMessage(content).queue());
         }
        
         // Send message and provide it to the future for further handling
         public CompletableFuture<Message> awaitMessage(User user, String content) {
             return user.openPrivateChannel().submit()
                        .thenCompose(channel -> channel.sendMessage(content).submit())
                        .whenComplete((m, error) -> {
                            if (error != null) error.printStackTrace());
                        });
         }
         
        Returns:
        RestAction - Type: PrivateChannel
        Retrieves the PrivateChannel to use to directly message this User.
        Throws:
        UnsupportedOperationException - If the recipient User is the currently logged in account (represented by SelfUser)
        IllegalStateException - If this User is fake
      • isBot

        boolean isBot()
        Returns whether or not the given user is a Bot-Account (special badge in client, some different behaviour)
        Returns:
        If the User's Account is marked as Bot
      • getJDA

        @Nonnull
        JDA getJDA()
        Returns the JDA instance of this User
        Returns:
        the corresponding JDA instance