Interface User

    • Method Detail

      • fromId

        @Nonnull
        static User fromId​(@Nonnull
                           java.lang.String id)
        Creates a User instance which only wraps an ID.
        All other methods beside ISnowflake.getIdLong() and ISnowflake.getId() will throw UnsupportedOperationException.
        Parameters:
        id - The user id
        Returns:
        A user instance
        Throws:
        java.lang.IllegalArgumentException - If the provided ID is not a valid snowflake
        Since:
        4.2.1
        See Also:
        JDA.retrieveUserById(String)
      • getName

        @Nonnull
        java.lang.String getName()
        The username of the User. Length is between 2 and 32 characters (inclusive).
        Returns:
        Never-null String containing the User's username.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getDiscriminator

        @Nonnull
        java.lang.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 #.
        Returns:
        Never-null String containing the User discriminator.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long) Ex: 6297
      • getAvatarId

        @Nullable
        java.lang.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.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getAvatarUrl

        @Nullable
        default java.lang.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.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getDefaultAvatarId

        @Nonnull
        java.lang.String getDefaultAvatarId()
        The Discord Id for this user's default avatar image.
        Returns:
        Never-null String containing the User default avatar id.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getDefaultAvatarUrl

        @Nonnull
        default java.lang.String getDefaultAvatarUrl()
        The URL for the for the user's default avatar image.
        Returns:
        Never-null String containing the User default avatar url.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getEffectiveAvatarUrl

        @Nonnull
        default java.lang.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.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getAsTag

        @Nonnull
        java.lang.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
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • 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.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • 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()
                 .flatMap(channel -> channel.sendMessage(content))
                 .queue();
         }
        
         // Send message and delete 30 seconds later
         public RestAction<Void> sendSecretMessage(User user, String content) {
             return user.openPrivateChannel() // RestAction<PrivateChannel>
                        .flatMap(channel -> channel.sendMessage(content)) // RestAction<Message>
                        .delay(30, TimeUnit.SECONDS) // RestAction<Message> with delayed response
                        .flatMap(Message::delete); // RestAction<Void> (executed 30 seconds after sending)
         }
         
        Returns:
        RestAction - Type: PrivateChannel
        Retrieves the PrivateChannel to use to directly message this User.
        Throws:
        java.lang.UnsupportedOperationException - If the recipient User is the currently logged in account (represented by SelfUser) or if the user was created with fromId(long)
        See Also:
        JDA.openPrivateChannelById(long)
      • getMutualGuilds

        @Nonnull
        java.util.List<Guild> getMutualGuilds()
        Finds and collects all Guild instances that contain this User within the current JDA instance.

        This method is a shortcut for JDA.getMutualGuilds(User).

        Returns:
        Immutable list of all Guilds that this user is a member of.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • 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
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • isSystem

        boolean isSystem()
        Returns whether or not the given user is a System account, which includes the urgent message account and the community updates bot.
        Returns:
        Whether the User's account is marked as System
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getJDA

        @Nonnull
        JDA getJDA()
        Returns the JDA instance of this User
        Returns:
        the corresponding JDA instance
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getFlags

        @Nonnull
        java.util.EnumSet<User.UserFlag> getFlags()
        Returns the UserFlags of this user.
        Returns:
        EnumSet containing the flags of the user.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)
      • getFlagsRaw

        int getFlagsRaw()
        Returns the bitmask representation of the UserFlags of this user.
        Returns:
        bitmask representation of the user's flags.
        Throws:
        java.lang.UnsupportedOperationException - If this User was created with fromId(long)