Struct serenity::model::GuildChannel
[−]
[src]
pub struct GuildChannel { pub id: ChannelId, pub bitrate: Option<u64>, pub guild_id: GuildId, pub kind: ChannelType, pub last_message_id: Option<MessageId>, pub last_pin_timestamp: Option<String>, pub name: String, pub permission_overwrites: Vec<PermissionOverwrite>, pub position: i64, pub topic: Option<String>, pub user_limit: Option<u64>, }
Represents a guild's voice or text channel. Some methods are available only for voice channels and some are only available for text channels.
Fields
id: ChannelId
Channel's Id. Default channel shares the Id with the guild it is in.
bitrate: Option<u64>
Bitrate of channel. Only available for voice channels.
guild_id: GuildId
Id of the guild the channel is located in.
kind: ChannelType
Type of the channel.
last_message_id: Option<MessageId>
The Id of last message sent. It lets client determine if channel has unread messages.
last_pin_timestamp: Option<String>
Timestamp of the latest pinned message.
name: String
Channel name. Voice and text channels have different limitations for this.
permission_overwrites: Vec<PermissionOverwrite>
Permission overwrites for members and roles.
position: i64
Position of a channel.
topic: Option<String>
Text channel topic.
user_limit: Option<u64>
Max amount of members allowed in a voice channel.
Methods
impl GuildChannel
[src]
fn ack<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
Marks the channel as being read up to a certain Message
.
Refer to the documentation for rest::ack_message
for more
information.
Errors
If the cache
is enabled, returns a
ClientError::InvalidOperationAsBot
if the current user is a bot
user.
fn broadcast_typing(&self) -> Result<()>
Broadcasts to the channel that the current user is typing.
For bots, this is a good indicator for long-running commands.
Note: Requires the Send Messages permission.
Errors
Returns a ClientError::InvalidPermissions
if the current user does
not have the required permissions.
fn create_invite<F>(&self, f: F) -> Result<RichInvite> where F: FnOnce(CreateInvite) -> CreateInvite
Creates an invite leading to the given channel.
Examples
Create an invite that can only be used 5 times:
let invite = channel.create_invite(|i| i.max_uses(5));
fn create_permission(&self, target: PermissionOverwrite) -> Result<()>
Creates a permission overwrite for either a
single Member
or Role
within a Channel
.
Refer to the documentation for PermissionOverwrite
s for more
information.
Requires the Manage Channels permission.
Examples
Creating a permission overwrite for a member by specifying the
PermissionOverwrite::Member
variant, allowing it the [Send Messages]
permission, but denying the Send TTS Messages and Attach Files
permissions:
use serenity::client::CACHE; use serenity::model::{ChannelId, PermissionOverwrite, permissions}; let channel_id = 7; let user_id = 8; let allow = permissions::SEND_MESSAGES; let deny = permissions::SEND_TTS_MESSAGES | permissions::ATTACH_FILES; let overwrite = PermissionOverwrite { allow: allow, deny: deny, kind: PermissionOverwriteType::Member(user_id), }; let cache = CACHE.read().unwrap(); let channel = cache.get_guild_channel(channel_id).unwrap(); let _ = channel.create_permission(overwrite);
Creating a permission overwrite for a role by specifying the
PermissionOverwrite::Role
variant, allowing it the Manage Webhooks
permission, but denying the Send TTS Messages and Attach Files
permissions:
use serenity::client::CACHE; use serenity::model::{ChannelId, PermissionOverwrite, permissions}; let channel_id = 7; let user_id = 8; let allow = permissions::SEND_MESSAGES; let deny = permissions::SEND_TTS_MESSAGES | permissions::ATTACH_FILES; let overwrite = PermissionOverwrite { allow: allow, deny: deny, kind: PermissionOverwriteType::Member(user_id), }; let cache = CACHE.read().unwrap(); let channel = cache.get_guild_channel(channel_id).unwrap(); let _ = channel.create_permission(overwrite);
fn delete(&self) -> Result<Channel>
Deletes this channel, returning the channel on a successful deletion.
fn delete_messages(&self, message_ids: &[MessageId]) -> Result<()>
Deletes all messages by Ids from the given vector in the channel.
Refer to Channel::delete_messages
for more information.
Requires the Manage Messages permission.
Note: This uses bulk delete endpoint which is not available for user accounts.
Note: Messages that are older than 2 weeks can't be deleted using this method.
fn delete_permission(&self,
permission_type: PermissionOverwriteType)
-> Result<()>
permission_type: PermissionOverwriteType)
-> Result<()>
Deletes all permission overrides in the channel from a member or role.
Note: Requires the Manage Channel permission.
fn delete_reaction<M, R>(&self,
message_id: M,
user_id: Option<UserId>,
reaction_type: R)
-> Result<()> where M: Into<MessageId>, R: Into<ReactionType>
message_id: M,
user_id: Option<UserId>,
reaction_type: R)
-> Result<()> where M: Into<MessageId>, R: Into<ReactionType>
Deletes the given Reaction
from the channel.
Note: Requires the Manage Messages permission, if the current user did not perform the reaction.
fn edit<F>(&mut self, f: F) -> Result<()> where F: FnOnce(EditChannel) -> EditChannel
Modifies a channel's settings, such as its position or name.
Refer to EditChannel
s documentation for a full list of methods.
Examples
Change a voice channels name and bitrate:
channel.edit(|c| c.name("test").bitrate(86400));
fn get_invites(&self) -> Result<Vec<RichInvite>>
Gets all of the channel's invites.
Requires the Manage Channels permission.
fn get_message<M: Into<MessageId>>(&self, message_id: M) -> Result<Message>
Gets a message from the channel.
Requires the Read Message History permission.
fn get_messages<F>(&self, f: F) -> Result<Vec<Message>> where F: FnOnce(GetMessages) -> GetMessages
Gets messages from the channel.
Refer to Channel::get_messages
for more information.
Requires the Read Message History permission.
fn get_reaction_users<M, R, U>(&self,
message_id: M,
reaction_type: R,
limit: Option<u8>,
after: Option<U>)
-> Result<Vec<User>> where M: Into<MessageId>, R: Into<ReactionType>, U: Into<UserId>
message_id: M,
reaction_type: R,
limit: Option<u8>,
after: Option<U>)
-> Result<Vec<User>> where M: Into<MessageId>, R: Into<ReactionType>, U: Into<UserId>
Gets the list of User
s who have reacted to a Message
with a
certain Emoji
.
Refer to Channel::get_reaction_users
for more information.
Note: Requires the Read Message History permission.
fn get_webhooks(&self) -> Result<Vec<Webhook>>
Retrieves the channel's webhooks.
Note: Requires the Manage Webhooks permission.
fn guild(&self) -> Option<Guild>
Attempts to find this channel's guild in the Cache.
Note: Right now this performs a clone of the guild. This will be optimized in the future.
fn pin<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
Pins a [Message
] to the channel.
fn pins(&self) -> Result<Vec<Message>>
Gets all channel's pins.
fn search<F: FnOnce(Search) -> Search>(&self, f: F) -> Result<SearchResult>
Performs a search request for the channel's Message
s.
Refer to the documentation for the Search
builder for examples and
more information.
Note: Bot users can not search.
Errors
If the cache
is enabled, returns a
ClientError::InvalidOperationAsBot
if the current user is a bot.
fn send_message(&self, content: &str) -> Result<Message>
Sends a message to the channel with the given content.
Note: This will only work when a Message
is received.
Note: Requires the Send Messages permission.
Errors
Returns a ClientError::MessageTooLong
if the content of the message
is over the above limit, containing the number of unicode code points
over the limit.
Returns a ClientError::InvalidPermissions
if the current user does
not have the required permissions.
fn unpin<M: Into<MessageId>>(&self, message_id: M) -> Result<()>
Unpins a Message
in the channel given by its Id.
Requires the Manage Messages permission.
Trait Implementations
impl Display for GuildChannel
[src]
impl Clone for GuildChannel
[src]
fn clone(&self) -> GuildChannel
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more