Class GuildAction


  • public class 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
    • Constructor Detail

      • GuildAction

        public GuildAction​(JDA api,
                           java.lang.String name)
    • Method Detail

      • setCheck

        public GuildAction setCheck​(java.util.function.BooleanSupplier checks)
        Description copied from class: 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.
        Overrides:
        setCheck in class 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
      • setRegion

        @CheckReturnValue
        public GuildAction setRegion​(Region region)
        Sets the voice Region of the resulting Guild.
        Parameters:
        region - The Region to use
        Returns:
        The current GuildAction for chaining convenience
        Throws:
        java.lang.IllegalArgumentException - If the provided region is a VIP region as per Region.isVip()
      • setIcon

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

        @CheckReturnValue
        public GuildAction setName​(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

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

        @CheckReturnValue
        public GuildAction.ChannelData getChannel​(int index)
        Gets the ChannelData of the specified index. The index is 0 based on insertion order of addChannel(GuildAction.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

        @CheckReturnValue
        public 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

        @CheckReturnValue
        public GuildAction removeChannel​(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

        @CheckReturnValue
        public GuildAction.ChannelData newChannel​(ChannelType type,
                                                  java.lang.String name)
        Creates a new ChannelData instance and adds it to this GuildAction.
        Parameters:
        type - The ChannelType of the resulting Channel
        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

        @CheckReturnValue
        public 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

        @CheckReturnValue
        public 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