pub struct CreateChannel<'a> { /* private fields */ }
Expand description
A builder for creating a new GuildChannel
in a Guild
.
Except Self::name
, all fields are optional.
Implementations§
Source§impl<'a> CreateChannel<'a>
impl<'a> CreateChannel<'a>
Sourcepub fn new(name: impl Into<String>) -> Self
pub fn new(name: impl Into<String>) -> Self
Creates a builder with the given name, setting Self::kind
to ChannelType::Text
and
leaving all other fields empty.
Sourcepub fn name(self, name: impl Into<String>) -> Self
pub fn name(self, name: impl Into<String>) -> Self
Specify how to call this new channel, replacing the current value as set in Self::new
.
Note: Must be between 2 and 100 characters long.
Sourcepub fn kind(self, kind: ChannelType) -> Self
pub fn kind(self, kind: ChannelType) -> Self
Specify what type the channel is, whether it’s a text, voice, category or news channel.
Sourcepub fn category(self, id: impl Into<ChannelId>) -> Self
pub fn category(self, id: impl Into<ChannelId>) -> Self
Specify the category, the “parent” of this channel.
Only for ChannelType::Text
, ChannelType::Voice
, ChannelType::News
,
ChannelType::Stage
, ChannelType::Forum
Sourcepub fn topic(self, topic: impl Into<String>) -> Self
pub fn topic(self, topic: impl Into<String>) -> Self
Channel topic (0-1024 characters)
Only for ChannelType::Text
, ChannelType::News
, ChannelType::Forum
Sourcepub fn nsfw(self, b: bool) -> Self
pub fn nsfw(self, b: bool) -> Self
Specify if this channel is NSFW (18+)
Only for ChannelType::Text
, ChannelType::Voice
, ChannelType::News
,
ChannelType::Stage
, ChannelType::Forum
Sourcepub fn bitrate(self, rate: u32) -> Self
pub fn bitrate(self, rate: u32) -> Self
The bitrate (in bits) of the voice or stage channel; min 8000
For voice channels, normal servers can set bitrate up to 96000, servers with Boost level 1 can set up to 128000, servers with Boost level 2 can set up to 256000, and servers with Boost level 3 or the VIP_REGIONS guild feature can set up to 384000. For stage channels, bitrate can be set up to 64000.
Only for ChannelType::Voice
and ChannelType::Stage
Sourcepub fn user_limit(self, limit: u32) -> Self
pub fn user_limit(self, limit: u32) -> Self
Set how many users may occupy this voice channel
Only for ChannelType::Voice
and ChannelType::Stage
Sourcepub fn rate_limit_per_user(self, seconds: u16) -> Self
pub fn rate_limit_per_user(self, seconds: u16) -> Self
How many seconds must a user wait before sending another message.
Bots, or users with the MANAGE_MESSAGES
and/or MANAGE_CHANNELS
permissions are
exempt from this restriction.
Note: Must be between 0 and 21600 seconds (360 minutes or 6 hours).
Sourcepub fn permissions(
self,
perms: impl IntoIterator<Item = PermissionOverwrite>,
) -> Self
pub fn permissions( self, perms: impl IntoIterator<Item = PermissionOverwrite>, ) -> Self
A set of overwrites defining what a user or a user carrying a certain role can and cannot do.
§Example
Inheriting permissions from an existing channel:
use serenity::builder::CreateChannel;
use serenity::model::channel::{PermissionOverwrite, PermissionOverwriteType};
use serenity::model::id::UserId;
use serenity::model::permissions::Permissions;
// Assuming a guild has already been bound.
let permissions = vec![PermissionOverwrite {
allow: Permissions::VIEW_CHANNEL,
deny: Permissions::SEND_TTS_MESSAGES,
kind: PermissionOverwriteType::Member(UserId::new(1234)),
}];
let builder = CreateChannel::new("my_new_cool_channel").permissions(permissions);
guild.create_channel(&http, builder).await?;
Sourcepub fn audit_log_reason(self, reason: &'a str) -> Self
pub fn audit_log_reason(self, reason: &'a str) -> Self
Sets the request’s audit log reason.
Sourcepub fn rtc_region(self, rtc_region: String) -> Self
pub fn rtc_region(self, rtc_region: String) -> Self
Channel voice region id of the voice or stage channel, automatic when not set
Only for ChannelType::Voice
and ChannelType::Stage
Sourcepub fn video_quality_mode(self, video_quality_mode: VideoQualityMode) -> Self
pub fn video_quality_mode(self, video_quality_mode: VideoQualityMode) -> Self
The camera video quality mode of the voice channel
Only for ChannelType::Voice
and ChannelType::Stage
Sourcepub fn default_auto_archive_duration(
self,
default_auto_archive_duration: AutoArchiveDuration,
) -> Self
pub fn default_auto_archive_duration( self, default_auto_archive_duration: AutoArchiveDuration, ) -> Self
The default duration that the clients use (not the API) for newly created threads in the channel, in minutes, to automatically archive the thread after recent activity
Only for ChannelType::Text
, ChannelType::News
, ChannelType::Forum
Sourcepub fn default_reaction_emoji(self, default_reaction_emoji: ForumEmoji) -> Self
pub fn default_reaction_emoji(self, default_reaction_emoji: ForumEmoji) -> Self
Emoji to show in the add reaction button on a thread in a forum
Only for ChannelType::Forum
Set of tags that can be used in a forum channel
Only for ChannelType::Forum
Sourcepub fn default_sort_order(self, default_sort_order: SortOrder) -> Self
pub fn default_sort_order(self, default_sort_order: SortOrder) -> Self
The default sort order type used to order posts in forum channels
Only for ChannelType::Forum
Trait Implementations§
Source§impl Builder for CreateChannel<'_>
impl Builder for CreateChannel<'_>
Source§fn execute<'life0, 'async_trait>(
self,
cache_http: impl 'async_trait + CacheHttp,
ctx: Self::Context<'life0>,
) -> Pin<Box<dyn Future<Output = Result<Self::Built>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
self,
cache_http: impl 'async_trait + CacheHttp,
ctx: Self::Context<'life0>,
) -> Pin<Box<dyn Future<Output = Result<Self::Built>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Creates a new Channel
in the guild.
Note: Requires the Manage Channels permission.
§Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user
lacks permission. Otherwise returns Error::Http
, as well as if invalid data is given.
Source§type Context<'ctx> = GuildId
type Context<'ctx> = GuildId
type Built = GuildChannel
Source§impl<'a> Clone for CreateChannel<'a>
impl<'a> Clone for CreateChannel<'a>
Source§fn clone(&self) -> CreateChannel<'a>
fn clone(&self) -> CreateChannel<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more