#[non_exhaustive]pub struct Guild {Show 45 fields
pub afk_channel_id: Option<ChannelId>,
pub afk_timeout: u64,
pub application_id: Option<ApplicationId>,
pub channels: HashMap<ChannelId, Channel>,
pub default_message_notifications: DefaultMessageNotificationLevel,
pub emojis: HashMap<EmojiId, Emoji>,
pub explicit_content_filter: ExplicitContentFilter,
pub features: Vec<String>,
pub icon: Option<String>,
pub id: GuildId,
pub joined_at: Timestamp,
pub large: bool,
pub member_count: u64,
pub members: HashMap<UserId, Member>,
pub mfa_level: MfaLevel,
pub name: String,
pub owner_id: UserId,
pub presences: HashMap<UserId, Presence>,
pub roles: HashMap<RoleId, Role>,
pub splash: Option<String>,
pub discovery_splash: Option<String>,
pub system_channel_id: Option<ChannelId>,
pub system_channel_flags: SystemChannelFlags,
pub rules_channel_id: Option<ChannelId>,
pub public_updates_channel_id: Option<ChannelId>,
pub verification_level: VerificationLevel,
pub voice_states: HashMap<UserId, VoiceState>,
pub description: Option<String>,
pub premium_tier: PremiumTier,
pub premium_subscription_count: u64,
pub banner: Option<String>,
pub vanity_url_code: Option<String>,
pub preferred_locale: String,
pub welcome_screen: Option<GuildWelcomeScreen>,
pub approximate_member_count: Option<u64>,
pub approximate_presence_count: Option<u64>,
pub nsfw_level: NsfwLevel,
pub max_video_channel_users: Option<u64>,
pub max_presences: Option<u64>,
pub max_members: Option<u64>,
pub widget_enabled: Option<bool>,
pub widget_channel_id: Option<ChannelId>,
pub stage_instances: Vec<StageInstance>,
pub threads: Vec<GuildChannel>,
pub stickers: HashMap<StickerId, Sticker>,
}
Expand description
Information about a Discord guild, such as channels, emojis, etc.
Fields (Non-exhaustive)
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.afk_channel_id: Option<ChannelId>
Id of a voice channel that’s considered the AFK channel.
afk_timeout: u64
The amount of seconds a user can not show any activity in a voice channel before being moved to an AFK channel – if one exists.
application_id: Option<ApplicationId>
Application ID of the guild creator if it is bot-created.
channels: HashMap<ChannelId, Channel>
All voice and text channels contained within a guild.
This contains all channels regardless of permissions (i.e. the ability of the bot to read from or connect to them).
default_message_notifications: DefaultMessageNotificationLevel
Indicator of whether notifications for all messages are enabled by default in the guild.
emojis: HashMap<EmojiId, Emoji>
All of the guild’s custom emojis.
explicit_content_filter: ExplicitContentFilter
Default explicit content filter level.
features: Vec<String>
The guild features. More information available at
discord documentation
.
The following is a list of known features:
ANIMATED_ICON
BANNER
COMMERCE
COMMUNITY
DISCOVERABLE
FEATURABLE
INVITE_SPLASH
MEMBER_VERIFICATION_GATE_ENABLED
MONETIZATION_ENABLED
MORE_STICKERS
NEWS
PARTNERED
PREVIEW_ENABLED
PRIVATE_THREADS
ROLE_ICONS
SEVEN_DAY_THREAD_ARCHIVE
THREE_DAY_THREAD_ARCHIVE
TICKETED_EVENTS_ENABLED
VANITY_URL
VERIFIED
VIP_REGIONS
WELCOME_SCREEN_ENABLED
THREE_DAY_THREAD_ARCHIVE
SEVEN_DAY_THREAD_ARCHIVE
PRIVATE_THREADS
icon: Option<String>
The hash of the icon used by the guild.
In the client, this appears on the guild list on the left-hand side.
id: GuildId
The unique Id identifying the guild.
This is equivalent to the Id of the default role (@everyone
) and also
that of the default channel (typically #general
).
joined_at: Timestamp
The date that the current user joined the guild.
large: bool
Indicator of whether the guild is considered “large” by Discord.
member_count: u64
The number of members in the guild.
members: HashMap<UserId, Member>
Users who are members of the guild.
Members might not all be available when the ReadyEvent
is received
if the Self::member_count
is greater than the LARGE_THRESHOLD
set by
the library.
mfa_level: MfaLevel
Indicator of whether the guild requires multi-factor authentication for
Role
s or User
s with moderation permissions.
name: String
The name of the guild.
owner_id: UserId
The Id of the User
who owns the guild.
presences: HashMap<UserId, Presence>
A mapping of User
s’ Ids to their current presences.
Note: This will be empty unless the “guild presences” privileged intent is enabled.
roles: HashMap<RoleId, Role>
A mapping of the guild’s roles.
splash: Option<String>
An identifying hash of the guild’s splash icon.
If the InviteSplash
feature is enabled, this can be used to generate
a URL to a splash image.
discovery_splash: Option<String>
An identifying hash of the guild discovery’s splash icon.
Note: Only present for guilds with the DISCOVERABLE
feature.
system_channel_id: Option<ChannelId>
The ID of the channel to which system messages are sent.
system_channel_flags: SystemChannelFlags
System channel flags.
rules_channel_id: Option<ChannelId>
The id of the channel where rules and/or guidelines are displayed.
Note: Only available on COMMUNITY
guild, see Self::features
.
public_updates_channel_id: Option<ChannelId>
The id of the channel where admins and moderators of Community guilds receive notices from Discord.
Note: Only available on COMMUNITY
guild, see Self::features
.
verification_level: VerificationLevel
Indicator of the current verification level of the guild.
voice_states: HashMap<UserId, VoiceState>
A mapping of User
s to their current voice state.
description: Option<String>
The server’s description, if it has one.
The server’s premium boosting level.
The total number of users currently boosting this server.
The guild’s banner, if it has one.
vanity_url_code: Option<String>
The vanity url code for the guild, if it has one.
preferred_locale: String
The preferred locale of this guild only set if guild has the “DISCOVERABLE” feature, defaults to en-US.
welcome_screen: Option<GuildWelcomeScreen>
The welcome screen of the guild.
Note: Only available on COMMUNITY
guild, see Self::features
.
approximate_member_count: Option<u64>
Approximate number of members in this guild.
approximate_presence_count: Option<u64>
Approximate number of non-offline members in this guild.
nsfw_level: NsfwLevel
The guild NSFW state. See discord support article
.
max_video_channel_users: Option<u64>
The maximum amount of users in a video channel.
max_presences: Option<u64>
The maximum number of presences for the guild. The default value is currently 25000.
Note: It is in effect when it is None
.
max_members: Option<u64>
The maximum number of members for the guild.
widget_enabled: Option<bool>
Whether or not the guild widget is enabled.
widget_channel_id: Option<ChannelId>
The channel id that the widget will generate an invite to, or null if set to no invite
stage_instances: Vec<StageInstance>
The stage instances in this guild.
threads: Vec<GuildChannel>
All active threads in this guild that current user has permission to view.
stickers: HashMap<StickerId, Sticker>
All of the guild’s custom stickers.
Implementations
sourceimpl Guild
impl Guild
sourcepub async fn automod_rules(self, http: impl AsRef<Http>) -> Result<Vec<Rule>>
Available on crate feature model
only.
pub async fn automod_rules(self, http: impl AsRef<Http>) -> Result<Vec<Rule>>
model
only.Gets all auto moderation Rule
s of this guild via HTTP.
Note: Requires the Manage Guild permission.
Errors
Returns an Error::Http
if the guild is unavailable.
sourcepub async fn automod_rule(
self,
http: impl AsRef<Http>,
rule_id: impl Into<RuleId>
) -> Result<Rule>
Available on crate feature model
only.
pub async fn automod_rule(
self,
http: impl AsRef<Http>,
rule_id: impl Into<RuleId>
) -> Result<Rule>
model
only.Gets an auto moderation Rule
of this guild by its ID via HTTP.
Note: Requires the Manage Guild permission.
Errors
Returns an Error::Http
if a rule with the given ID does not exist.
sourcepub async fn create_automod_rule(
self,
http: impl AsRef<Http>,
f: impl FnOnce(&mut EditAutoModRule) -> &mut EditAutoModRule
) -> Result<Rule>
Available on crate feature model
only.
pub async fn create_automod_rule(
self,
http: impl AsRef<Http>,
f: impl FnOnce(&mut EditAutoModRule) -> &mut EditAutoModRule
) -> Result<Rule>
model
only.Creates an auto moderation Rule
in the guild.
Note: Requires the Manage Guild permission.
Examples
Create a custom keyword filter to block the message and timeout the author.
use serenity::model::guild::automod::{Action, Trigger};
use serenity::model::id::GuildId;
let _rule = guild
.create_automod_rule(&http, |r| {
r.name("foobar filter")
.trigger(Trigger::Keyword(vec!["foo*".to_string(), "*bar".to_string()]))
.actions(vec![Action::BlockMessage, Action::Timeout(60)])
})
.await;
Errors
Returns Error::Http
if the current user lacks permission,
or if invalid values are set.
sourcepub async fn edit_automod_rule(
self,
http: impl AsRef<Http>,
rule_id: impl Into<RuleId>,
f: impl FnOnce(&mut EditAutoModRule) -> &mut EditAutoModRule
) -> Result<Rule>
Available on crate feature model
only.
pub async fn edit_automod_rule(
self,
http: impl AsRef<Http>,
rule_id: impl Into<RuleId>,
f: impl FnOnce(&mut EditAutoModRule) -> &mut EditAutoModRule
) -> Result<Rule>
model
only.Edit an auto moderation Rule
by its ID.
Note: Requires the Manage Guild permission.
Errors
Returns Error::Http
if the current user lacks permission,
or if invalid values are set.
sourcepub async fn delete_automod_rule(
self,
http: impl AsRef<Http>,
rule_id: impl Into<RuleId>
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_automod_rule(
self,
http: impl AsRef<Http>,
rule_id: impl Into<RuleId>
) -> Result<()>
model
only.Deletes an auto moderation Rule
from the guild.
Note: Requires the Manage Guild permission.
Errors
Returns Error::Http
if the current user lacks permission,
or if a rule with that Id does not exist.
sourcepub async fn default_channel(&self, uid: UserId) -> Option<&GuildChannel>
Available on crate feature model
only.
pub async fn default_channel(&self, uid: UserId) -> Option<&GuildChannel>
model
only.Returns the “default” channel of the guild for the passed user id.
(This returns the first channel that can be read by the user, if there isn’t one,
returns None
)
sourcepub fn default_channel_guaranteed(&self) -> Option<&GuildChannel>
Available on crate feature model
only.
pub fn default_channel_guaranteed(&self) -> Option<&GuildChannel>
model
only.Returns the guaranteed “default” channel of the guild.
(This returns the first channel that can be read by everyone, if there isn’t one,
returns None
)
Note: This is very costly if used in a server with lots of channels, members, or both.
pub fn channel_id_from_name(
&self,
cache: impl AsRef<Cache>,
name: impl AsRef<str>
) -> Option<ChannelId>
model
and cache
only.sourcepub async fn ban(
&self,
cache_http: impl CacheHttp,
user: impl Into<UserId>,
dmd: u8
) -> Result<()>
Available on crate feature model
only.
pub async fn ban(
&self,
cache_http: impl CacheHttp,
user: impl Into<UserId>,
dmd: u8
) -> Result<()>
model
only.Ban a User
from the guild, deleting a number of
days’ worth of messages (dmd
) between the range 0 and 7.
Refer to the documentation for Guild::ban
for more information.
Note: Requires the Ban Members permission.
Examples
Ban a member and remove all messages they’ve sent in the last 4 days:
// assumes a `user` and `guild` have already been bound
let _ = guild.ban(user, 4);
Errors
Returns a ModelError::DeleteMessageDaysAmount
if the number of
days’ worth of messages to delete is over the maximum.
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to perform bans, or may
return a ModelError::Hierarchy
if the member to be banned has a
higher role than the current user.
Otherwise returns Error::Http
if the member cannot be banned.
sourcepub async fn ban_with_reason(
&self,
cache_http: impl CacheHttp,
user: impl Into<UserId>,
dmd: u8,
reason: impl AsRef<str>
) -> Result<()>
Available on crate feature model
only.
pub async fn ban_with_reason(
&self,
cache_http: impl CacheHttp,
user: impl Into<UserId>,
dmd: u8,
reason: impl AsRef<str>
) -> Result<()>
model
only.Ban a User
from the guild with a reason. Refer to Self::ban
to further documentation.
Errors
In addition to the possible reasons Self::ban
may return an error, an Error::ExceededLimit
may also be returned if the reason is too long.
Available on crate feature model
only.
model
only.Returns the formatted URL of the guild’s banner image, if one exists.
sourcepub async fn bans(&self, cache_http: impl CacheHttp) -> Result<Vec<Ban>>
Available on crate feature model
only.
pub async fn bans(&self, cache_http: impl CacheHttp) -> Result<Vec<Ban>>
model
only.Retrieves a list of Ban
s for the guild.
Note: Requires the Ban Members permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to perform bans.
sourcepub async fn add_member(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
f: impl FnOnce(&mut AddMember) -> &mut AddMember
) -> Result<Option<Member>>
Available on crate feature model
only.
pub async fn add_member(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
f: impl FnOnce(&mut AddMember) -> &mut AddMember
) -> Result<Option<Member>>
model
only.Adds a User
to this guild with a valid OAuth2 access token.
Returns the created Member
object, or nothing if the user is already a member of the guild.
Errors
Returns Error::Http
if the current user lacks permission,
or if invalid values are set.
sourcepub async fn audit_logs(
&self,
http: impl AsRef<Http>,
action_type: Option<u8>,
user_id: Option<UserId>,
before: Option<AuditLogEntryId>,
limit: Option<u8>
) -> Result<AuditLogs>
Available on crate feature model
only.
pub async fn audit_logs(
&self,
http: impl AsRef<Http>,
action_type: Option<u8>,
user_id: Option<UserId>,
before: Option<AuditLogEntryId>,
limit: Option<u8>
) -> Result<AuditLogs>
model
only.Retrieves a list of AuditLogs
for the guild.
Note: Requires the View Audit Log permission.
Errors
Returns Error::Http
if the current user does not have permission
to view the audit log, or if an invalid value is given.
sourcepub async fn channels(
&self,
http: impl AsRef<Http>
) -> Result<HashMap<ChannelId, GuildChannel>>
Available on crate feature model
only.
pub async fn channels(
&self,
http: impl AsRef<Http>
) -> Result<HashMap<ChannelId, GuildChannel>>
model
only.Gets all of the guild’s channels over the REST API.
Errors
Returns Error::Http
if the guild is currently unavailable.
sourcepub async fn create(
http: impl AsRef<Http>,
name: &str,
icon: Option<&str>
) -> Result<PartialGuild>
Available on crate feature model
only.
pub async fn create(
http: impl AsRef<Http>,
name: &str,
icon: Option<&str>
) -> Result<PartialGuild>
model
only.Creates a guild with the data provided.
Only a PartialGuild
will be immediately returned, and a full
Guild
will be received over a Shard
.
Note: This endpoint is usually only available for user accounts. Refer to Discord’s information for the endpoint here for more information. If you require this as a bot, re-think what you are doing and if it really needs to be doing this.
Examples
Create a guild called "test"
in the [US West region] with no icon:
use serenity::model::Guild;
let _guild = Guild::create_guild(&http, "test", None).await;
Errors
Returns Error::Http
if the current user cannot create a Guild.
sourcepub async fn create_channel(
&self,
cache_http: impl CacheHttp,
f: impl FnOnce(&mut CreateChannel) -> &mut CreateChannel
) -> Result<GuildChannel>
Available on crate feature model
only.
pub async fn create_channel(
&self,
cache_http: impl CacheHttp,
f: impl FnOnce(&mut CreateChannel) -> &mut CreateChannel
) -> Result<GuildChannel>
model
only.Creates a new Channel
in the guild.
Note: Requires the Manage Channels permission.
Examples
use serenity::model::ChannelType;
// assuming a `guild` has already been bound
let _ = guild
.create_channel(&http, |c| c.name("my-test-channel").kind(ChannelType::Text))
.await;
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to manage channels.
Otherwise will return Error::Http
if the current user lacks permission.
sourcepub async fn create_emoji(
&self,
http: impl AsRef<Http>,
name: &str,
image: &str
) -> Result<Emoji>
Available on crate feature model
only.
pub async fn create_emoji(
&self,
http: impl AsRef<Http>,
name: &str,
image: &str
) -> Result<Emoji>
model
only.Creates an emoji in the guild with a name and base64-encoded image. The
utils::read_image
function is provided for you as a simple method to
read an image and encode it into base64, if you are reading from the
filesystem.
The name of the emoji must be at least 2 characters long and can only contain alphanumeric characters and underscores.
Requires the Manage Emojis and Stickers permission.
Examples
See the EditProfile::avatar
example for an in-depth example as to
how to read an image from the filesystem and encode it as base64. Most
of the example can be applied similarly for this method.
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn create_integration<I>(
&self,
http: impl AsRef<Http>,
integration_id: impl Into<IntegrationId>,
kind: &str
) -> Result<()>
Available on crate feature model
only.
pub async fn create_integration<I>(
&self,
http: impl AsRef<Http>,
integration_id: impl Into<IntegrationId>,
kind: &str
) -> Result<()>
model
only.Creates an integration for the guild.
Requires the Manage Guild permission.
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn create_application_command<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
Available on crate feature model
only.
pub async fn create_application_command<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
model
only.sourcepub async fn set_application_commands<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<Vec<Command>> where
F: FnOnce(&mut CreateApplicationCommands) -> &mut CreateApplicationCommands,
Available on crate feature model
only.
pub async fn set_application_commands<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<Vec<Command>> where
F: FnOnce(&mut CreateApplicationCommands) -> &mut CreateApplicationCommands,
model
only.Overrides all guild application commands.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn create_application_command_permission<F>(
&self,
http: impl AsRef<Http>,
command_id: CommandId,
f: F
) -> Result<CommandPermission> where
F: FnOnce(&mut CreateApplicationCommandPermissionsData) -> &mut CreateApplicationCommandPermissionsData,
Available on crate feature model
only.
pub async fn create_application_command_permission<F>(
&self,
http: impl AsRef<Http>,
command_id: CommandId,
f: F
) -> Result<CommandPermission> where
F: FnOnce(&mut CreateApplicationCommandPermissionsData) -> &mut CreateApplicationCommandPermissionsData,
model
only.Creates a guild specific CommandPermission
.
Note: It will update instantly.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn set_application_commands_permissions<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<Vec<CommandPermission>> where
F: FnOnce(&mut CreateApplicationCommandsPermissions) -> &mut CreateApplicationCommandsPermissions,
Available on crate feature model
only.
pub async fn set_application_commands_permissions<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<Vec<CommandPermission>> where
F: FnOnce(&mut CreateApplicationCommandsPermissions) -> &mut CreateApplicationCommandsPermissions,
model
only.Overrides all application commands permissions.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn get_application_commands(
&self,
http: impl AsRef<Http>
) -> Result<Vec<Command>>
Available on crate feature model
only.
pub async fn get_application_commands(
&self,
http: impl AsRef<Http>
) -> Result<Vec<Command>>
model
only.Get all guild application commands.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn get_application_command(
&self,
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<Command>
Available on crate feature model
only.
pub async fn get_application_command(
&self,
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<Command>
model
only.Get a specific guild application command by its Id.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn edit_application_command<F>(
&self,
http: impl AsRef<Http>,
command_id: CommandId,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
Available on crate feature model
only.
pub async fn edit_application_command<F>(
&self,
http: impl AsRef<Http>,
command_id: CommandId,
f: F
) -> Result<Command> where
F: FnOnce(&mut CreateApplicationCommand) -> &mut CreateApplicationCommand,
model
only.Edit guild application command by its Id.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn delete_application_command(
&self,
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_application_command(
&self,
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<()>
model
only.Delete guild application command by its Id.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn get_application_commands_permissions(
&self,
http: impl AsRef<Http>
) -> Result<Vec<CommandPermission>>
Available on crate feature model
only.
pub async fn get_application_commands_permissions(
&self,
http: impl AsRef<Http>
) -> Result<Vec<CommandPermission>>
model
only.Get all guild application commands permissions only.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn get_application_command_permissions(
&self,
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<CommandPermission>
Available on crate feature model
only.
pub async fn get_application_command_permissions(
&self,
http: impl AsRef<Http>,
command_id: CommandId
) -> Result<CommandPermission>
model
only.Get permissions for specific guild application command by its Id.
Errors
If there is an error, it will be either Error::Http
or Error::Json
.
sourcepub async fn create_role<F>(
&self,
cache_http: impl CacheHttp,
f: F
) -> Result<Role> where
F: FnOnce(&mut EditRole) -> &mut EditRole,
Available on crate feature model
only.
pub async fn create_role<F>(
&self,
cache_http: impl CacheHttp,
f: F
) -> Result<Role> where
F: FnOnce(&mut EditRole) -> &mut EditRole,
model
only.Creates a new role in the guild with the data set, if any.
Note: Requires the Manage Roles permission.
Examples
Create a role which can be mentioned, with the name ‘test’:
// assuming a `guild` has been bound
let role = guild.create_role(&http, |r| r.hoist(true).name("role")).await;
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to manage roles.
Otherwise will return Error::Http
if the current user does
not have permission.
sourcepub async fn create_scheduled_event<F>(
&self,
cache_http: impl CacheHttp,
f: F
) -> Result<ScheduledEvent> where
F: FnOnce(&mut CreateScheduledEvent) -> &mut CreateScheduledEvent,
Available on crate feature model
only.
pub async fn create_scheduled_event<F>(
&self,
cache_http: impl CacheHttp,
f: F
) -> Result<ScheduledEvent> where
F: FnOnce(&mut CreateScheduledEvent) -> &mut CreateScheduledEvent,
model
only.Creates a new scheduled event in the guild with the data set, if any.
Note: Requires the Manage Events permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user
does not have permission to manage scheduled events.
Otherwise will return Error::Http
if the current user does not have permission.
sourcepub async fn create_sticker<'a, F>(
&self,
cache_http: impl CacheHttp,
f: F
) -> Result<Sticker> where
for<'b> F: FnOnce(&'b mut CreateSticker<'a>) -> &'b mut CreateSticker<'a>,
Available on crate feature model
only.
pub async fn create_sticker<'a, F>(
&self,
cache_http: impl CacheHttp,
f: F
) -> Result<Sticker> where
for<'b> F: FnOnce(&'b mut CreateSticker<'a>) -> &'b mut CreateSticker<'a>,
model
only.Creates a new sticker in the guild with the data set, if any.
Note: Requires the Manage Emojis and Stickers permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to manage roles.
sourcepub async fn delete(&self, cache_http: impl CacheHttp) -> Result<PartialGuild>
Available on crate feature model
only.
pub async fn delete(&self, cache_http: impl CacheHttp) -> Result<PartialGuild>
model
only.Deletes the current guild if the current user is the owner of the guild.
Note: Requires the current user to be the owner of the guild.
Errors
If the cache
is enabled, then returns a ModelError::InvalidUser
if the current user is not the guild owner.
Otherwise returns Error::Http
if the current user is not the
owner of the guild.
sourcepub async fn delete_emoji(
&self,
http: impl AsRef<Http>,
emoji_id: impl Into<EmojiId>
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_emoji(
&self,
http: impl AsRef<Http>,
emoji_id: impl Into<EmojiId>
) -> Result<()>
model
only.Deletes an Emoji
from the guild.
Requires the Manage Emojis and Stickers permission.
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn delete_integration(
&self,
http: impl AsRef<Http>,
integration_id: impl Into<IntegrationId>
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_integration(
&self,
http: impl AsRef<Http>,
integration_id: impl Into<IntegrationId>
) -> Result<()>
model
only.Deletes an integration by Id from the guild.
Requires the Manage Guild permission.
Errors
Returns an Error::Http
if the current user lacks permission,
or if an Integration with that Id does not exist.
sourcepub async fn delete_role(
&self,
http: impl AsRef<Http>,
role_id: impl Into<RoleId>
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_role(
&self,
http: impl AsRef<Http>,
role_id: impl Into<RoleId>
) -> Result<()>
model
only.Deletes a Role
by Id from the guild.
Also see Role::delete
if you have the cache
and model
features
enabled.
Requires the Manage Roles permission.
Errors
Returns Error::Http
if the current user lacks permission
to delete the role.
sourcepub async fn delete_scheduled_event(
&self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_scheduled_event(
&self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>
) -> Result<()>
model
only.Deletes a Scheduled Event by Id from the guild.
Requires the Manage Events permission.
Errors
Returns Error::Http
if the current user lacks permission to delete the scheduled event.
sourcepub async fn delete_sticker(
&self,
http: impl AsRef<Http>,
sticker_id: impl Into<StickerId>
) -> Result<()>
Available on crate feature model
only.
pub async fn delete_sticker(
&self,
http: impl AsRef<Http>,
sticker_id: impl Into<StickerId>
) -> Result<()>
model
only.Deletes a Sticker
by Id from the guild.
Requires the Manage Emojis and Stickers permission.
Errors
Returns Error::Http
if the current user lacks permission
to delete the sticker.
sourcepub async fn edit<F>(&mut self, cache_http: impl CacheHttp, f: F) -> Result<()> where
F: FnOnce(&mut EditGuild) -> &mut EditGuild,
Available on crate feature model
only.
pub async fn edit<F>(&mut self, cache_http: impl CacheHttp, f: F) -> Result<()> where
F: FnOnce(&mut EditGuild) -> &mut EditGuild,
model
only.Edits the current guild with new data where specified.
Refer to EditGuild
’s documentation for a full list of methods.
Note: Requires the current user to have the Manage Guild permission.
Examples
Change a guild’s icon using a file name “icon.png”:
use serenity::utils;
// We are using read_image helper function from utils.
let base64_icon = utils::read_image("./icon.png")
.expect("Failed to read image");
guild.edit(|g| g.icon(base64_icon));
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to edit the guild.
Otherwise will return Error::Http
if the current user does not have
permission.
sourcepub async fn edit_emoji(
&self,
http: impl AsRef<Http>,
emoji_id: impl Into<EmojiId>,
name: &str
) -> Result<Emoji>
Available on crate feature model
only.
pub async fn edit_emoji(
&self,
http: impl AsRef<Http>,
emoji_id: impl Into<EmojiId>,
name: &str
) -> Result<Emoji>
model
only.Edits an Emoji
’s name in the guild.
Also see Emoji::edit
if you have the cache
and model
features
enabled.
Requires the Manage Emojis and Stickers permission.
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn edit_member<F>(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
f: F
) -> Result<Member> where
F: FnOnce(&mut EditMember) -> &mut EditMember,
Available on crate feature model
only.
pub async fn edit_member<F>(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
f: F
) -> Result<Member> where
F: FnOnce(&mut EditMember) -> &mut EditMember,
model
only.Edits the properties of member of the guild, such as muting or nicknaming them. Returns the new member.
Refer to EditMember
’s documentation for a full list of methods and
permission restrictions.
Examples
Mute a member and set their roles to just one role with a predefined Id:
guild.edit_member(user_id, |m| m.mute(true).roles(&vec![role_id]));
Errors
Returns Error::Http
if the current user lacks the necessary permissions.
sourcepub async fn edit_nickname(
&self,
cache_http: impl CacheHttp,
new_nickname: Option<&str>
) -> Result<()>
Available on crate feature model
only.
pub async fn edit_nickname(
&self,
cache_http: impl CacheHttp,
new_nickname: Option<&str>
) -> Result<()>
model
only.Edits the current user’s nickname for the guild.
Pass None
to reset the nickname.
Note: Requires the Change Nickname permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to change their own
nickname.
Otherwise will return Error::Http
if the current user lacks permission.
sourcepub async fn edit_role<F>(
&self,
http: impl AsRef<Http>,
role_id: impl Into<RoleId>,
f: F
) -> Result<Role> where
F: FnOnce(&mut EditRole) -> &mut EditRole,
Available on crate feature model
only.
pub async fn edit_role<F>(
&self,
http: impl AsRef<Http>,
role_id: impl Into<RoleId>,
f: F
) -> Result<Role> where
F: FnOnce(&mut EditRole) -> &mut EditRole,
model
only.Edits a role, optionally setting its fields.
Requires the Manage Roles permission.
Examples
Make a role hoisted:
guild.edit_role(&context, RoleId(7), |r| r.hoist(true));
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn edit_role_position(
&self,
http: impl AsRef<Http>,
role_id: impl Into<RoleId>,
position: u64
) -> Result<Vec<Role>>
Available on crate feature model
only.
pub async fn edit_role_position(
&self,
http: impl AsRef<Http>,
role_id: impl Into<RoleId>,
position: u64
) -> Result<Vec<Role>>
model
only.Edits the order of Role
s
Requires the Manage Roles permission.
Examples
Change the order of a role:
use serenity::model::id::RoleId;
guild.edit_role_position(&context, RoleId(8), 2);
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn edit_scheduled_event<F>(
&self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
f: F
) -> Result<ScheduledEvent> where
F: FnOnce(&mut EditScheduledEvent) -> &mut EditScheduledEvent,
Available on crate feature model
only.
pub async fn edit_scheduled_event<F>(
&self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
f: F
) -> Result<ScheduledEvent> where
F: FnOnce(&mut EditScheduledEvent) -> &mut EditScheduledEvent,
model
only.Modifies a scheduled event in the guild with the data set, if any.
Note: Requires the Manage Events permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user
does not have permission to manage roles.
Otherwise will return Error::Http
if the current user does not have permission.
sourcepub async fn edit_sticker<F>(
&self,
http: impl AsRef<Http>,
sticker_id: impl Into<StickerId>,
f: F
) -> Result<Sticker> where
F: FnOnce(&mut EditSticker) -> &mut EditSticker,
Available on crate feature model
only.
pub async fn edit_sticker<F>(
&self,
http: impl AsRef<Http>,
sticker_id: impl Into<StickerId>,
f: F
) -> Result<Sticker> where
F: FnOnce(&mut EditSticker) -> &mut EditSticker,
model
only.Edits a sticker, optionally setting its fields.
Requires the Manage Emojis and Stickers permission.
Examples
Rename a sticker:
guild.edit_sticker(&context, StickerId(7), |r| r.name("Bun bun meow"));
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn edit_welcome_screen<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<GuildWelcomeScreen> where
F: FnOnce(&mut EditGuildWelcomeScreen) -> &mut EditGuildWelcomeScreen,
Available on crate feature model
only.
pub async fn edit_welcome_screen<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<GuildWelcomeScreen> where
F: FnOnce(&mut EditGuildWelcomeScreen) -> &mut EditGuildWelcomeScreen,
model
only.Edits the GuildWelcomeScreen
.
Errors
Returns an Error::Http
if some mandatory fields are not provided.
sourcepub async fn edit_widget<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<GuildWidget> where
F: FnOnce(&mut EditGuildWidget) -> &mut EditGuildWidget,
Available on crate feature model
only.
pub async fn edit_widget<F>(
&self,
http: impl AsRef<Http>,
f: F
) -> Result<GuildWidget> where
F: FnOnce(&mut EditGuildWidget) -> &mut EditGuildWidget,
model
only.Edits the GuildWidget
.
Errors
Returns an Error::Http
if the bot does not have the MANAGE_GUILD
permission.
sourcepub async fn get(
http: impl AsRef<Http>,
guild_id: impl Into<GuildId>
) -> Result<PartialGuild>
Available on crate feature model
only.
pub async fn get(
http: impl AsRef<Http>,
guild_id: impl Into<GuildId>
) -> Result<PartialGuild>
model
only.Gets a partial amount of guild data by its Id.
Note: This will not be a Guild
, as the REST API does not send
all data with a guild retrieval.
Errors
Returns an Error::Http
if the current user is not in the guild.
sourcepub fn greater_member_hierarchy(
&self,
cache: impl AsRef<Cache>,
lhs_id: impl Into<UserId>,
rhs_id: impl Into<UserId>
) -> Option<UserId>
Available on crate features model
and cache
only.
pub fn greater_member_hierarchy(
&self,
cache: impl AsRef<Cache>,
lhs_id: impl Into<UserId>,
rhs_id: impl Into<UserId>
) -> Option<UserId>
model
and cache
only.Returns which of two User
s has a higher Member
hierarchy.
Hierarchy is essentially who has the Role
with the highest
position
.
Returns None
if at least one of the given users’ member instances
is not present. Returns None
if the users have the same hierarchy, as
neither are greater than the other.
If both user IDs are the same, None
is returned. If one of the users
is the guild owner, their ID is returned.
sourcepub fn icon_url(&self) -> Option<String>
Available on crate feature model
only.
pub fn icon_url(&self) -> Option<String>
model
only.Returns the formatted URL of the guild’s icon, if one exists.
This will produce a WEBP image URL, or GIF if the guild has a GIF icon.
sourcepub async fn emojis(&self, http: impl AsRef<Http>) -> Result<Vec<Emoji>>
Available on crate feature model
only.
pub async fn emojis(&self, http: impl AsRef<Http>) -> Result<Vec<Emoji>>
model
only.sourcepub async fn emoji(
&self,
http: impl AsRef<Http>,
emoji_id: EmojiId
) -> Result<Emoji>
Available on crate feature model
only.
pub async fn emoji(
&self,
http: impl AsRef<Http>,
emoji_id: EmojiId
) -> Result<Emoji>
model
only.Gets an Emoji
of this guild by its ID via HTTP.
Errors
Returns an Error::Http
if an emoji with that Id does not exist
in the guild, or if the guild is unavailable.
May also return Error::Json
if there is an error in deserializing
the API response.
sourcepub async fn integrations(
&self,
http: impl AsRef<Http>
) -> Result<Vec<Integration>>
Available on crate feature model
only.
pub async fn integrations(
&self,
http: impl AsRef<Http>
) -> Result<Vec<Integration>>
model
only.Gets all integration of the guild.
Note: Requires the Manage Guild permission.
Errors
Returns Error::Http
if the current user does not have permission
to see integrations.
May also return Error::Json
if there is an error in deserializing
the API response.
sourcepub async fn invites(
&self,
cache_http: impl CacheHttp
) -> Result<Vec<RichInvite>>
Available on crate feature model
only.
pub async fn invites(
&self,
cache_http: impl CacheHttp
) -> Result<Vec<RichInvite>>
model
only.Retrieves the active invites for the guild.
Note: Requires the Manage Guild permission.
Errors
If the cache
is enabled, returns ModelError::InvalidPermissions
if the current user does not have permission to see invites.
Otherwise will return Error::Http
if the current user does not have
permission.
sourcepub fn is_large(&self) -> bool
Available on crate feature model
only.
pub fn is_large(&self) -> bool
model
only.Checks if the guild is ‘large’. A guild is considered large if it has more than 250 members.
sourcepub async fn kick(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>
) -> Result<()>
Available on crate feature model
only.
pub async fn kick(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>
) -> Result<()>
model
only.Kicks a Member
from the guild.
Requires the Kick Members permission.
Errors
Returns Error::Http
if the member cannot be kicked by
the current user.
sourcepub async fn kick_with_reason(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
reason: &str
) -> Result<()>
Available on crate feature model
only.
pub async fn kick_with_reason(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
reason: &str
) -> Result<()>
model
only.Errors
In addition to the reasons Self::kick
may return an error,
may also return an error if the reason is too long.
sourcepub async fn leave(&self, http: impl AsRef<Http>) -> Result<()>
Available on crate feature model
only.
pub async fn leave(&self, http: impl AsRef<Http>) -> Result<()>
model
only.Leaves the guild.
Errors
May return an Error::Http
if the current user
cannot leave the guild, or currently is not in the guild.
sourcepub async fn member(
&self,
cache_http: impl CacheHttp,
user_id: impl Into<UserId>
) -> Result<Member>
Available on crate feature model
only.
pub async fn member(
&self,
cache_http: impl CacheHttp,
user_id: impl Into<UserId>
) -> Result<Member>
model
only.Gets a user’s Member
for the guild by Id.
Errors
Returns an Error::Http
if the user is not in
the guild or if the guild is otherwise unavailable.
sourcepub async fn members(
&self,
http: impl AsRef<Http>,
limit: Option<u64>,
after: impl Into<Option<UserId>>
) -> Result<Vec<Member>>
Available on crate feature model
only.
pub async fn members(
&self,
http: impl AsRef<Http>,
limit: Option<u64>,
after: impl Into<Option<UserId>>
) -> Result<Vec<Member>>
model
only.Gets a list of the guild’s members.
Optionally pass in the limit
to limit the number of results.
Minimum value is 1, maximum and default value is 1000.
Optionally pass in after
to offset the results by a User
’s Id.
Errors
Returns an Error::Http
if the API returns an error, may also
return Error::NotInRange
if the input is not within range.
sourcepub fn members_with_status(&self, status: OnlineStatus) -> Vec<&Member>
Available on crate feature model
only.
pub fn members_with_status(&self, status: OnlineStatus) -> Vec<&Member>
model
only.Gets a list of all the members (satisfying the status provided to the function) in this guild.
sourcepub fn member_named(&self, name: &str) -> Option<&Member>
Available on crate feature model
only.
pub fn member_named(&self, name: &str) -> Option<&Member>
model
only.Retrieves the first Member
found that matches the name - with an
optional discriminator - provided.
Searching with a discriminator given is the most precise form of lookup, as no two people can share the same username and discriminator.
If a member can not be found by username or username#discriminator,
then a search will be done for the nickname. When searching by nickname,
the hash (#
) and everything after it is included in the search.
The following are valid types of searches:
- username: “zey”
- username and discriminator: “zey#5479”
Note: This will only search members that are cached. If you want to
search all members in the guild via the Http API, use
Self::search_members
.
sourcepub async fn members_starting_with(
&self,
prefix: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
Available on crate feature model
only.
pub async fn members_starting_with(
&self,
prefix: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
model
only.Retrieves all Member
that start with a given String
.
sorted
decides whether the best early match of the prefix
should be the criteria to sort the result.
For the prefix
“zey” and the unsorted result:
- “zeya”, “zeyaa”, “zeyla”, “zeyzey”, “zeyzeyzey” It would be sorted:
- “zeya”, “zeyaa”, “zeyla”, “zeyzey”, “zeyzeyzey”
Locking:
First collects a Member
’s User
-name by read-locking all inner
User
s, and then sorts. This ensures that no name is being changed
after being sorted in the originally correct position.
However, since the read-locks are dropped after borrowing the name,
the names might have been changed by the user, the sorted list cannot
account for this.
Note: This will only search members that are cached. If you want to
search all members in the guild via the Http API, use
Self::search_members
.
sourcepub async fn members_containing(
&self,
substring: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
Available on crate feature model
only.
pub async fn members_containing(
&self,
substring: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
model
only.Retrieves all Member
containing a given String
as
either username or nick, with a priority on username.
If the substring is “yla”, following results are possible:
- “zeyla”, “meiyla”, “yladenisyla” If ‘case_sensitive’ is false, the following are not found:
- “zeYLa”, “meiyLa”, “LYAdenislyA”
sorted
decides whether the best early match of the search-term
should be the criteria to sort the result.
It will look at the account name first, if that does not fit the
search-criteria substring
, the display-name will be considered.
For the substring
“zey” and the unsorted result:
- “azey”, “zey”, “zeyla”, “zeylaa”, “zeyzeyzey” It would be sorted:
- “zey”, “azey”, “zeyla”, “zeylaa”, “zeyzeyzey”
Note: Due to two fields of a Member
being candidates for
the searched field, setting sorted
to true
will result in an overhead,
as both fields have to be considered again for sorting.
Locking:
First collects a Member
’s User
-name by read-locking all inner
User
s, and then sorts. This ensures that no name is being changed
after being sorted in the originally correct position.
However, since the read-locks are dropped after borrowing the name,
the names might have been changed by the user, the sorted list cannot
account for this.
Note: This will only search members that are cached. If you want to
search all members in the guild via the Http API, use
Self::search_members
.
sourcepub async fn members_username_containing(
&self,
substring: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
Available on crate feature model
only.
pub async fn members_username_containing(
&self,
substring: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
model
only.Retrieves a tuple of Member
s containing a given String
in
their username as the first field and the name used for sorting
as the second field.
If the substring is “yla”, following results are possible:
- “zeyla”, “meiyla”, “yladenisyla” If ‘case_sensitive’ is false, the following are not found:
- “zeYLa”, “meiyLa”, “LYAdenislyA”
sort
decides whether the best early match of the search-term
should be the criteria to sort the result.
For the substring
“zey” and the unsorted result:
- “azey”, “zey”, “zeyla”, “zeylaa”, “zeyzeyzey” It would be sorted:
- “zey”, “azey”, “zeyla”, “zeylaa”, “zeyzeyzey”
Locking:
First collects a Member
’s User
-name by read-locking all inner
User
s, and then sorts. This ensures that no name is being changed
after being sorted in the originally correct position.
However, since the read-locks are dropped after borrowing the name,
the names might have been changed by the user, the sorted list cannot
account for this.
Note: This will only search members that are cached. If you want to
search all members in the guild via the Http API, use
Self::search_members
.
sourcepub async fn members_nick_containing(
&self,
substring: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
Available on crate feature model
only.
pub async fn members_nick_containing(
&self,
substring: &str,
case_sensitive: bool,
sorted: bool
) -> Vec<(&Member, String)>
model
only.Retrieves all Member
containing a given String
in
their nick.
If the substring is “yla”, following results are possible:
- “zeyla”, “meiyla”, “yladenisyla” If ‘case_sensitive’ is false, the following are not found:
- “zeYLa”, “meiyLa”, “LYAdenislyA”
sort
decides whether the best early match of the search-term
should be the criteria to sort the result.
For the substring
“zey” and the unsorted result:
- “azey”, “zey”, “zeyla”, “zeylaa”, “zeyzeyzey” It would be sorted:
- “zey”, “azey”, “zeyla”, “zeylaa”, “zeyzeyzey”
Note: Instead of panicking, when sorting does not find a nick, the username will be used (this should never happen).
Locking:
First collects a Member
’s nick directly or by read-locking all inner
User
s (in case of no nick, see note above), and then sorts.
This ensures that no name is being changed after being sorted in the
originally correct position.
However, since the read-locks are dropped after borrowing the name,
the names might have been changed by the user, the sorted list cannot
account for this.
Note: This will only search members that are cached. If you want to
search all members in the guild via the Http API, use
Self::search_members
.
sourcepub async fn member_permissions(
&self,
cache_http: impl CacheHttp,
user_id: impl Into<UserId>
) -> Result<Permissions>
Available on crate features model
and cache
only.
pub async fn member_permissions(
&self,
cache_http: impl CacheHttp,
user_id: impl Into<UserId>
) -> Result<Permissions>
model
and cache
only.Calculate a Member
’s permissions in the guild.
If member caching is enabled the cache will be checked first. If not found it will resort to an http request.
Cache is still required to look up roles.
Errors
See Guild::member
.
sourcepub async fn move_member(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
channel_id: impl Into<ChannelId>
) -> Result<Member>
Available on crate feature model
only.
pub async fn move_member(
&self,
http: impl AsRef<Http>,
user_id: impl Into<UserId>,
channel_id: impl Into<ChannelId>
) -> Result<Member>
model
only.Moves a member to a specific voice channel.
Requires the Move Members permission.
Errors
Returns an Error::Http
if the current user
lacks permission, or if the member is not currently
in a voice channel for this Guild
.
sourcepub fn user_permissions_in(
&self,
channel: &GuildChannel,
member: &Member
) -> Result<Permissions>
Available on crate feature model
only.
pub fn user_permissions_in(
&self,
channel: &GuildChannel,
member: &Member
) -> Result<Permissions>
model
only.Calculate a Member
’s permissions in a given channel in the guild.
Errors
Returns Error::Model
if the Member
has a non-existent role
for some reason.
sourcepub fn role_permissions_in(
&self,
channel: &GuildChannel,
role: &Role
) -> Result<Permissions>
Available on crate feature model
only.
pub fn role_permissions_in(
&self,
channel: &GuildChannel,
role: &Role
) -> Result<Permissions>
model
only.sourcepub async fn prune_count(
&self,
cache_http: impl CacheHttp,
days: u16
) -> Result<GuildPrune>
Available on crate feature model
only.
pub async fn prune_count(
&self,
cache_http: impl CacheHttp,
days: u16
) -> Result<GuildPrune>
model
only.Retrieves the count of the number of Member
s that would be pruned
with the number of given days.
See the documentation on GuildPrune
for more information.
Note: Requires the Kick Members permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to kick members.
Otherwise may return Error::Http
if the current user does not have permission.
Can also return Error::Json
if there is an error in deserializing the API response.
sourcepub async fn reorder_channels<It>(
&self,
http: impl AsRef<Http>,
channels: It
) -> Result<()> where
It: IntoIterator<Item = (ChannelId, u64)>,
Available on crate feature model
only.
pub async fn reorder_channels<It>(
&self,
http: impl AsRef<Http>,
channels: It
) -> Result<()> where
It: IntoIterator<Item = (ChannelId, u64)>,
model
only.Re-orders the channels of the guild.
Although not required, you should specify all channels’ positions, regardless of whether they were updated. Otherwise, positioning can sometimes get weird.
Note: Requires the Manage Channels permission.
Errors
Returns an Error::Http
if the current user is lacking permission.
sourcepub async fn search_members(
&self,
http: impl AsRef<Http>,
query: &str,
limit: Option<u64>
) -> Result<Vec<Member>>
Available on crate feature model
only.
pub async fn search_members(
&self,
http: impl AsRef<Http>,
query: &str,
limit: Option<u64>
) -> Result<Vec<Member>>
model
only.Returns a list of Member
s in a Guild
whose username or nickname
starts with a provided string.
Optionally pass in the limit
to limit the number of results.
Minimum value is 1, maximum and default value is 1000.
Note: Queries are case insensitive.
Errors
Returns an Error::Http
if the API returns an error.
sourcepub async fn scheduled_event(
self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
with_user_count: bool
) -> Result<ScheduledEvent>
Available on crate feature model
only.
pub async fn scheduled_event(
self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
with_user_count: bool
) -> Result<ScheduledEvent>
model
only.Fetches a specified scheduled event in the guild, by Id. If with_user_count
is set to
true
, then the user_count
field will be populated, indicating the number of users
interested in the event.
Note: Requires the Manage Events permission.
Errors
Returns Error::Http
if the current user lacks permission, or if the provided Id is
invalid.
sourcepub async fn scheduled_events(
self,
http: impl AsRef<Http>,
with_user_count: bool
) -> Result<Vec<ScheduledEvent>>
Available on crate feature model
only.
pub async fn scheduled_events(
self,
http: impl AsRef<Http>,
with_user_count: bool
) -> Result<Vec<ScheduledEvent>>
model
only.Fetches a list of all scheduled events in the guild. If with_user_count
is set to true
,
then each event returned will have its user_count
field populated.
Note: Requires the Manage Events permission.
Errors
Returns Error::Http
if the current user lacks permission.
sourcepub async fn scheduled_event_users(
self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
limit: Option<u64>
) -> Result<Vec<ScheduledEventUser>>
Available on crate feature model
only.
pub async fn scheduled_event_users(
self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
limit: Option<u64>
) -> Result<Vec<ScheduledEventUser>>
model
only.Fetches a list of interested users for the specified event.
If limit
is left unset, by default at most 100 users are returned.
Note: Requires the Manage Events permission.
Errors
Returns Error::Http
if the current user lacks permission, or if the provided Id is
invalid.
sourcepub async fn scheduled_event_users_optioned(
self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
limit: Option<u64>,
target: Option<UserPagination>,
with_member: Option<bool>
) -> Result<Vec<ScheduledEventUser>>
Available on crate feature model
only.
pub async fn scheduled_event_users_optioned(
self,
http: impl AsRef<Http>,
event_id: impl Into<ScheduledEventId>,
limit: Option<u64>,
target: Option<UserPagination>,
with_member: Option<bool>
) -> Result<Vec<ScheduledEventUser>>
model
only.Fetches a list of interested users for the specified event, with additional options and
filtering. See Http::get_scheduled_event_users
for details.
Note: Requires the Manage Events permission.
Errors
Returns Error::Http
if the current user lacks permission, or if the provided Id is
invalid.
sourcepub fn shard_id(&self, cache: impl AsRef<Cache>) -> u64
Available on crate features cache
and utils
and model
only.
pub fn shard_id(&self, cache: impl AsRef<Cache>) -> u64
cache
and utils
and model
only.Returns the Id of the shard associated with the guild.
When the cache is enabled this will automatically retrieve the total number of shards.
Note: When the cache is enabled, this function unlocks the cache to
retrieve the total number of shards in use. If you already have the
total, consider using utils::shard_id
.
sourcepub fn splash_url(&self) -> Option<String>
Available on crate feature model
only.
pub fn splash_url(&self) -> Option<String>
model
only.Returns the formatted URL of the guild’s splash image, if one exists.
sourcepub async fn start_integration_sync(
&self,
http: impl AsRef<Http>,
integration_id: impl Into<IntegrationId>
) -> Result<()>
Available on crate feature model
only.
pub async fn start_integration_sync(
&self,
http: impl AsRef<Http>,
integration_id: impl Into<IntegrationId>
) -> Result<()>
model
only.Starts an integration sync for the given integration Id.
Requires the Manage Guild permission.
Errors
Returns an Error::Http
if the current user does not have permission,
or if an Integration
with that Id does not exist.
sourcepub async fn start_prune(
&self,
cache_http: impl CacheHttp,
days: u16
) -> Result<GuildPrune>
Available on crate feature model
only.
pub async fn start_prune(
&self,
cache_http: impl CacheHttp,
days: u16
) -> Result<GuildPrune>
model
only.Starts a prune of Member
s.
See the documentation on GuildPrune
for more information.
Note: Requires the Kick Members permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to kick members.
Otherwise will return Error::Http
if the current user does not have
permission.
Can also return an Error::Json
if there is an error deserializing
the API response.
sourcepub async fn unban(
&self,
cache_http: impl CacheHttp,
user_id: impl Into<UserId>
) -> Result<()>
Available on crate feature model
only.
pub async fn unban(
&self,
cache_http: impl CacheHttp,
user_id: impl Into<UserId>
) -> Result<()>
model
only.Unbans the given User
from the guild.
Note: Requires the Ban Members permission.
Errors
If the cache
is enabled, returns a ModelError::InvalidPermissions
if the current user does not have permission to perform bans.
Otherwise will return an Error::Http
if the current user does not
have permission.
sourcepub async fn vanity_url(&self, http: impl AsRef<Http>) -> Result<String>
Available on crate feature model
only.
pub async fn vanity_url(&self, http: impl AsRef<Http>) -> Result<String>
model
only.Retrieve’s the guild’s vanity URL.
Note: Requires the Manage Guild permission.
Errors
Will return Error::Http
if the current user is lacking permissions.
Can also return an Error::Json
if there is an error deserializing
the API response.
sourcepub async fn webhooks(&self, http: impl AsRef<Http>) -> Result<Vec<Webhook>>
Available on crate feature model
only.
pub async fn webhooks(&self, http: impl AsRef<Http>) -> Result<Vec<Webhook>>
model
only.Retrieves the guild’s webhooks.
Note: Requires the Manage Webhooks permission.
Errors
Will return an Error::Http
if the current user is lacking permissions.
Can also return an Error::Json
if there is an error deserializing
the API response.
sourcepub fn role_by_name(&self, role_name: &str) -> Option<&Role>
Available on crate feature model
only.
pub fn role_by_name(&self, role_name: &str) -> Option<&Role>
model
only.Obtain a reference to a role by its name.
Note: If two or more roles have the same name, obtained reference will be one of them.
Examples
Obtain a reference to a Role
by its name.
use serenity::model::prelude::*;
use serenity::prelude::*;
struct Handler;
#[serenity::async_trait]
impl EventHandler for Handler {
async fn message(&self, ctx: Context, msg: Message) {
if let Some(guild_id) = msg.guild_id {
if let Some(guild) = guild_id.to_guild_cached(&ctx) {
if let Some(role) = guild.role_by_name("role_name") {
println!("{:?}", role);
}
}
}
}
}
let mut client =
Client::builder("token", GatewayIntents::default()).event_handler(Handler).await?;
client.start().await?;
sourcepub fn await_reply(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> CollectReplyⓘNotable traits for CollectReplyimpl Future for CollectReply type Output = Option<Arc<Message>>;
Available on crate features model
and collector
only.
pub fn await_reply(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> CollectReplyⓘNotable traits for CollectReplyimpl Future for CollectReply type Output = Option<Arc<Message>>;
model
and collector
only.Returns a future that will await one message sent in this guild.
sourcepub fn await_replies(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> MessageCollectorBuilder
Available on crate features model
and collector
only.
pub fn await_replies(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> MessageCollectorBuilder
model
and collector
only.Returns a stream builder which can be awaited to obtain a stream of messages in this guild.
sourcepub fn await_reaction(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> CollectReactionⓘNotable traits for CollectReactionimpl Future for CollectReaction type Output = Option<Arc<ReactionAction>>;
Available on crate features model
and collector
only.
pub fn await_reaction(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> CollectReactionⓘNotable traits for CollectReactionimpl Future for CollectReaction type Output = Option<Arc<ReactionAction>>;
model
and collector
only.Await a single reaction in this guild.
sourcepub fn await_reactions(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> ReactionCollectorBuilder
Available on crate features model
and collector
only.
pub fn await_reactions(
&self,
shard_messenger: impl AsRef<ShardMessenger>
) -> ReactionCollectorBuilder
model
and collector
only.Returns a stream builder which can be awaited to obtain a stream of reactions sent in this guild.
sourcepub async fn get_active_threads(
&self,
http: impl AsRef<Http>
) -> Result<ThreadsData>
Available on crate feature model
only.
pub async fn get_active_threads(
&self,
http: impl AsRef<Http>
) -> Result<ThreadsData>
model
only.Gets the guild active threads.
Errors
Returns Error::Http
if there is an error in the deserialization, or
if the bot issuing the request is not in the guild.
Trait Implementations
sourceimpl ArgumentConvert for Guild
impl ArgumentConvert for Guild
Look up a Guild, either by ID or by a string case-insensitively.
Requires the cache feature to be enabled.
type Err = GuildParseError
type Err = GuildParseError
utils
and client
only.The associated error which can be returned from parsing.
sourcefn convert<'life0, 'life1, 'async_trait>(
ctx: &'life0 Context,
_guild_id: Option<GuildId>,
_channel_id: Option<ChannelId>,
s: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Err>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn convert<'life0, 'life1, 'async_trait>(
ctx: &'life0 Context,
_guild_id: Option<GuildId>,
_channel_id: Option<ChannelId>,
s: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Err>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
utils
and client
only.Parses a string s
as a command parameter of this type.
sourceimpl<'de> Deserialize<'de> for Guild
impl<'de> Deserialize<'de> for Guild
sourcefn deserialize<D: Deserializer<'de>>(
deserializer: D
) -> StdResult<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(
deserializer: D
) -> StdResult<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
sourceimpl From<Guild> for PartialGuild
impl From<Guild> for PartialGuild
sourcefn from(guild: Guild) -> Self
fn from(guild: Guild) -> Self
Converts this Guild
instance into a PartialGuild
PartialGuild
is not a strict subset and contains some data specific to the current user
that Guild
does not contain. Therefore, this method needs access to cache and HTTP to
generate the missing data
Auto Trait Implementations
impl RefUnwindSafe for Guild
impl Send for Guild
impl Sync for Guild
impl Unpin for Guild
impl UnwindSafe for Guild
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more