Interface GuildAction

  • All Superinterfaces:
    RestAction<java.lang.Void>

    public interface GuildAction
    extends RestAction<java.lang.Void>
    RestAction extension specifically designed to allow for the creation of Guilds.
    This is available to all account types but may undergo certain restrictions by Discord.
    Since:
    3.4.0
    See Also:
    JDA.createGuild(String)
    • Method Detail

      • setCheck

        @Nonnull
        GuildAction setCheck​(@Nullable
                             java.util.function.BooleanSupplier checks)
        Description copied from interface: RestAction
        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 RestAction<java.lang.Void>
        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:
        RestAction.getCheck(), RestAction.addCheck(BooleanSupplier)
      • timeout

        @Nonnull
        GuildAction timeout​(long timeout,
                            @Nonnull
                            java.util.concurrent.TimeUnit unit)
        Description copied from interface: RestAction
        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 RestAction<java.lang.Void>
        Parameters:
        timeout - The timeout to use
        unit - Unit for the timeout value
        Returns:
        The same RestAction instance with the applied timeout
        See Also:
        RestAction.setDefaultTimeout(long, TimeUnit)
      • deadline

        @Nonnull
        GuildAction deadline​(long timestamp)
        Description copied from interface: RestAction
        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 RestAction<java.lang.Void>
        Parameters:
        timestamp - Millisecond timestamp at which the request will timeout
        Returns:
        The same RestAction with the applied deadline
        See Also:
        RestAction.timeout(long, TimeUnit), RestAction.setDefaultTimeout(long, TimeUnit)
      • setIcon

        @Nonnull
        @CheckReturnValue
        GuildAction setIcon​(@Nullable
                            Icon icon)
        Sets the Icon for the resulting Guild
        Parameters:
        icon - The Icon to use
        Returns:
        The current GuildAction for chaining convenience
      • setName

        @Nonnull
        @CheckReturnValue
        GuildAction setName​(@Nonnull
                            java.lang.String name)
        Sets the name for the resulting Guild
        Parameters:
        name - The name to use
        Returns:
        The current GuildAction for chaining convenience
        Throws:
        java.lang.IllegalArgumentException - If the provided name is null, blank or not between 2-100 characters long
      • addChannel

        @Nonnull
        @CheckReturnValue
        GuildAction addChannel​(@Nonnull
                               GuildAction.ChannelData channel)
        Adds a GuildChannel to the resulting Guild. This cannot be of type CATEGORY!
        Parameters:
        channel - The ChannelData to use for the construction of the GuildChannel
        Returns:
        The current GuildAction for chaining convenience
        Throws:
        java.lang.IllegalArgumentException - If the provided channel is null!
      • getChannel

        @Nonnull
        @CheckReturnValue
        GuildAction.ChannelData getChannel​(int index)
        Gets the ChannelData of the specified index. The index is 0 based on insertion order of addChannel(ChannelData)!
        Parameters:
        index - The 0 based index of the channel
        Returns:
        The current GuildAction for chaining convenience
        Throws:
        java.lang.IndexOutOfBoundsException - If the provided index is not in bounds
      • removeChannel

        @Nonnull
        @CheckReturnValue
        GuildAction.ChannelData removeChannel​(int index)
        Removes the ChannelData at the specified index and returns the removed object.
        Parameters:
        index - The index of the channel
        Returns:
        The removed object
        Throws:
        java.lang.IndexOutOfBoundsException - If the index is out of bounds
      • removeChannel

        @Nonnull
        @CheckReturnValue
        GuildAction removeChannel​(@Nonnull
                                  GuildAction.ChannelData data)
        Removes the provided ChannelData from this GuildAction if present.
        Parameters:
        data - The ChannelData to remove
        Returns:
        The current GuildAction for chaining convenience
      • newChannel

        @Nonnull
        @CheckReturnValue
        GuildAction.ChannelData newChannel​(@Nonnull
                                           ChannelType type,
                                           @Nonnull
                                           java.lang.String name)
        Creates a new ChannelData instance and adds it to this GuildAction.
        Parameters:
        type - The ChannelType of the resulting GuildChannel
        This may be of type TEXT or VOICE!
        name - The name of the channel. This must be alphanumeric with underscores for type TEXT
        Returns:
        The new ChannelData instance
        Throws:
        java.lang.IllegalArgumentException -
        • If provided with an invalid ChannelType
        • If the provided name is null or blank
        • If the provided name is not between 2-100 characters long
        • If the type is TEXT and the provided name is not alphanumeric with underscores
      • getPublicRole

        @Nonnull
        @CheckReturnValue
        GuildAction.RoleData getPublicRole()
        Retrieves the RoleData for the public role (Guild.getPublicRole()) for the resulting Guild.
        The public role is also known in the official client as the @everyone role.

        You can only change the permissions of the public role!

        Returns:
        RoleData of the public role
      • getRole

        @Nonnull
        @CheckReturnValue
        GuildAction.RoleData getRole​(int index)
        Retrieves the RoleData for the provided index.
        The public role is at the index 0 and all others are ordered by insertion order!
        Parameters:
        index - The index of the role
        Returns:
        RoleData of the provided index
        Throws:
        java.lang.IndexOutOfBoundsException - If the provided index is out of bounds