diff --git a/src/main/java/net/dv8tion/jda/api/entities/MessageReaction.java b/src/main/java/net/dv8tion/jda/api/entities/MessageReaction.java
index 6ac7039479..41d40c26eb 100644
--- a/src/main/java/net/dv8tion/jda/api/entities/MessageReaction.java
+++ b/src/main/java/net/dv8tion/jda/api/entities/MessageReaction.java
@@ -348,6 +348,8 @@ public long getMessageIdLong()
*
*
* @return {@link ReactionPaginationAction ReactionPaginationAction}
+ *
+ * @see #retrieveUsers(ReactionType)
*/
@Nonnull
@CheckReturnValue
@@ -356,6 +358,37 @@ public ReactionPaginationAction retrieveUsers()
return new ReactionPaginationActionImpl(this);
}
+ /**
+ * Retrieves the {@link net.dv8tion.jda.api.entities.User Users} that
+ * already reacted with this MessageReaction.
+ *
+ *
Possible ErrorResponses include:
+ *
+ * - {@link net.dv8tion.jda.api.requests.ErrorResponse#UNKNOWN_MESSAGE UNKNOWN_MESSAGE}
+ *
If the message this reaction was attached to got deleted.
+ *
+ * - {@link net.dv8tion.jda.api.requests.ErrorResponse#UNKNOWN_CHANNEL UNKNOWN_CHANNEL}
+ *
If the channel this reaction was used in got deleted.
+ *
+ * - {@link net.dv8tion.jda.api.requests.ErrorResponse#MISSING_ACCESS MISSING_ACCESS}
+ *
If we were removed from the channel/guild
+ *
+ *
+ * @param type
+ * The specific type of reaction
+ *
+ * @return {@link ReactionPaginationAction ReactionPaginationAction}
+ *
+ * @see #retrieveUsers()
+ */
+ @Nonnull
+ @CheckReturnValue
+ public ReactionPaginationAction retrieveUsers(@Nonnull ReactionType type)
+ {
+ Checks.notNull(type, "Type");
+ return new ReactionPaginationActionImpl(this, type);
+ }
+
/**
* Removes this Reaction from the Message.
*
This will remove our own reaction as an overload
@@ -511,6 +544,16 @@ public String toString()
*/
public enum ReactionType
{
- NORMAL, SUPER
+ NORMAL(0), SUPER(1);
+
+ private final int value;
+ ReactionType(int type) {
+ this.value = type;
+ }
+
+ public int getValue()
+ {
+ return value;
+ }
}
}
diff --git a/src/main/java/net/dv8tion/jda/internal/requests/restaction/pagination/ReactionPaginationActionImpl.java b/src/main/java/net/dv8tion/jda/internal/requests/restaction/pagination/ReactionPaginationActionImpl.java
index ea39c1a0b6..ac003012c8 100644
--- a/src/main/java/net/dv8tion/jda/internal/requests/restaction/pagination/ReactionPaginationActionImpl.java
+++ b/src/main/java/net/dv8tion/jda/internal/requests/restaction/pagination/ReactionPaginationActionImpl.java
@@ -47,7 +47,20 @@ public class ReactionPaginationActionImpl
*/
public ReactionPaginationActionImpl(MessageReaction reaction)
{
- super(reaction.getJDA(), Route.Messages.GET_REACTION_USERS.compile(reaction.getChannelId(), reaction.getMessageId(), getCode(reaction)), 1, 100, 100);
+ this(reaction, MessageReaction.ReactionType.NORMAL);
+ }
+
+ /**
+ * Creates a new PaginationAction instance
+ *
+ * @param reaction
+ * The target {@link net.dv8tion.jda.api.entities.MessageReaction MessageReaction}
+ * @param type
+ * Type of {@link net.dv8tion.jda.api.entities.MessageReaction.ReactionType MessageReaction.ReactionType} to retrieve users for
+ */
+ public ReactionPaginationActionImpl(MessageReaction reaction, MessageReaction.ReactionType type)
+ {
+ super(reaction.getJDA(), Route.Messages.GET_REACTION_USERS.compile(reaction.getChannelId(), reaction.getMessageId(), getCode(reaction)).withQueryParams("type", String.valueOf(type.getValue())), 1, 100, 100);
super.order(PaginationOrder.FORWARD);
this.reaction = reaction;
}