Interface TextChannel
-
- All Superinterfaces:
Channel
,java.lang.Comparable<TextChannel>
,java.util.Formattable
,IMentionable
,ISnowflake
,MessageChannel
public interface TextChannel extends Channel, MessageChannel, java.lang.Comparable<TextChannel>, IMentionable
Represents a Discord Text Channel. SeeChannel
andMessageChannel
for more information.Internal implementation of this class is available at
TextChannelImpl
.
Note: Internal implementation should not be used directly.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description boolean
canTalk()
Whether we can send messages in this channel.boolean
canTalk(Member member)
Whether the specifiedMember
can send messages in this channel.default RestAction<java.lang.Void>
clearReactionsById(long messageId)
Attempts to remove all reactions from a message with the specifiedmessageId
in this TextChannel
This is useful for moderator commands that wish to remove all reactions at once from a specific message.RestAction<java.lang.Void>
clearReactionsById(java.lang.String messageId)
Attempts to remove all reactions from a message with the specifiedmessageId
in this TextChannel
This is useful for moderator commands that wish to remove all reactions at once from a specific message.WebhookAction
createWebhook(java.lang.String name)
Creates a newWebhook
.RestAction<java.lang.Void>
deleteMessages(java.util.Collection<Message> messages)
Bulk deletes a list of messages.RestAction<java.lang.Void>
deleteMessagesByIds(java.util.Collection<java.lang.String> messageIds)
Bulk deletes a list of messages.AuditableRestAction<java.lang.Void>
deleteWebhookById(java.lang.String id)
Deletes aWebhook
attached to this channel by theid
specified.default void
formatTo(java.util.Formatter formatter, int flags, int width, int precision)
int
getSlowmode()
The slowmode set for this TextChannel.java.lang.String
getTopic()
The topic set for this TextChannel.RestAction<java.util.List<Webhook>>
getWebhooks()
Retrieves theWebhooks
attached to this TextChannel.boolean
isNSFW()
Whether or not this channel is considered as "NSFW" (Not-Safe-For-Work)
This will check whether the name of this TextChannel begins withnsfw-
or is equal tonsfw
!default RestAction<java.lang.Void>
removeReactionById(long messageId, java.lang.String unicode, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.default RestAction<java.lang.Void>
removeReactionById(long messageId, Emote emote, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.RestAction<java.lang.Void>
removeReactionById(java.lang.String messageId, java.lang.String unicode, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.default RestAction<java.lang.Void>
removeReactionById(java.lang.String messageId, Emote emote, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.-
Methods inherited from interface net.dv8tion.jda.core.entities.Channel
createCopy, createCopy, createInvite, createPermissionOverride, createPermissionOverride, delete, getGuild, getInvites, getJDA, getManager, getMemberPermissionOverrides, getMembers, getName, getParent, getPermissionOverride, getPermissionOverride, getPermissionOverrides, getPosition, getPositionRaw, getRolePermissionOverrides, getType, putPermissionOverride, putPermissionOverride
-
Methods inherited from interface net.dv8tion.jda.core.entities.IMentionable
getAsMention
-
Methods inherited from interface net.dv8tion.jda.core.entities.ISnowflake
getCreationTime, getId, getIdLong
-
Methods inherited from interface net.dv8tion.jda.core.entities.MessageChannel
addReactionById, addReactionById, addReactionById, addReactionById, deleteMessageById, deleteMessageById, editMessageById, editMessageById, editMessageById, editMessageById, editMessageById, editMessageById, editMessageFormatById, editMessageFormatById, getHistory, getHistoryAfter, getHistoryAfter, getHistoryAfter, getHistoryAround, getHistoryAround, getHistoryAround, getHistoryBefore, getHistoryBefore, getHistoryBefore, getIterableHistory, getJDA, getLatestMessageId, getLatestMessageIdLong, getMessageById, getMessageById, getName, getPinnedMessages, getType, hasLatestMessage, pinMessageById, pinMessageById, purgeMessages, purgeMessages, purgeMessagesById, purgeMessagesById, purgeMessagesById, removeReactionById, removeReactionById, removeReactionById, removeReactionById, sendFile, sendFile, sendFile, sendFile, sendFile, sendFile, sendFile, sendFile, sendMessage, sendMessage, sendMessage, sendMessageFormat, sendTyping, unpinMessageById, unpinMessageById
-
-
-
-
Method Detail
-
getTopic
java.lang.String getTopic()
The topic set for this TextChannel.
If no topic has been set, this returns null.- Returns:
- Possibly-null String containing the topic of this TextChannel.
-
isNSFW
boolean isNSFW()
Whether or not this channel is considered as "NSFW" (Not-Safe-For-Work)
This will check whether the name of this TextChannel begins withnsfw-
or is equal tonsfw
!- Returns:
- True, If this TextChannel is considered NSFW by the official Discord Client
-
getSlowmode
int getSlowmode()
The slowmode set for this TextChannel.
If slowmode is set this returns anint
between 1 and 120. If not set this returns0
.Note that only
CLIENT
type accounts are affected by slowmode, and thatBOT
accounts are immune to the restrictions.
HavingMESSAGE_MANAGE
orMANAGE_CHANNEL
permission also grants immunity to slowmode.- Returns:
- The slowmode for this TextChannel, between 1 and 120, or
0
if no slowmode is set.
-
getWebhooks
@CheckReturnValue RestAction<java.util.List<Webhook>> getWebhooks()
Retrieves theWebhooks
attached to this TextChannel.Possible ErrorResponses include:
UNKNOWN_CHANNEL
if this channel was deletedMISSING_ACCESS
if we were removed from the guild
- Returns:
RestAction
- Type: List<Webhook
>
An immutable list of Webhook attached to this channel
-
createWebhook
@CheckReturnValue WebhookAction createWebhook(java.lang.String name)
Creates a newWebhook
.Possible
ErrorResponses
caused by the returnedRestAction
include the following:MISSING_PERMISSIONS
The webhook could not be created due to a permission discrepancyMISSING_ACCESS
We were removed from the Guild before finishing the task
- Parameters:
name
- The default name for the new Webhook.- Returns:
- A specific
WebhookAction
This action allows to set fields for the new webhook before creating it - Throws:
PermissionException
- If you do not hold the permissionManage Webhooks
java.lang.IllegalArgumentException
- If the provided name isnull
, blank or not between 2-100 characters in length
-
deleteMessages
@CheckReturnValue RestAction<java.lang.Void> deleteMessages(java.util.Collection<Message> messages)
Bulk deletes a list of messages. This is not the same as callingMessage.delete()
in a loop.
This is much more efficient, but it has a different ratelimit. You may call this once per second per Guild.Must be at least 2 messages and not be more than 100 messages at a time.
If you only have 1 message, use theMessage.delete()
method instead.You must have the Permission
MESSAGE_MANAGE
in this channel to use this function.This method is best used when using
MessageHistory
to delete a large amount of messages. If you have a large amount of messages but only their message Ids, please usedeleteMessagesByIds(Collection)
Possible ErrorResponses include:
UNKNOWN_CHANNEL
if this channel was deletedUNKNOWN_MESSAGE
if any of the provided messages does not existMISSING_ACCESS
if we were removed from the guildMISSING_PERMISSIONS
The send request was attempted after the account lostPermission.MESSAGE_MANAGE
in the channel.
- Parameters:
messages
- The collection of messages to delete.- Returns:
AuditableRestAction
- Throws:
java.lang.IllegalArgumentException
- If the size of the list less than 2 or more than 100 messages.InsufficientPermissionException
- If this account does not havePermission.MESSAGE_MANAGE
- See Also:
deleteMessagesByIds(Collection)
,MessageChannel.purgeMessages(List)
-
deleteMessagesByIds
@CheckReturnValue RestAction<java.lang.Void> deleteMessagesByIds(java.util.Collection<java.lang.String> messageIds)
Bulk deletes a list of messages. This is not the same as callingMessageChannel.deleteMessageById(String)
in a loop.
This is much more efficient, but it has a different ratelimit. You may call this once per second per Guild.Must be at least 2 messages and not be more than 100 messages at a time.
If you only have 1 message, use theMessage.delete()
method instead.You must have
Permission.MESSAGE_MANAGE
in this channel to use this function.This method is best used when you have a large amount of messages but only their message Ids. If you are using
MessageHistory
or haveMessage
objects, it would be easier to usedeleteMessages(java.util.Collection)
.Possible ErrorResponses include:
UNKNOWN_CHANNEL
if this channel was deletedUNKNOWN_MESSAGE
if any of the provided messages does not existMISSING_ACCESS
if we were removed from the guildMISSING_PERMISSIONS
The send request was attempted after the account lostPermission.MESSAGE_MANAGE
in the channel.
- Parameters:
messageIds
- The message ids for the messages to delete.- Returns:
AuditableRestAction
- Throws:
java.lang.IllegalArgumentException
- If the size of the list less than 2 or more than 100 messages.java.lang.NumberFormatException
- If any of the provided ids cannot be parsed byLong.parseLong(String)
InsufficientPermissionException
- If this account does not havePermission.MESSAGE_MANAGE
- See Also:
deleteMessages(Collection)
,MessageChannel.purgeMessagesById(List)
-
deleteWebhookById
@CheckReturnValue AuditableRestAction<java.lang.Void> deleteWebhookById(java.lang.String id)
Deletes aWebhook
attached to this channel by theid
specified.Possible ErrorResponses include:
ErrorResponse.UNKNOWN_WEBHOOK
The provided id does not refer to a WebHook present in this TextChannel, either due to it not existing or having already been deleted.UNKNOWN_CHANNEL
if this channel was deletedMISSING_ACCESS
if we were removed from the guildMISSING_PERMISSIONS
The send request was attempted after the account lostPermission.MANAGE_WEBHOOKS
in the channel.
- Parameters:
id
- The not-null id for the target Webhook.- Returns:
AuditableRestAction
- Throws:
java.lang.IllegalArgumentException
- If the providedid
isnull
or empty.InsufficientPermissionException
- If the currently logged in account does not havePermission.MANAGE_WEBHOOKS
in this channel.
-
clearReactionsById
@CheckReturnValue RestAction<java.lang.Void> clearReactionsById(java.lang.String messageId)
Attempts to remove all reactions from a message with the specifiedmessageId
in this TextChannel
This is useful for moderator commands that wish to remove all reactions at once from a specific message.The following
ErrorResponses
are possible:MISSING_ACCESS
The clear-reactions request was attempted after the account lost access to theTextChannel
due toPermission.MESSAGE_READ
being revoked, or the account lost access to theGuild
orGroup
typically due to being kicked or removed.MISSING_PERMISSIONS
The clear-reactions request was attempted after the account lostPermission.MESSAGE_MANAGE
in theTextChannel
when adding the reaction.UNKNOWN_MESSAGE
The clear-reactions request was attempted after the Message had been deleted.
- Parameters:
messageId
- The not-empty valid message id- Returns:
AuditableRestAction
- Throws:
InsufficientPermissionException
- If the currently logged in account does not havePermission.MESSAGE_MANAGE
in this channel.java.lang.IllegalArgumentException
- If the providedid
isnull
or empty.
-
clearReactionsById
@CheckReturnValue default RestAction<java.lang.Void> clearReactionsById(long messageId)
Attempts to remove all reactions from a message with the specifiedmessageId
in this TextChannel
This is useful for moderator commands that wish to remove all reactions at once from a specific message.The following
ErrorResponses
are possible:MISSING_ACCESS
The clear-reactions request was attempted after the account lost access to theTextChannel
due toPermission.MESSAGE_READ
being revoked, or the account lost access to theGuild
orGroup
typically due to being kicked or removed.MISSING_PERMISSIONS
The clear-reactions request was attempted after the account lostPermission.MESSAGE_MANAGE
in theTextChannel
when adding the reaction.UNKNOWN_MESSAGE
The clear-reactions request was attempted after the Message had been deleted.
- Parameters:
messageId
- The message id- Returns:
AuditableRestAction
- Throws:
InsufficientPermissionException
- If the currently logged in account does not havePermission.MESSAGE_MANAGE
in this channel.
-
removeReactionById
@CheckReturnValue RestAction<java.lang.Void> removeReactionById(java.lang.String messageId, java.lang.String unicode, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.The unicode provided has to be a unicode representation of the emoji that is supposed to be represented by the Reaction.
To retrieve the characters needed you can use an api or the official discord client by escaping the emoji (\:emoji-name:) and copying the resulting emoji from the sent message.This method encodes the provided unicode for you. Do not encode the emoji before providing the unicode.
The following
ErrorResponses
are possible:MISSING_ACCESS
The request was attempted after the account lost access to theGuild
orGroup
typically due to being kicked or removed, or afterPermission.MESSAGE_READ
was revoked in theTextChannel
Also can happen if the account lost thePermission.MESSAGE_HISTORY
MISSING_PERMISSIONS
The request was attempted after the account lostPermission.MESSAGE_ADD_REACTION
in theTextChannel
.ErrorResponse.UNKNOWN_EMOJI
The provided unicode character does not refer to a known emoji unicode character.
Proper unicode characters for emojis can be found at http://unicode.org/emoji/charts/full-emoji-list.htmlUNKNOWN_MESSAGE
The providedmessageId
is unknown in this MessageChannel, either due to the id being invalid, or the message it referred to has already been deleted.UNKNOWN_CHANNEL
The request was attempted after the channel was deleted.
- Parameters:
messageId
- The messageId to remove the reaction fromunicode
- The unicode characters of the emojiuser
- The target user of which to remove from- Returns:
RestAction
- Throws:
java.lang.IllegalArgumentException
-- If provided
messageId
isnull
or empty. - If provided
unicode
isnull
or empty.
- If provided
InsufficientPermissionException
- If the currently logged in account does not havePermission.MESSAGE_MANAGE
in this channel.
-
removeReactionById
@CheckReturnValue default RestAction<java.lang.Void> removeReactionById(long messageId, java.lang.String unicode, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.The unicode provided has to be a unicode representation of the emoji that is supposed to be represented by the Reaction.
To retrieve the characters needed you can use an api or the official discord client by escaping the emoji (\:emoji-name:) and copying the resulting emoji from the sent message.This method encodes the provided unicode for you. Do not encode the emoji before providing the unicode.
The following
ErrorResponses
are possible:MISSING_ACCESS
The request was attempted after the account lost access to theGuild
orGroup
typically due to being kicked or removed, or afterPermission.MESSAGE_READ
was revoked in theTextChannel
Also can happen if the account lost thePermission.MESSAGE_HISTORY
MISSING_PERMISSIONS
The request was attempted after the account lostPermission.MESSAGE_ADD_REACTION
in theTextChannel
.ErrorResponse.UNKNOWN_EMOJI
The provided unicode character does not refer to a known emoji unicode character.
Proper unicode characters for emojis can be found at http://unicode.org/emoji/charts/full-emoji-list.htmlUNKNOWN_MESSAGE
The providedmessageId
is unknown in this MessageChannel, either due to the id being invalid, or the message it referred to has already been deleted.UNKNOWN_CHANNEL
The request was attempted after the channel was deleted.
- Parameters:
messageId
- The messageId to remove the reaction fromunicode
- The unicode characters of the emojiuser
- The target user of which to remove from- Returns:
RestAction
- Throws:
java.lang.IllegalArgumentException
-- If provided
messageId
isnull
or empty. - If provided
unicode
isnull
or empty.
- If provided
InsufficientPermissionException
- If the currently logged in account does not havePermission.MESSAGE_MANAGE
in this channel.
-
removeReactionById
@CheckReturnValue default RestAction<java.lang.Void> removeReactionById(java.lang.String messageId, Emote emote, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.An Emote is not the same as an emoji!
Emotes are custom guild-specific images unlike global unicode emojis!The following
ErrorResponses
are possible:MISSING_ACCESS
The request was attempted after the account lost access to theGuild
orGroup
typically due to being kicked or removed, or afterPermission.MESSAGE_READ
was revoked in theTextChannel
Also can happen if the account lost thePermission.MESSAGE_HISTORY
MISSING_PERMISSIONS
The request was attempted after the account lostPermission.MESSAGE_ADD_REACTION
in theTextChannel
.ErrorResponse.UNKNOWN_EMOJI
The provided unicode character does not refer to a known emoji unicode character.
Proper unicode characters for emojis can be found at http://unicode.org/emoji/charts/full-emoji-list.htmlUNKNOWN_MESSAGE
The providedmessageId
is unknown in this MessageChannel, either due to the id being invalid, or the message it referred to has already been deleted.UNKNOWN_CHANNEL
The request was attempted after the channel was deleted.
- Parameters:
messageId
- The messageId to remove the reaction fromemote
- The emote to removeuser
- The target user of which to remove from- Returns:
RestAction
- Throws:
java.lang.IllegalArgumentException
-- If provided
messageId
isnull
or empty. - If provided
emote
isnull
.
- If provided
InsufficientPermissionException
- If the currently logged in account does not havePermission.MESSAGE_MANAGE
in this channel.
-
removeReactionById
@CheckReturnValue default RestAction<java.lang.Void> removeReactionById(long messageId, Emote emote, User user)
Attempts to remove the reaction from a message represented by the specifiedmessageId
in this MessageChannel.An Emote is not the same as an emoji!
Emotes are custom guild-specific images unlike global unicode emojis!The following
ErrorResponses
are possible:MISSING_ACCESS
The request was attempted after the account lost access to theGuild
orGroup
typically due to being kicked or removed, or afterPermission.MESSAGE_READ
was revoked in theTextChannel
Also can happen if the account lost thePermission.MESSAGE_HISTORY
MISSING_PERMISSIONS
The request was attempted after the account lostPermission.MESSAGE_ADD_REACTION
in theTextChannel
.ErrorResponse.UNKNOWN_EMOJI
The provided unicode character does not refer to a known emoji unicode character.
Proper unicode characters for emojis can be found at http://unicode.org/emoji/charts/full-emoji-list.htmlUNKNOWN_MESSAGE
The providedmessageId
is unknown in this MessageChannel, either due to the id being invalid, or the message it referred to has already been deleted.UNKNOWN_CHANNEL
The request was attempted after the channel was deleted.
- Parameters:
messageId
- The messageId to remove the reaction fromemote
- The emote to removeuser
- The target user of which to remove from- Returns:
RestAction
- Throws:
java.lang.IllegalArgumentException
-- If provided
messageId
isnull
or empty. - If provided
emote
isnull
.
- If provided
InsufficientPermissionException
- If the currently logged in account does not havePermission.MESSAGE_MANAGE
in this channel.
-
canTalk
boolean canTalk()
Whether we can send messages in this channel.
This is an overload ofcanTalk(Member)
with the SelfMember.
Checks for bothPermission.MESSAGE_READ
andPermission.MESSAGE_WRITE
.- Returns:
- True, if we are able to read and send messages in this channel
-
canTalk
boolean canTalk(Member member)
Whether the specifiedMember
can send messages in this channel.
Checks for bothPermission.MESSAGE_READ
andPermission.MESSAGE_WRITE
.- Parameters:
member
- The Member to check- Returns:
- True, if the specified member is able to read and send messages in this channel
-
formatTo
default void formatTo(java.util.Formatter formatter, int flags, int width, int precision)
- Specified by:
formatTo
in interfacejava.util.Formattable
- Specified by:
formatTo
in interfaceIMentionable
- Specified by:
formatTo
in interfaceMessageChannel
-
-