Interface StageChannel
-
- All Superinterfaces:
AudioChannel,Channel,Comparable<GuildChannel>,Formattable,GuildChannel,ICategorizableChannel,ICopyableChannel,IInviteContainer,IMemberContainer,IMentionable,IPermissionContainer,IPositionableChannel,ISnowflake
public interface StageChannel extends GuildChannel, AudioChannel, ICategorizableChannel, ICopyableChannel, IPositionableChannel, IPermissionContainer, IMemberContainer, IInviteContainer
Represents a Stage Channel.This is a specialized AudioChannel that can be used to host events with speakers and listeners.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description RestAction<Void>cancelRequestToSpeak()Cancels theRequest-to-Speak.default ChannelAction<StageChannel>createCopy()Creates a copy of the specifiedGuildChannel.ChannelAction<StageChannel>createCopy(Guild guild)Creates a copy of the specifiedGuildChannelin the specifiedGuild.default StageInstanceActioncreateStageInstance(String topic)Create a newStageInstancefor this stage channel.StageChannelManagergetManager()Returns theChannelManagerfor this GuildChannel.StageInstancegetStageInstance()StageInstanceattached to this stage channel.default booleanisModerator(Member member)Whether this member is considered a moderator for this stage channel.RestAction<Void>requestToSpeak()Sends arequest-to-speakindicator to the stage instance moderators.-
Methods inherited from interface net.dv8tion.jda.api.entities.AudioChannel
getBitrate, getRegion, getRegionRaw
-
Methods inherited from interface net.dv8tion.jda.api.entities.Channel
formatTo, getAsMention, getJDA, getName, getType
-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface net.dv8tion.jda.api.entities.GuildChannel
delete, getGuild, getPermissionContainer
-
Methods inherited from interface net.dv8tion.jda.api.entities.ICategorizableChannel
getParentCategory, getParentCategoryId, getParentCategoryIdLong, isSynced
-
Methods inherited from interface net.dv8tion.jda.api.entities.IInviteContainer
createInvite, retrieveInvites
-
Methods inherited from interface net.dv8tion.jda.api.entities.IMemberContainer
getMembers
-
Methods inherited from interface net.dv8tion.jda.api.entities.IPermissionContainer
createPermissionOverride, getMemberPermissionOverrides, getPermissionOverride, getPermissionOverrides, getRolePermissionOverrides, putPermissionOverride, upsertPermissionOverride
-
Methods inherited from interface net.dv8tion.jda.api.entities.IPositionableChannel
getPosition, getPositionRaw
-
Methods inherited from interface net.dv8tion.jda.api.entities.ISnowflake
getId, getIdLong, getTimeCreated
-
-
-
-
Method Detail
-
getStageInstance
@Nullable StageInstance getStageInstance()
StageInstanceattached to this stage channel.This indicates whether a stage channel is currently "live".
- Returns:
- The
StageInstanceornullif this stage is not live
-
createStageInstance
@Nonnull @CheckReturnValue default StageInstanceAction createStageInstance(@Nonnull String topic)
Create a newStageInstancefor this stage channel.Possible
ErrorResponsesinclude:STAGE_ALREADY_OPEN
If there already is an activeStageInstancefor this channelUNKNOWN_CHANNEL
If the channel was deleted
- Parameters:
topic- The topic of this stage instance, must be 1-120 characters long- Returns:
StageInstanceAction- Throws:
InsufficientPermissionException- If the self member is not a stage moderator. (SeeisModerator(Member))IllegalArgumentException- If the topic is null, empty, or longer than 120 characters
-
isModerator
default boolean isModerator(@Nonnull Member member)
Whether this member is considered a moderator for this stage channel.
Moderators can modify theStage Instanceand promote speakers. To promote a speaker you can useGuildVoiceState.inviteSpeaker()orGuildVoiceState.approveSpeaker()if they have already raised their hand (indicated byGuildVoiceState.getRequestToSpeakTimestamp()). A stage moderator can move between speaker and audience without raising their hand. This can be done withGuild.requestToSpeak()andGuild.cancelRequestToSpeak()respectively.A member is considered a stage moderator if they have these permissions in the stage channel:
- Parameters:
member- The member to check- Returns:
- True, if the provided member is a stage moderator
- Throws:
IllegalArgumentException- If the provided member is null or not from this guild
-
createCopy
@Nonnull ChannelAction<StageChannel> createCopy(@Nonnull Guild guild)
Description copied from interface:ICopyableChannelCreates a copy of the specifiedGuildChannelin 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
ErrorResponsescaused by the returnedRestActioninclude the following:MISSING_PERMISSIONS
The channel could not be created due to a permission discrepancyMISSING_ACCESS
TheVIEW_CHANNELpermission was removed
- Specified by:
createCopyin interfaceICopyableChannel- Parameters:
guild- TheGuildto create the channel in- Returns:
- A specific
ChannelAction
This action allows to set fields for the new GuildChannel before creating it!
-
createCopy
@Nonnull default ChannelAction<StageChannel> createCopy()
Description copied from interface:ICopyableChannelCreates 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
ErrorResponsescaused by the returnedRestActioninclude the following:MISSING_PERMISSIONS
The channel could not be created due to a permission discrepancyMISSING_ACCESS
TheVIEW_CHANNELpermission was removed
- Specified by:
createCopyin interfaceICopyableChannel- Returns:
- A specific
ChannelAction
This action allows to set fields for the new GuildChannel before creating it!
-
getManager
@Nonnull StageChannelManager getManager()
Description copied from interface:GuildChannelReturns theChannelManagerfor 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().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.
- Specified by:
getManagerin interfaceAudioChannel- Specified by:
getManagerin interfaceGuildChannel- Specified by:
getManagerin interfaceICategorizableChannel- Specified by:
getManagerin interfaceIPermissionContainer- Specified by:
getManagerin interfaceIPositionableChannel- Returns:
- The ChannelManager of this GuildChannel
-
requestToSpeak
@Nonnull @CheckReturnValue RestAction<Void> requestToSpeak()
Sends arequest-to-speakindicator to the stage instance moderators.If the self member has
Permission.VOICE_MUTE_OTHERSthis will immediately promote them to speaker.- Returns:
RestAction- Throws:
IllegalStateException- If the self member is not currently connected to the channel- See Also:
cancelRequestToSpeak()
-
cancelRequestToSpeak
@Nonnull @CheckReturnValue RestAction<Void> cancelRequestToSpeak()
Cancels theRequest-to-Speak.
This can also be used to move back to the audience if you are currently a speaker.If there is no request to speak or the member is not currently connected to an active
StageInstance, this does nothing.- Returns:
RestAction- Throws:
IllegalStateException- If the self member is not currently connected to the channel- See Also:
requestToSpeak()
-
-