Class ManagerBase<M extends Manager<M>>
java.lang.Object
net.dv8tion.jda.internal.requests.RestActionImpl<Void>
net.dv8tion.jda.internal.requests.restaction.AuditableRestActionImpl<Void>
net.dv8tion.jda.internal.managers.ManagerBase<M>
- All Implemented Interfaces:
Manager<M>
,RestAction<Void>
,AuditableRestAction<Void>
- Direct Known Subclasses:
AccountManagerImpl
,ApplicationEmojiManagerImpl
,ApplicationManagerImpl
,AutoModRuleManagerImpl
,ChannelManagerImpl
,CustomEmojiManagerImpl
,GuildManagerImpl
,GuildStickerManagerImpl
,GuildWelcomeScreenManagerImpl
,PermOverrideManagerImpl
,RoleManagerImpl
,ScheduledEventManagerImpl
,StageInstanceManagerImpl
,TemplateManagerImpl
,WebhookManagerImpl
public abstract class ManagerBase<M extends Manager<M>>
extends AuditableRestActionImpl<Void>
implements Manager<M>
-
Field Summary
Fields inherited from class net.dv8tion.jda.internal.requests.RestActionImpl
LOG
Fields inherited from interface net.dv8tion.jda.api.requests.restaction.AuditableRestAction
MAX_REASON_LENGTH
-
Method Summary
Modifier and TypeMethodDescriptioncomplete
(boolean shouldQueue) Blocks the current Thread and awaits the completion of anRestAction.submit()
request.deadline
(long timestamp) Similar toRestAction.timeout(long, TimeUnit)
but schedules a deadline at which the request has to be completed.static boolean
void
Submits a Request for execution.reset()
Resets all fields for this Managerreset
(long fields) reset
(long... fields) setCheck
(BooleanSupplier checks) Sets the last-second checks before finally executing the http request in the queue.static void
setPermissionChecksEnabled
(boolean enable) Timeout for this RestAction instance.Methods inherited from class net.dv8tion.jda.internal.requests.restaction.AuditableRestActionImpl
reason
Methods inherited from class net.dv8tion.jda.internal.requests.RestActionImpl
getCheck, getDefaultFailure, getDefaultSuccess, getDefaultTimeout, getJDA, handleResponse, isPassContext, priority, setDefaultFailure, setDefaultSuccess, setDefaultTimeout, setErrorMapper, setPassContext, submit
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.dv8tion.jda.api.requests.restaction.AuditableRestAction
reason
Methods inherited from interface net.dv8tion.jda.api.requests.RestAction
addCheck, and, and, complete, completeAfter, delay, delay, delay, delay, flatMap, flatMap, getCheck, getJDA, map, mapToResult, onErrorFlatMap, onErrorFlatMap, onErrorMap, onErrorMap, onSuccess, queue, queue, queueAfter, queueAfter, queueAfter, queueAfter, queueAfter, queueAfter, submit, submit, submitAfter, submitAfter, zip
-
Method Details
-
setPermissionChecksEnabled
public static void setPermissionChecksEnabled(boolean enable) -
isPermissionChecksEnabled
public static boolean isPermissionChecksEnabled() -
setCheck
Description copied from interface:RestAction
Sets the last-second checks before finally executing the http request in the queue.
If the provided supplier evaluates tofalse
or throws an exception this will not be finished. When an exception is thrown from the supplier it will be provided to the failure callback.- Specified by:
setCheck
in interfaceAuditableRestAction<M extends Manager<M>>
- Specified by:
setCheck
in interfaceManager<M extends Manager<M>>
- Specified by:
setCheck
in interfaceRestAction<M extends Manager<M>>
- Overrides:
setCheck
in classAuditableRestActionImpl<Void>
- Parameters:
checks
- The checks to run before executing the request, ornull
to run no checks- Returns:
- The current RestAction for chaining convenience
- See Also:
-
timeout
Description copied from interface:AuditableRestAction
Timeout for this RestAction instance.
If the request doesn't get executed within the timeout it will fail.When a RestAction times out, it will fail with a
TimeoutException
. This is the same asdeadline(System.currentTimeMillis() + unit.toMillis(timeout))
.Example
action.timeout(10, TimeUnit.SECONDS) // 10 seconds from now .queueAfter(20, SECONDS); // request will not be executed within deadline and timeout immediately after 20 seconds
- Specified by:
timeout
in interfaceAuditableRestAction<M extends Manager<M>>
- Specified by:
timeout
in interfaceManager<M extends Manager<M>>
- Specified by:
timeout
in interfaceRestAction<M extends Manager<M>>
- Overrides:
timeout
in classAuditableRestActionImpl<Void>
- Parameters:
timeout
- The timeout to useunit
-Unit
for the timeout value- Returns:
- The same RestAction instance with the applied timeout
- See Also:
-
deadline
Description copied from interface:RestAction
Similar toRestAction.timeout(long, TimeUnit)
but schedules a deadline at which the request has to be completed.
If the deadline is reached, the request will fail with aTimeoutException
.This does not mean that the request will immediately timeout when the deadline is reached. JDA will check the deadline right before executing the request or within intervals in a worker thread. This only means the request will timeout if the deadline has passed.
Example
action.deadline(System.currentTimeMillis() + 10000) // 10 seconds from now .queueAfter(20, SECONDS); // request will not be executed within deadline and timeout immediately after 20 seconds
- Specified by:
deadline
in interfaceAuditableRestAction<M extends Manager<M>>
- Specified by:
deadline
in interfaceManager<M extends Manager<M>>
- Specified by:
deadline
in interfaceRestAction<M extends Manager<M>>
- Overrides:
deadline
in classAuditableRestActionImpl<Void>
- Parameters:
timestamp
- Millisecond timestamp at which the request will timeout- Returns:
- The same RestAction with the applied deadline
- See Also:
-
reset
-
reset
-
reset
Description copied from interface:Manager
Resets all fields for this Manager -
queue
Description copied from interface:RestAction
Submits a Request for execution.This method is asynchronous
Example
public static void sendPrivateMessage(JDA jda, String userId, String content) { // Retrieve the user by their id RestAction<User> action = jda.retrieveUserById(userId); action.queue( // Handle success if the user exists (user) -> user.openPrivateChannel().queue( (channel) -> channel.sendMessage(content).queue()), // Handle failure if the user does not exist (or another issue appeared) (error) -> error.printStackTrace() ); // Alternatively use submit() to remove nested callbacks }
- Specified by:
queue
in interfaceRestAction<M extends Manager<M>>
- Overrides:
queue
in classRestActionImpl<Void>
- Parameters:
success
- The success callback that will be called at a convenient time for the API. (can be null to use default)failure
- The failure callback that will be called if the Request encounters an exception at its execution point. (can be null to use default)- See Also:
-
complete
Description copied from interface:RestAction
Blocks the current Thread and awaits the completion of anRestAction.submit()
request.
Used for synchronous logic.- Specified by:
complete
in interfaceRestAction<M extends Manager<M>>
- Overrides:
complete
in classRestActionImpl<Void>
- Parameters:
shouldQueue
- Whether this should automatically handle rate limitations (default true)- Returns:
- The response value
- Throws:
RateLimitedException
- If we were rate limited and theshouldQueue
is false. UseRestAction.complete()
to avoid this Exception.
-