Interface InviteAction

All Superinterfaces:
AuditableRestAction<Invite>, RestAction<Invite>

public interface InviteAction extends AuditableRestAction<Invite>
Invite Builder system created as an extension of RestAction
Provides an easy way to gather and deliver information to Discord to create Invites.
See Also:
  • Method Details

    • setCheck

      @Nonnull @CheckReturnValue InviteAction setCheck(@Nullable BooleanSupplier checks)
      Description copied from interface: AuditableRestAction
      Sets the last-second checks before finally executing the http request in the queue.
      If the provided supplier evaluates to false or throws an exception this will not be finished. When an exception is thrown from the supplier it will be provided to the failure callback.
      Specified by:
      setCheck in interface AuditableRestAction<Invite>
      Specified by:
      setCheck in interface RestAction<Invite>
      Parameters:
      checks - The checks to run before executing the request, or null to run no checks
      Returns:
      The current RestAction for chaining convenience
      See Also:
    • timeout

      @Nonnull @CheckReturnValue InviteAction timeout(long timeout, @Nonnull TimeUnit unit)
      Description copied from interface: AuditableRestAction
      Timeout for this RestAction instance.
      If the request doesn't get executed within the timeout it will fail.

      When a RestAction times out, it will fail with a TimeoutException. This is the same as deadline(System.currentTimeMillis() + unit.toMillis(timeout)).

      Example

      action.timeout(10, TimeUnit.SECONDS) // 10 seconds from now
            .queueAfter(20, SECONDS); // request will not be executed within deadline and timeout immediately after 20 seconds
      
      Specified by:
      timeout in interface AuditableRestAction<Invite>
      Specified by:
      timeout in interface RestAction<Invite>
      Parameters:
      timeout - The timeout to use
      unit - Unit for the timeout value
      Returns:
      The same RestAction instance with the applied timeout
      See Also:
    • deadline

      @Nonnull @CheckReturnValue InviteAction deadline(long timestamp)
      Description copied from interface: AuditableRestAction
      Similar to RestAction.timeout(long, TimeUnit) but schedules a deadline at which the request has to be completed.
      If the deadline is reached, the request will fail with a TimeoutException.

      This does not mean that the request will immediately timeout when the deadline is reached. JDA will check the deadline right before executing the request or within intervals in a worker thread. This only means the request will timeout if the deadline has passed.

      Example

      action.deadline(System.currentTimeMillis() + 10000) // 10 seconds from now
            .queueAfter(20, SECONDS); // request will not be executed within deadline and timeout immediately after 20 seconds
      
      Specified by:
      deadline in interface AuditableRestAction<Invite>
      Specified by:
      deadline in interface RestAction<Invite>
      Parameters:
      timestamp - Millisecond timestamp at which the request will timeout
      Returns:
      The same RestAction with the applied deadline
      See Also:
    • setMaxAge

      @Nonnull @CheckReturnValue InviteAction setMaxAge(@Nullable Integer maxAge)
      Sets the max age in seconds for the invite. Set this to 0 if the invite should never expire. Default is 86400 (24 hours). null will reset this to the default value.
      Parameters:
      maxAge - The max age for this invite or null to use the default value.
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If maxAge is negative.
    • setMaxAge

      @Nonnull @CheckReturnValue InviteAction setMaxAge(@Nullable Long maxAge, @Nonnull TimeUnit timeUnit)
      Sets the max age for the invite. Set this to 0 if the invite should never expire. Default is 86400 (24 hours). null will reset this to the default value.
      Parameters:
      maxAge - The max age for this invite or null to use the default value.
      timeUnit - The TimeUnit type of maxAge.
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If maxAge is negative or maxAge is positive and timeUnit is null.
    • setMaxUses

      @Nonnull @CheckReturnValue InviteAction setMaxUses(@Nullable Integer maxUses)
      Sets the max uses for the invite. Set this to 0 if the invite should have unlimited uses. Default is 0. null will reset this to the default value.
      Parameters:
      maxUses - The max uses for this invite or null to use the default value.
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If maxUses is negative.
    • setTemporary

      @Nonnull @CheckReturnValue InviteAction setTemporary(@Nullable Boolean temporary)
      Sets whether the invite should only grant temporary membership. Default is false.
      Parameters:
      temporary - Whether the invite should only grant temporary membership or null to use the default value.
      Returns:
      The current InviteAction for chaining.
    • setUnique

      @Nonnull @CheckReturnValue InviteAction setUnique(@Nullable Boolean unique)
      Sets whether discord should reuse a similar invite. Default is false.
      Parameters:
      unique - Whether discord should reuse a similar invite or null to use the default value.
      Returns:
      The current InviteAction for chaining.
    • setTargetApplication

      @Nonnull @CheckReturnValue InviteAction setTargetApplication(long applicationId)
      Sets the id of the targeted application.
      The invite has to point to a voice channel. The invite will have the Invite.TargetType.EMBEDDED_APPLICATION target.
      Parameters:
      applicationId - The id of the embedded application to target or 0 to remove
      Returns:
      The current InviteAction for chaining.
    • setTargetApplication

      @Nonnull @CheckReturnValue default InviteAction setTargetApplication(@Nonnull String applicationId)
      Sets the id of the targeted application.
      The invite has to point to a voice channel. The invite will have the Invite.TargetType.EMBEDDED_APPLICATION target.
      Parameters:
      applicationId - The id of the embedded application to target
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If the provided ID is null
      NumberFormatException - If the provided ID is not a snowflake
    • setTargetStream

      @Nonnull @CheckReturnValue InviteAction setTargetStream(long userId)
      Sets the user whose stream to target for this invite.
      The user must be streaming in the same channel. The invite will have the Invite.TargetType.STREAM target.
      Parameters:
      userId - The id of the user whose stream to target or 0 to remove.
      Returns:
      The current InviteAction for chaining.
    • setTargetStream

      @Nonnull @CheckReturnValue default InviteAction setTargetStream(@Nonnull String userId)
      Sets the user whose stream to display for this invite.
      The user must be streaming in the same channel. The invite will have the Invite.TargetType.STREAM target.
      Parameters:
      userId - The id of the user whose stream to target.
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If the provided ID is null
      NumberFormatException - If the provided ID is not a snowflake
    • setTargetStream

      @Nonnull @CheckReturnValue default InviteAction setTargetStream(@Nonnull User user)
      Sets the user whose stream to display for this invite.
      The user must be streaming in the same channel. The invite will have the Invite.TargetType.STREAM target.
      Parameters:
      user - The user whose stream to target.
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If the provided user is null
    • setTargetStream

      @Nonnull @CheckReturnValue default InviteAction setTargetStream(@Nonnull Member member)
      Sets the user whose stream to display for this invite.
      The user must be streaming in the same channel. The invite will have the Invite.TargetType.STREAM target.
      Parameters:
      member - The member whose stream to target.
      Returns:
      The current InviteAction for chaining.
      Throws:
      IllegalArgumentException - If the provided member is null