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.
      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.
      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 @Unmodifiable 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 @Unmodifiable 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 @Unmodifiable 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
    • getUserInstallCount

      long getUserInstallCount()
      The approximate count of users that have installed this application, or -1 if it is unknown.
      Returns:
      The approximate count of users that have installed this application.
    • getIntegrationTypesConfig

      The configurations for each IntegrationType set on the application.
      Returns:
      The configurations for each integration type