Interface Webhook
-
- All Superinterfaces:
ISnowflake
public interface Webhook extends ISnowflake
An object representing Webhooks in Discord- Since:
- 3.0
- See Also:
TextChannel.retrieveWebhooks()
,Guild.retrieveWebhooks()
,JDA.retrieveWebhookById(String)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Webhook.ChannelReference
Partial Channel which references the source channel for a follower webhook.static class
Webhook.GuildReference
Partial Guild which references the source guild for a follower webhook.static class
Webhook.WebhookReference
-
Field Summary
Fields Modifier and Type Field Description static java.util.regex.Pattern
WEBHOOK_URL
Pattern for a Webhook URL.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description AuditableRestAction<java.lang.Void>
delete()
Deletes this Webhook.AuditableRestAction<java.lang.Void>
delete(java.lang.String token)
Deletes this Webhook.TextChannel
getChannel()
TheTextChannel
instance this Webhook is attached to.User
getDefaultUser()
The default User for this Webhook.Guild
getGuild()
TheGuild
instance for this Webhook.JDA
getJDA()
The JDA instance of this Webhook.WebhookManager
getManager()
TheWebhookManager
for this Webhook.java.lang.String
getName()
The name of this Webhook.Member
getOwner()
The owner of this Webhook.User
getOwnerAsUser()
The owner of this Webhook.Webhook.ChannelReference
getSourceChannel()
The source channel for a Webhook of typeFOLLOWER
.Webhook.GuildReference
getSourceGuild()
The source guild for a Webhook of typeFOLLOWER
.java.lang.String
getToken()
The execute token for this Webhook.WebhookType
getType()
TheWebhookType
of this webhook.java.lang.String
getUrl()
ThePOST
route for this Webhook.boolean
isPartial()
Whether this webhook cannot providegetChannel()
andgetGuild()
.-
Methods inherited from interface net.dv8tion.jda.api.entities.ISnowflake
getId, getIdLong, getTimeCreated
-
-
-
-
Field Detail
-
WEBHOOK_URL
static final java.util.regex.Pattern WEBHOOK_URL
Pattern for a Webhook URL.Groups
Index Name Description 0 N/A The entire link 1 id The ID of the webhook 2 token The token of the webhook Matcher.group(String)
and the index withMatcher.group(int)
.
-
-
Method Detail
-
getJDA
@Nonnull JDA getJDA()
The JDA instance of this Webhook.- Returns:
- The current JDA instance of this Webhook
-
getType
@Nonnull WebhookType getType()
- Returns:
- The
WebhookType
-
isPartial
boolean isPartial()
Whether this webhook cannot providegetChannel()
andgetGuild()
.
This means that the webhook is not local to this shard's cache and cannot provide full channel/guild references.- Returns:
- True, if
getChannel()
andgetGuild()
would throw
-
getGuild
@Nonnull Guild getGuild()
- Returns:
- The current Guild of this Webhook
- Throws:
java.lang.IllegalStateException
- If this webhooksis partial
-
getChannel
@Nonnull TextChannel getChannel()
TheTextChannel
instance this Webhook is attached to.- Returns:
- The current TextChannel of this Webhook
- Throws:
java.lang.IllegalStateException
- If this webhooksis partial
-
getOwner
@Nullable Member getOwner()
The owner of this Webhook. This will be null for some Webhooks, such as those retrieved from Audit Logs.
This requires the member to be cached. You can usegetOwnerAsUser()
to get a reference to the user instead.- Returns:
- Possibly-null
Member
instance representing the owner of this Webhook.
-
getOwnerAsUser
@Nullable User getOwnerAsUser()
The owner of this Webhook. This will be null for some Webhooks, such as those retrieved from Audit Logs.
This can be non-null even whengetOwner()
is null.getOwner()
requires the webhook to be local to this shard and in cache.- Returns:
- Possibly-null
User
instance representing the owner of this Webhook.
-
getDefaultUser
@Nonnull User getDefaultUser()
The default User for this Webhook.The
User
returned is always fake and cannot be interacted with.
This User is used for all messages posted to the Webhook route (found ingetUrl()
), it holds the default references for the message authors of messages by this Webhook.When
POST
ing to a Webhook route the name/avatar of this default user can be overridden.- Returns:
- A fake
User
instance representing the default webhook user. - See Also:
- Execute Webhook Docs
-
getName
@Nonnull java.lang.String getName()
The name of this Webhook.
This will be displayed by default as the author name of every message by this Webhook.This is a shortcut for
.getDefaultUser()
.getName()- Returns:
- The name of this Webhook
-
getToken
@Nullable java.lang.String getToken()
The execute token for this Webhook.
This can be used to modify/delete/execute this Webhook.Note: Some Webhooks, such as those retrieved from Audit Logs, do not contain a token
- Returns:
- The execute token for this Webhook
-
getUrl
@Nonnull java.lang.String getUrl()
ThePOST
route for this Webhook.
This contains thetoken
andid
of this Webhook. Some Webhooks without tokens (such as those retrieved from Audit Logs) will return a URL without a token.The route returned by this method does not need permission checks to be executed.
It is implied that Webhook messages always have all permissions includingmentioning everyone
.Webhook executions are limited with 5 requests per second. The response contains rate limit headers that should be handled by execution frameworks. (Learn More)
- Returns:
- The execution route for this Webhook.
-
getSourceChannel
@Nullable Webhook.ChannelReference getSourceChannel()
The source channel for a Webhook of typeFOLLOWER
.- Returns:
Webhook.ChannelReference
-
getSourceGuild
@Nullable Webhook.GuildReference getSourceGuild()
The source guild for a Webhook of typeFOLLOWER
.- Returns:
Webhook.GuildReference
-
delete
@Nonnull @CheckReturnValue AuditableRestAction<java.lang.Void> delete()
Deletes this Webhook.The following
ErrorResponses
are possible:MISSING_ACCESS
The delete was attempted after the account lost permission to view the channel.MISSING_PERMISSIONS
The delete was attempted after the account lostPermission.MANAGE_WEBHOOKS
in the channel.UNKNOWN_WEBHOOK
The delete was attempted after the Webhook had already been deleted.
- Returns:
AuditableRestAction
The rest action to delete this Webhook.- Throws:
InsufficientPermissionException
- If the Webhook does not have a token, such as the Webhooks retrieved from Audit Logs and the currently logged in account does not havePermission.MANAGE_WEBHOOKS
in this channel.
-
delete
@Nonnull @CheckReturnValue AuditableRestAction<java.lang.Void> delete(@Nonnull java.lang.String token)
Deletes this Webhook.The following
ErrorResponses
are possible:MISSING_ACCESS
The delete was attempted after the account lost permission to view the channel.MISSING_PERMISSIONS
The delete was attempted after the account lostPermission.MANAGE_WEBHOOKS
in the channel.UNKNOWN_WEBHOOK
The delete was attempted after the Webhook had already been deleted.INVALID_WEBHOOK_TOKEN
If the provided webhook token is not valid.
- Parameters:
token
- The webhook token (this is not the bot authorization token!)- Returns:
AuditableRestAction
The rest action to delete this Webhook.- Throws:
java.lang.IllegalArgumentException
- If the provided token is null- Since:
- 4.0.0
-
getManager
@Nonnull WebhookManager getManager()
TheWebhookManager
for this Webhook.
You can modify multiple fields in one request by chaining setters before callingRestAction.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
WebhookManager
for this Webhook - Throws:
InsufficientPermissionException
- If the currently logged in account does not havePermission.MANAGE_WEBHOOKS
-
-