Interface ForumChannel
- All Superinterfaces:
Channel
,Comparable<GuildChannel>
,Formattable
,GuildChannel
,IAgeRestrictedChannel
,ICategorizableChannel
,ICopyableChannel
,IInviteContainer
,IMemberContainer
,IMentionable
,IPermissionContainer
,IPositionableChannel
,ISlowmodeChannel
,ISnowflake
,IThreadContainer
,IWebhookContainer
,StandardGuildChannel
Forum Posts
.
Forum posts are simply
ThreadChannels
of type ChannelType.GUILD_PUBLIC_THREAD
.
The CREATE POSTS
permission that is shown in the official Discord Client, is an alias for Permission.MESSAGE_SEND
.
Permission.CREATE_PUBLIC_THREADS
is ignored for creating forum posts.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The maximum length of a forum topic (4096)static final int
The maximum number oftags
that can be applied to a forum post.Fields inherited from interface net.dv8tion.jda.api.entities.channel.Channel
MAX_NAME_LENGTH
Fields inherited from interface net.dv8tion.jda.api.entities.channel.middleman.GuildChannel
JUMP_URL
Fields inherited from interface net.dv8tion.jda.api.entities.channel.attribute.ISlowmodeChannel
MAX_SLOWMODE
-
Method Summary
Modifier and TypeMethodDescriptiondefault ChannelAction<ForumChannel>
Creates a copy of the specifiedGuildChannel
.createCopy
(Guild guild) Creates a copy of the specifiedGuildChannel
in the specifiedGuild
.createForumPost
(String name, MessageCreateData message) Creates a new forum post (thread) in this forum.default ForumTag
getAvailableTagById
(long id) Retrieves the tag for the provided id.default ForumTag
Retrieves the tag for the provided id.The availableForumTags
for this forum channel.The availableForumTags
for this forum channel.getAvailableTagsByName
(String name, boolean ignoreCase) The availableForumTags
for this forum channel.The emoji which will show up on new forum posts as default reaction.Returns theChannelManager
for this GuildChannel.getTopic()
The topic set for this channel, this is referred to as Guidelines in the official Discord client.default ChannelType
getType()
TheChannelType
for this channeldefault boolean
Whether all new forum posts must have a tag.Methods inherited from interface net.dv8tion.jda.api.entities.channel.Channel
formatTo, getAsMention, getFlags, getJDA, getName
Methods inherited from interface java.lang.Comparable
compareTo
Methods inherited from interface net.dv8tion.jda.api.entities.channel.middleman.GuildChannel
delete, getGuild, getJumpUrl, getPermissionContainer
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IAgeRestrictedChannel
isNSFW
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.ICategorizableChannel
getParentCategory, getParentCategoryId, getParentCategoryIdLong, isSynced
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IInviteContainer
createInvite, retrieveInvites
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IMemberContainer
getMembers
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IPermissionContainer
getMemberPermissionOverrides, getPermissionOverride, getPermissionOverrides, getRolePermissionOverrides, upsertPermissionOverride
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IPositionableChannel
getPosition, getPositionRaw
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.ISlowmodeChannel
getSlowmode
Methods inherited from interface net.dv8tion.jda.api.entities.ISnowflake
getId, getIdLong, getTimeCreated
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IThreadContainer
createThreadChannel, createThreadChannel, createThreadChannel, createThreadChannel, getDefaultThreadSlowmode, getThreadChannels, retrieveArchivedPrivateJoinedThreadChannels, retrieveArchivedPrivateThreadChannels, retrieveArchivedPublicThreadChannels
Methods inherited from interface net.dv8tion.jda.api.entities.channel.attribute.IWebhookContainer
createWebhook, deleteWebhookById, retrieveWebhooks
-
Field Details
-
MAX_FORUM_TOPIC_LENGTH
static final int MAX_FORUM_TOPIC_LENGTHThe maximum length of a forum topic (4096)- See Also:
-
MAX_POST_TAGS
static final int MAX_POST_TAGSThe maximum number oftags
that can be applied to a forum post. (5)- See Also:
-
-
Method Details
-
getType
Description copied from interface:Channel
TheChannelType
for this channel -
getManager
Description copied from interface:GuildChannel
Returns theChannelManager
for this GuildChannel.
In the ChannelManager, you can modify the name, topic and position of this GuildChannel. You modify multiple fields in one request by chaining setters before callingRestAction.queue()
.- Specified by:
getManager
in interfaceGuildChannel
- Specified by:
getManager
in interfaceICategorizableChannel
- Specified by:
getManager
in interfaceIPermissionContainer
- Specified by:
getManager
in interfaceIPositionableChannel
- Specified by:
getManager
in interfaceStandardGuildChannel
- Returns:
- The ChannelManager of this GuildChannel
-
createCopy
Description copied from interface:ICopyableChannel
Creates a copy of the specifiedGuildChannel
in the specifiedGuild
.
If the provided target guild is not the same Guild this channel is in then the parent category and permissions will not be copied due to technical difficulty and ambiguity.This copies the following elements:
- Name
- Parent Category (if present)
- Voice Elements (Bitrate, Userlimit)
- Text Elements (Topic, NSFW, Slowmode)
- All permission overrides for Members/Roles
Possible
ErrorResponses
caused by the returnedRestAction
include the following:MISSING_PERMISSIONS
The channel could not be created due to a permission discrepancyMISSING_ACCESS
TheVIEW_CHANNEL
permission was removed
- Specified by:
createCopy
in interfaceICopyableChannel
- Specified by:
createCopy
in interfaceStandardGuildChannel
- Parameters:
guild
- TheGuild
to create the channel in- Returns:
- A specific
ChannelAction
This action allows to set fields for the new GuildChannel before creating it!
-
createCopy
Description copied from interface:ICopyableChannel
Creates a copy of the specifiedGuildChannel
.This copies the following elements:
- Name
- Parent Category (if present)
- Voice Elements (Bitrate, Userlimit)
- Text Elements (Topic, NSFW, Slowmode)
- All permission overrides for Members/Roles
Possible
ErrorResponses
caused by the returnedRestAction
include the following:MISSING_PERMISSIONS
The channel could not be created due to a permission discrepancyMISSING_ACCESS
TheVIEW_CHANNEL
permission was removed
- Specified by:
createCopy
in interfaceICopyableChannel
- Specified by:
createCopy
in interfaceStandardGuildChannel
- Returns:
- A specific
ChannelAction
This action allows to set fields for the new GuildChannel before creating it!
-
getAvailableTagCache
The availableForumTags
for this forum channel.
Tags are sorted by theirposition
ascending.This requires
CacheFlag.FORUM_TAGS
to be enabled.- Returns:
SortedSnowflakeCacheView
ofForumTag
-
getAvailableTags
The availableForumTags
for this forum channel.
Tags are sorted by theirposition
ascending.This is a shortcut for
getAvailableTagCache().asList()
. This method will copy the underlying cache into the list, running inO(n)
time.This requires
CacheFlag.FORUM_TAGS
to be enabled. -
getAvailableTagsByName
The availableForumTags
for this forum channel.
Tags are sorted by theirposition
ascending.This is a shortcut for
getAvailableTagCache().getElementsByName(name, ignoreCase)
. This method will copy the underlying cache into the list, running inO(n)
time.This requires
CacheFlag.FORUM_TAGS
to be enabled.- Parameters:
name
- The name of the tagignoreCase
- Whether to useString.equalsIgnoreCase(String)
- Returns:
- Immutable
List
ofForumTag
with the given name - Throws:
IllegalArgumentException
- If the name isnull
-
getAvailableTagById
Retrieves the tag for the provided id.This requires
CacheFlag.FORUM_TAGS
to be enabled.- Parameters:
id
- The tag id- Returns:
- The tag for the provided id, or
null
if no tag with that id exists - See Also:
-
getAvailableTagById
Retrieves the tag for the provided id.This requires
CacheFlag.FORUM_TAGS
to be enabled.- Parameters:
id
- The tag id- Returns:
- The tag for the provided id, or
null
if no tag with that id exists - Throws:
IllegalArgumentException
- If the provided id is nullNumberFormatException
- If the provided id is not a valid snowflake- See Also:
-
getTopic
The topic set for this channel, this is referred to as Guidelines in the official Discord client.
If no topic has been set, this returns null.- Returns:
- Possibly-null String containing the topic of this channel.
-
isTagRequired
default boolean isTagRequired()Whether all new forum posts must have a tag.- Returns:
- True, if all new posts must have a tag.
-
getDefaultReaction
The emoji which will show up on new forum posts as default reaction.- Returns:
- The default reaction for new forum posts.
-
createForumPost
@Nonnull @Incubating @CheckReturnValue ForumPostAction createForumPost(@Nonnull String name, @Nonnull MessageCreateData message) Creates a new forum post (thread) in this forum.Possible
ErrorResponses
include:UNKNOWN_CHANNEL
If the forum channel was deletedREQUEST_ENTITY_TOO_LARGE
If the total sum of uploaded bytes exceeds the guild'supload limit
- Parameters:
name
- The name of the post (up to 100 characters)message
- The starting message of the post (seeMessageCreateBuilder
)- Returns:
ForumPostAction
- Throws:
InsufficientPermissionException
- If the bot does not havePermission.MESSAGE_SEND
in the channelIllegalArgumentException
-- If null is provided
- If the name is empty or longer than 100 characters
-