Package net.dv8tion.jda.api.entities
Class MessageReaction
java.lang.Object
net.dv8tion.jda.api.entities.MessageReaction
An object representing a single MessageReaction from Discord.
This is an immutable object and is not updated by method calls or changes in Discord. A new snapshot instance
built from Discord is needed to see changes.
- Since:
- 3.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRepresents an Emoji/Emote of a MessageReaction
This is used to wrap both emojis and emotes -
Constructor Summary
ConstructorsConstructorDescriptionMessageReaction(MessageChannel channel, MessageReaction.ReactionEmote emote, long messageId, boolean self, int count) Creates a new MessageReaction instance -
Method Summary
Modifier and TypeMethodDescriptionRemoves this entire reaction from the message.booleanTheMessageChannelthis Reaction was used in.TheChannelTypethis Reaction was used in.intgetCount()The amount of users that already reacted with this Reaction
This is not updated, it is afinal intper Reaction instancegetGuild()TheGuildthis Reaction was used in.TheGuildMessageChannelthis Reaction was used in.getJDA()The JDA instance of this ReactionThe message id this reaction is attached tolongThe message id this reaction is attached toTheReactionEmoteof this ReactionbooleanhasCount()Whether this reaction can provide a count viagetCount().booleanisFromType(ChannelType type) Whether this Reaction was used in aMessageChannelof the specifiedChannelType.booleanisSelf()Whether the currently logged in account has reacted with this reactionRemoves this Reaction from the Message.removeReaction(User user) Removes this Reaction from the Message.Retrieves theUsersthat already reacted with this MessageReaction.toString()
-
Constructor Details
-
MessageReaction
public MessageReaction(@Nonnull MessageChannel channel, @Nonnull MessageReaction.ReactionEmote emote, long messageId, boolean self, int count) Creates a new MessageReaction instance- Parameters:
channel- TheMessageChannelthis Reaction was used inemote- TheReactionEmotethat was usedmessageId- The message id this reaction is attached toself- Whether we already reacted with this Reactioncount- The amount of people that reacted with this Reaction
-
-
Method Details
-
getJDA
The JDA instance of this Reaction- Returns:
- The JDA instance of this Reaction
-
isSelf
public boolean isSelf()Whether the currently logged in account has reacted with this reactionThis will always be false for events. Discord does not provide this information for reaction events. You can use
MessageChannel.retrieveMessageById(String)to get this information on a complete message.- Returns:
- True, if we reacted with this reaction
-
hasCount
public boolean hasCount()Whether this reaction can provide a count viagetCount().
This is usually not provided for reactions coming fromMessageReactionAddEventor similar.- Returns:
- True, if a count is available
- See Also:
-
getCount
public int getCount()The amount of users that already reacted with this Reaction
This is not updated, it is afinal intper Reaction instanceThis value is not available in events such as
MessageReactionAddEventandMessageReactionRemoveEventin which case anIllegalStateExceptionis thrown!- Returns:
- The amount of users that reacted with this Reaction
- Throws:
IllegalStateException- If this MessageReaction is from an event which does not provide a count
-
getChannelType
TheChannelTypethis Reaction was used in.- Returns:
- The ChannelType
-
isFromType
Whether this Reaction was used in aMessageChannelof the specifiedChannelType.- Parameters:
type- The ChannelType to compare- Returns:
- True, if this Reaction was used in a MessageChannel from the specified ChannelType
-
getGuild
TheGuildthis Reaction was used in. This will return null if the channel this Reaction was used in is not part of a Guild.- Returns:
Guildthis Reaction was used in, ornull
-
getTextChannel
- Returns:
- The
TextChannelornull
-
getPrivateChannel
- Returns:
- The
PrivateChannelornull
-
getChannel
TheMessageChannelthis Reaction was used in.- Returns:
- The channel this Reaction was used in
-
getGuildChannel
TheGuildMessageChannelthis Reaction was used in.- Returns:
- The channel this Reaction was used in or null if it wasn't used in a Guild
-
getReactionEmote
TheReactionEmoteof this Reaction- Returns:
- The final instance of this Reaction's Emote/Emoji
-
getMessageId
The message id this reaction is attached to- Returns:
- The message id this reaction is attached to
-
getMessageIdLong
public long getMessageIdLong()The message id this reaction is attached to- Returns:
- The message id this reaction is attached to
-
retrieveUsers
Retrieves theUsersthat already reacted with this MessageReaction.Possible ErrorResponses include:
UNKNOWN_MESSAGE
If the message this reaction was attached to got deleted.UNKNOWN_CHANNEL
If the channel this reaction was used in got deleted.MISSING_ACCESS
If we were removed from the channel/guild
- Returns:
ReactionPaginationAction
-
removeReaction
Removes this Reaction from the Message.
This will remove our own reaction as an overload ofremoveReaction(User).Possible ErrorResponses include:
UNKNOWN_MESSAGE
If the message this reaction was attached to got deleted.UNKNOWN_CHANNEL
If the channel this reaction was used in got deleted.MISSING_ACCESS
If we were removed from the channel/guild
- Returns:
RestAction- Type: Void Nothing is returned on success
-
removeReaction
Removes this Reaction from the Message.
This will remove the reaction of theUserprovided.If the provided User did not react with this Reaction this does nothing.
Possible ErrorResponses include:
UNKNOWN_MESSAGE
If the message this reaction was attached to got deleted.UNKNOWN_CHANNEL
If the channel this reaction was used in got deleted.MISSING_ACCESS
If we were removed from the channel/guild
- Parameters:
user- The User of which to remove the reaction- Returns:
RestActionNothing is returned on success- Throws:
IllegalArgumentException- If the provideduseris null.InsufficientPermissionException- If the provided User is not us and we do not have permission tomanage messagesin the channel this reaction was used inPermissionException- If the message is from another user in aPrivateChannel
-
clearReactions
Removes this entire reaction from the message.
UnlikeremoveReaction(User), which removes the reaction of a single user, this will remove the reaction completely.The following
ErrorResponsesare possible:MISSING_ACCESS
The currently logged in account lost access to the channel by either being removed from the guild or losing theVIEW_CHANNELpermissionUNKNOWN_EMOJI
The provided unicode emoji doesn't exist. Try using one of the example formats.UNKNOWN_MESSAGE
The message was deleted.
- Returns:
RestAction- Throws:
UnsupportedOperationException- If this reaction happened in a private channelInsufficientPermissionException- If the currently logged in account does not havePermission.MESSAGE_MANAGEin the channel- Since:
- 4.2.0
-
equals
-
toString
-