Interface ApplicationInfo

All Superinterfaces:
ISnowflake

public interface ApplicationInfo extends ISnowflake
Represents a Discord Application from its bot's point of view.
Since:
3.0
Author:
Aljoscha Grebe
See Also:
  • Method Details

    • doesBotRequireCodeGrant

      boolean doesBotRequireCodeGrant()
      Whether the bot requires code grant to invite or not.

      This means that additional OAuth2 steps are required to authorize the application to make a bot join a guild like &response_type=code together with a valid &redirect_uri.
      For more information look at the Discord OAuth2 documentation.

      Returns:
      Whether the bot requires code grant
    • getDescription

      @Nonnull String getDescription()
      The description of the bot's application.
      Returns:
      The description of the bot's application or an empty String if no description is defined
    • getTermsOfServiceUrl

      @Nullable String getTermsOfServiceUrl()
      The URL for the application's terms of service.
      Returns:
      The URL for the application's terms of service or null if none is set
    • getPrivacyPolicyUrl

      @Nullable String getPrivacyPolicyUrl()
      The URL for the application's privacy policy.
      Returns:
      The URL for the application's privacy policy or null if none is set
    • getIconId

      @Nullable String getIconId()
      The icon id of the bot's application.
      The application icon is not necessarily the same as the bot's avatar!
      Returns:
      The icon id of the bot's application or null if no icon is defined
    • getIconUrl

      @Nullable String getIconUrl()
      The icon-url of the bot's application.
      The application icon is not necessarily the same as the bot's avatar!
      Returns:
      The icon-url of the bot's application or null if no icon is defined
    • getIcon

      @Nullable default ImageProxy getIcon()
      Returns an ImageProxy for this application info's icon.
      Returns:
      The ImageProxy of this application info's icon or null if no icon is defined
      See Also:
    • getTeam

      The team information for this application.
      Returns:
      The ApplicationTeam, or null if this application is not in a team.
    • setRequiredScopes

      @Nonnull default ApplicationInfo setRequiredScopes(@Nonnull String... scopes)
      Configures the required scopes applied to the getInviteUrl(Permission...) and similar methods.
      To use slash commands you must add "applications.commands" to these scopes. The scope "bot" is always applied.
      Parameters:
      scopes - The scopes to use with getInviteUrl(Permission...) and the likes
      Returns:
      The current ApplicationInfo instance
      Throws:
      IllegalArgumentException - If null is provided
    • setRequiredScopes

      @Nonnull ApplicationInfo setRequiredScopes(@Nonnull Collection<String> scopes)
      Configures the required scopes applied to the getInviteUrl(Permission...) and similar methods.
      To use slash commands you must add "applications.commands" to these scopes. The scope "bot" is always applied.
      Parameters:
      scopes - The scopes to use with getInviteUrl(Permission...) and the likes
      Returns:
      The current ApplicationInfo instance
      Throws:
      IllegalArgumentException - If null is provided
    • getInviteUrl

      @Nonnull default String getInviteUrl(@Nullable Collection<Permission> permissions)
      Creates a OAuth invite-link used to invite the bot.

      The link is provided in the following format:
      https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot&permissions=PERMISSIONS
      Unnecessary query parameters are stripped.

      Parameters:
      permissions - Possibly empty Collection of Permissions that should be requested via invite.
      Returns:
      The link used to invite the bot
    • getInviteUrl

      @Nonnull default String getInviteUrl(@Nullable Permission... permissions)
      Creates a OAuth invite-link used to invite the bot.

      The link is provided in the following format:
      https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot&permissions=PERMISSIONS
      Unnecessary query parameters are stripped.

      Parameters:
      permissions - Permissions that should be requested via invite.
      Returns:
      The link used to invite the bot
    • getInviteUrl

      @Nonnull String getInviteUrl(@Nullable String guildId, @Nullable Collection<Permission> permissions)
      Creates a OAuth invite-link used to invite the bot.

      The link is provided in the following format:
      https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot&permissions=PERMISSIONS&guild_id=GUILD_ID
      Unnecessary query parameters are stripped.

      Parameters:
      guildId - The id of the pre-selected guild.
      permissions - Possibly empty Collection of Permissions that should be requested via invite.
      Returns:
      The link used to invite the bot
      Throws:
      NumberFormatException - If the provided id cannot be parsed by Long.parseLong(String)
    • getInviteUrl

      @Nonnull default String getInviteUrl(long guildId, @Nullable Collection<Permission> permissions)
      Creates a OAuth invite-link used to invite the bot.

      The link is provided in the following format:
      https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot&permissions=PERMISSIONS&guild_id=GUILD_ID
      Unnecessary query parameters are stripped.

      Parameters:
      guildId - The id of the pre-selected guild.
      permissions - Possibly empty Collection of Permissions that should be requested via invite.
      Returns:
      The link used to invite the bot
    • getInviteUrl

      @Nonnull default String getInviteUrl(@Nullable String guildId, @Nullable Permission... permissions)
      Creates a OAuth invite-link used to invite the bot.

      The link is provided in the following format:
      https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot&permissions=PERMISSIONS&guild_id=GUILD_ID
      Unnecessary query parameters are stripped.

      Parameters:
      guildId - The id of the pre-selected guild.
      permissions - Possibly empty array of Permissions that should be requested via invite.
      Returns:
      The link used to invite the bot
      Throws:
      NumberFormatException - If the provided id cannot be parsed by Long.parseLong(String)
    • getInviteUrl

      @Nonnull default String getInviteUrl(long guildId, @Nullable Permission... permissions)
      Creates a OAuth invite-link used to invite the bot.

      The link is provided in the following format:
      https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot&permissions=PERMISSIONS&guild_id=GUILD_ID
      Unnecessary query parameters are stripped.

      Parameters:
      guildId - The id of the pre-selected guild.
      permissions - Possibly empty array of Permissions that should be requested via invite.
      Returns:
      The link used to invite the bot
    • getJDA

      @Nonnull JDA getJDA()
      The JDA instance of this ApplicationInfo (the one logged into this application's bot account).
      Returns:
      The JDA instance of this ApplicationInfo
    • getName

      @Nonnull String getName()
      The name of the bot's application.
      The application name is not necessarily the same as the bot's name!
      Returns:
      The name of the bot's application.
    • getOwner

      @Nonnull User getOwner()
      The owner of the bot's application.
      Returns:
      The owner of the bot's application
    • isBotPublic

      boolean isBotPublic()
      Whether the bot is public or not. Public bots can be added by anyone. When false only the owner can invite the bot to guilds.
      Returns:
      Whether the bot is public
    • getTags

      @Nonnull List<String> getTags()
      A List containing the tags of this bot's application.

      This List is empty if no tags are set in the Developer Portal.

      Returns:
      Immutable list containing the tags of this bot's application
    • getRedirectUris

      @Nonnull List<String> getRedirectUris()
      A List containing the OAuth2 redirect URIs of this bot's application.

      This List is empty if no redirect URIs are set in the Developer Portal.

      Returns:
      Immutable list containing the OAuth2 redirect URIs of this bot's application
    • getInteractionsEndpointUrl

      @Nullable String getInteractionsEndpointUrl()
      The interaction endpoint URL of this bot's application.

      This returns null if no interaction endpoint URL is set in the Developer Portal.

      A non-null value means your bot will no longer receive interactions through JDA, such as slash commands, components and modals.

      Returns:
      Interaction endpoint URL of this bot's application, or null if it has not been set
    • getRoleConnectionsVerificationUrl

      @Nullable String getRoleConnectionsVerificationUrl()
      The role connections (linked roles) verification URL of this bot's application.

      This returns null if no role connection verification URL is set in the Developer Portal.

      Returns:
      Role connections verification URL of this bot's application, or null if it has not been set
    • getCustomAuthorizationUrl

      @Nullable String getCustomAuthorizationUrl()
      The custom Authorization URL of this bot's application.

      This returns null if no custom URL is set in the Developer Portal or if In-app Authorization is enabled.

      Returns:
      Custom Authorization URL, or null if it has not been set
    • getScopes

      @Nonnull List<String> getScopes()
      A List of scopes the default authorization URL is set up with.

      This List is empty if you set a custom URL in the Developer Portal.

      Returns:
      Immutable list of scopes the default authorization URL is set up with.
    • getPermissions

      @Nonnull EnumSet<Permission> getPermissions()
      An EnumSet of permissions the default authorization URL is set up with.

      This is empty if you set a custom URL in the Developer Portal.

      Returns:
      Set of permissions the default authorization URL is set up with.
    • getPermissionsRaw

      long getPermissionsRaw()
      The long representation of the literal permissions the default authorization URL is set up with.
      Returns:
      Never-negative long containing offset permissions the default authorization URL is set up with.
    • getFlags

      @Nonnull default EnumSet<ApplicationInfo.Flag> getFlags()
      The Flags set for the application.
      Modifying the returned EnumSet will have not actually change the flags of the application.
      Returns:
      EnumSet of ApplicationInfo.Flag
    • getFlagsRaw

      long getFlagsRaw()
      The raw bitset representing this application's flags.
      Returns:
      The bitset