Interface Emote

    • Method Detail

      • getGuild

        @Nullable
        Guild getGuild()
        The Guild this emote is attached to.

        This is null if the emote is created from a message

        Returns:
        Guild of this emote or null if it is created from a message
      • getRoles

        @Nonnull
        java.util.List<Role> getRoles()
        Roles this emote is active for.
        Learn More
        Returns:
        An immutable list of the roles this emote is active for (all roles if empty)
        Throws:
        java.lang.IllegalStateException - If this Emote does not have attached roles according to canProvideRoles()
        See Also:
        canProvideRoles()
      • hasRoles

        @Deprecated
        @DeprecatedSince("3.8.0")
        @ReplaceWith("canProvideRoles()")
        default boolean hasRoles()
        Deprecated.
        This will be replaced by canProvideRoles()
        Whether this Emote has attached roles. This might not be the case when the emote is retrieved through special cases like audit-logs.

        If this is not true then getRoles() will throw IllegalStateException.

        Returns:
        True, if this emote has roles attached
      • canProvideRoles

        boolean canProvideRoles()
        Whether this Emote has an attached roles list. This might not be the case when the emote is retrieved through special cases like audit-logs.

        If this is not true then getRoles() will throw IllegalStateException.

        Returns:
        True, if this emote has an attached roles list
      • getName

        @Nonnull
        java.lang.String getName()
        The name of this emote.
        Does not include colons.
        Returns:
        String representation of this emote's name
      • isManaged

        boolean isManaged()
        Whether this emote is managed. A managed Emote is controlled by Discord, not the Guild administrator, typical via a service like BTTV in conjunction with Twitch.
        Learn More
        Returns:
        True, if this emote is managed
      • isAvailable

        boolean isAvailable()
        Whether this emote is available. When an emote becomes unavailable, it cannot be used in messages. An emote becomes unavailable when the BoostTier of the guild drops such that the maximum allowed emotes is lower than the total amount of emotes added to the guild.

        If an emote is added to the guild when the boost tier allows for more than 50 normal and 50 animated emotes (BoostTier is at least TIER_1) and the emote is at least the 51st one added, then the emote becomes unavailable when the BoostTier drops below a level that allows those emotes to be used.
        Emotes that where added as part of a lower BoostTier (i.e. the 51st emote on BoostTier 2) will remain available, as long as the BoostTier stays above the required level.

        Returns:
        True, if this emote is available
        Since:
        4.2.1
      • getJDA

        @Nonnull
        JDA getJDA()
        The JDA instance of this Emote
        Returns:
        The JDA instance of this Emote
      • getManager

        @Nonnull
        EmoteManager getManager()
        The Manager for this emote, used to modify properties of the emote like name and role restrictions.
        You modify multiple fields in one request by chaining setters before calling RestAction.queue().

        This is a lazy idempotent getter. The manager is retained after the first call. This getter is not thread-safe and would require guards by the user.

        Returns:
        The EmoteManager for this Emote
        Throws:
        java.lang.IllegalStateException - if this emote is created from a message or the bot does not have access to the emote
        InsufficientPermissionException - If the currently logged in account does not have Permission.MANAGE_EMOTES
      • isAnimated

        boolean isAnimated()
        Whether or not this Emote is animated.

        Animated Emotes are available to Discord Nitro users as well as Bot accounts.

        Returns:
        Whether the Emote is animated or not.
      • getImageUrl

        @Nonnull
        default java.lang.String getImageUrl()
        A String representation of the URL which leads to image displayed within the official Discord™ client when this Emote is used
        Returns:
        Discord CDN link to the Emote's image
      • getAsMention

        @Nonnull
        default java.lang.String getAsMention()
        Usable representation of this Emote (used to display in the client just like mentions with a specific format)
        Emotes are used with the format <:getName():getId()>
        Specified by:
        getAsMention in interface IMentionable
        Returns:
        A usable String representation for this Emote
        See Also:
        Message Formatting
      • canInteract

        default boolean canInteract​(Member issuer)
        Whether the specified Member can interact with this Emote
        Parameters:
        issuer - The User to test
        Returns:
        True, if the provided Member can use this Emote
      • canInteract

        default boolean canInteract​(User issuer,
                                    MessageChannel channel)
        Whether the specified User can interact with this Emote within the provided MessageChannel
        Same logic as canInteract(issuer, channel, true)!
        Parameters:
        issuer - The User to test
        channel - The MessageChannel to test
        Returns:
        True, if the provided Member can use this Emote
      • canInteract

        default boolean canInteract​(User issuer,
                                    MessageChannel channel,
                                    boolean botOverride)
        Whether the specified User can interact with this Emote within the provided MessageChannel
        Special override to exclude elevated bot permissions in case of (for instance) reacting to messages.
        Parameters:
        issuer - The User to test
        channel - The MessageChannel to test
        botOverride - Whether bots can use non-managed emotes in other guilds
        Returns:
        True, if the provided Member can use this Emote