Interface MessagePaginationAction
- All Superinterfaces:
Iterable<Message>
,PaginationAction<Message,
,MessagePaginationAction> RestAction<@Unmodifiable List<Message>>
PaginationAction
that paginates the message history endpoint.
Note that this implementation is not considered thread-safe as modifications to the cache are not done with a lock. Calling methods on this class from multiple threads is not recommended.
Must provide not-null MessageChannel
to compile a valid
pagination route.
Limits:
Minimum - 1
Maximum - 100
Example
/**
* Iterates messages in an async stream and stops once the limit has been reached.
*/
public static void onEachMessageAsync(MessageChannel channel, Consumer<Message> consumer, int limit)
{
if (limit< 1)
return;
MessagePaginationAction action = channel.getIterableHistory();
AtomicInteger counter = new AtomicInteger(limit);
action.forEachAsync( (message)->
{
consumer.accept(message);
// if false the iteration is terminated; else it continues
return counter.decrementAndGet() == 0;
});
}
- Since:
- 3.1
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.dv8tion.jda.api.requests.restaction.pagination.PaginationAction
PaginationAction.PaginationIterator<E>, PaginationAction.PaginationOrder
-
Method Summary
Modifier and TypeMethodDescriptionThe targetedMessageChannel
default ChannelType
getType()
TheChannelType
of the targetedMessageChannel
.Methods inherited from interface net.dv8tion.jda.api.requests.restaction.pagination.PaginationAction
cache, cacheSize, deadline, forEachAsync, forEachAsync, forEachRemaining, forEachRemainingAsync, forEachRemainingAsync, getCached, getFirst, getLast, getLastKey, getLimit, getMaxLimit, getMinLimit, getOrder, getSupportedOrders, isCacheEnabled, isEmpty, iterator, limit, order, parallelStream, reverse, setCheck, skipTo, spliterator, stream, takeAsync, takeRemainingAsync, takeUntilAsync, takeUntilAsync, takeWhileAsync, takeWhileAsync, timeout
Methods inherited from interface net.dv8tion.jda.api.requests.RestAction
addCheck, and, and, complete, complete, completeAfter, delay, delay, delay, delay, flatMap, flatMap, getCheck, getJDA, map, mapToResult, onErrorFlatMap, onErrorFlatMap, onErrorMap, onErrorMap, onSuccess, queue, queue, queue, queueAfter, queueAfter, queueAfter, queueAfter, queueAfter, queueAfter, submit, submit, submitAfter, submitAfter, zip
-
Method Details
-
getType
TheChannelType
of the targetedMessageChannel
.- Returns:
ChannelType
-
getChannel
The targetedMessageChannel
- Returns:
- The MessageChannel instance
-