Interface Invite


public interface Invite
Representation of a Discord Invite. This class is immutable.
Author:
Aljoscha Grebe
See Also:
  • Method Details

    • resolve

      @Nonnull @CheckReturnValue static RestAction<Invite> resolve(@Nonnull JDA api, @Nonnull String code)
      Retrieves a new Invite instance for the given invite code.
      You cannot resolve invites if you were banned from the origin Guild!

      Possible ErrorResponses include:

      • Unknown Invite
        The Invite did not exist (possibly deleted) or the account is banned in the guild.
      Parameters:
      api - The JDA instance
      code - A valid invite code
      Returns:
      RestAction - Type: Invite
      The Invite object
    • resolve

      @Nonnull @CheckReturnValue static RestAction<Invite> resolve(@Nonnull JDA api, @Nonnull String code, boolean withCounts)
      Retrieves a new Invite instance for the given invite code.
      You cannot resolve invites if you were banned from the origin Guild!

      Possible ErrorResponses include:

      • Unknown Invite
        The Invite did not exist (possibly deleted) or the account is banned in the guild.
      Parameters:
      api - The JDA instance
      code - A valid invite code
      withCounts - Whether or not to include online and member counts for guild invites or users for group invites
      Returns:
      RestAction - Type: Invite
      The Invite object
    • delete

      @Nonnull @CheckReturnValue AuditableRestAction<Void> delete()
      Deletes this invite.
      Requires MANAGE_CHANNEL in the invite's channel. Will throw an InsufficientPermissionException otherwise.
      Returns:
      AuditableRestAction
      Throws:
      InsufficientPermissionException - if the account does not have MANAGE_SERVER in the invite's channel
    • expand

      @Nonnull @CheckReturnValue RestAction<Invite> expand()
      Tries to retrieve a new expanded Invite with more info.
      As bots can't be in groups this is only available for guild invites and will throw an IllegalStateException for other types.
      Requires either MANAGE_SERVER in the invite's guild or MANAGE_CHANNEL in the invite's channel. Will throw an InsufficientPermissionException otherwise.
      Returns:
      RestAction - Type: Invite
      The expanded Invite object
      Throws:
      InsufficientPermissionException - if the account neither has MANAGE_SERVER in the invite's guild nor MANAGE_CHANNEL in the invite's channel
      IllegalStateException - If this is a group invite
      See Also:
    • getType

      @Nonnull Invite.InviteType getType()
      The type of this invite.
      Returns:
      The invite's type
    • getTargetType

      @Nonnull Invite.TargetType getTargetType()
      The target type of this invite or Invite.TargetType.NONE if this invite does not have a InviteTarget.
      Returns:
      The invite's target type or Invite.TargetType.NONE
      See Also:
    • getChannel

      @Nullable Invite.Channel getChannel()
      An Invite.Channel object containing information about this invite's origin channel.
      Returns:
      Information about this invite's origin channel or null in case of a group invite
      See Also:
    • getGroup

      @Nullable Invite.Group getGroup()
      An Invite.Group object containing information about this invite's origin group.
      Returns:
      Information about this invite's origin group or null in case of a guild invite
      See Also:
    • getTarget

      @Nullable Invite.InviteTarget getTarget()
      An Invite.InviteTarget object containing information about this invite's target or null if this invite does not have a target.
      Returns:
      Information about this invite's target or null
      See Also:
    • getCode

      @Nonnull String getCode()
      The invite code
      Returns:
      the invite code
    • getUrl

      @Nonnull default String getUrl()
      The invite URL for this invite in the format of: "https://discord.gg/" + getCode()
      Returns:
      Invite URL for this Invite
    • getGuild

      @Nullable Invite.Guild getGuild()
      An Invite.Guild object containing information about this invite's origin guild.
      Returns:
      Information about this invite's origin guild or null in case of a group invite
      See Also:
    • getInviter

      @Nullable User getInviter()
      The user who created this invite. For not expanded invites this may be null.
      Returns:
      The user who created this invite
    • getJDA

      @Nonnull JDA getJDA()
      The JDA instance used to create this Invite
      Returns:
      the corresponding JDA instance
    • getMaxAge

      int getMaxAge()
      The max age of this invite in seconds.

      This works only for expanded invites and will throw a IllegalStateException otherwise!

      Returns:
      The max age of this invite in seconds
      Throws:
      IllegalStateException - if this invite is not expanded
      See Also:
    • getMaxUses

      int getMaxUses()
      The max uses of this invite. If there is no limit thus will return 0.

      This works only for expanded invites and will throw a IllegalStateException otherwise!

      Returns:
      The max uses of this invite or 0 if there is no limit
      Throws:
      IllegalStateException - if this invite is not expanded
      See Also:
    • getTimeCreated

      @Nonnull OffsetDateTime getTimeCreated()
      Returns creation date of this invite.

      This works only for expanded invites and will throw a IllegalStateException otherwise!

      Returns:
      The creation date of this invite
      Throws:
      IllegalStateException - if this invite is not expanded
      See Also:
    • getUses

      int getUses()
      How often this invite has been used.

      This works only for expanded invites and will throw a IllegalStateException otherwise!

      Returns:
      The uses of this invite
      Throws:
      IllegalStateException - if this invite is not expanded
      See Also:
    • isExpanded

      boolean isExpanded()
      Whether this Invite is expanded or not. Expanded invites contain more information, but they can only be obtained by Guild#retrieveInvites() (requires Permission.MANAGE_SERVER) or IInviteContainer#retrieveInvites() (requires Permission.MANAGE_CHANNEL).

      There is a convenience method expand() to get the expanded invite for an unexpanded one.

      Returns:
      Whether this invite is expanded or not
      See Also:
    • isTemporary

      boolean isTemporary()
      Whether this Invite grants only temporary access or not.

      This works only for expanded invites and will throw a IllegalStateException otherwise!

      Returns:
      Whether this invite is temporary or not
      Throws:
      IllegalStateException - if this invite is not expanded
      See Also:
    • isGuest

      boolean isGuest()
      Whether this Invite is a guest invite for a voice channel or not. A guest is able to join a voice call from the invite without being granted guild membership nor having visibility to other guild channels. Once the user leaves the voice call, their ability to rejoin the voice call and see the guild is revoked.

      Applicable only to invites to a specific channel.

      Returns:
      Whether this invite is a guest invite for a voice channel or not
      See Also: