[][src]Struct serenity::model::id::GuildId

pub struct GuildId(pub u64);

An identifier for a Guild

Implementations

impl GuildId[src]

pub fn ban<U, BO>(
    self,
    http: impl AsRef<Http>,
    user: U,
    ban_options: &BO
) -> Result<()> where
    U: Into<UserId>,
    BO: BanOptions
[src]

Ban a User from the guild. All messages by the user within the last given number of days given will be deleted.

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:

This example is not tested
use serenity::model::id::GuildId;

// assuming a `user` has already been bound
let _ = GuildId(81384788765712384).ban(user, 4);

Errors

Returns a ModelError::DeleteMessageDaysAmount if the number of days' worth of messages to delete is over the maximum.

pub fn bans(self, http: impl AsRef<Http>) -> Result<Vec<Ban>>[src]

Gets a list of the guild's bans.

Requires the Ban Members permission.

pub fn audit_logs(
    self,
    http: impl AsRef<Http>,
    action_type: Option<u8>,
    user_id: Option<UserId>,
    before: Option<AuditLogEntryId>,
    limit: Option<u8>
) -> Result<AuditLogs>
[src]

Gets a list of the guild's audit log entries

pub fn channels(
    self,
    http: impl AsRef<Http>
) -> Result<HashMap<ChannelId, GuildChannel>>
[src]

Gets all of the guild's channels over the REST API.

pub fn create_channel(
    self,
    http: impl AsRef<Http>,
    f: impl FnOnce(&mut CreateChannel) -> &mut CreateChannel
) -> Result<GuildChannel>
[src]

Creates a GuildChannel in the the guild.

Refer to http::create_channel for more information.

Requires the Manage Channels permission.

Examples

Create a voice channel in a guild with the name test:

This example is not tested
use serenity::model::id::GuildId;
use serenity::model::channel::ChannelType;

let _channel = GuildId(7).create_channel(|c| c.name("test").kind(ChannelType::Voice));

pub fn create_emoji(
    self,
    http: impl AsRef<Http>,
    name: &str,
    image: &str
) -> Result<Emoji>
[src]

Creates an emoji in the guild with a name and base64-encoded image.

Refer to the documentation for Guild::create_emoji for more information.

Requires the Manage Emojis 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.

pub fn create_integration<I>(
    self,
    http: impl AsRef<Http>,
    integration_id: I,
    kind: &str
) -> Result<()> where
    I: Into<IntegrationId>, 
[src]

Creates an integration for the guild.

Requires the Manage Guild permission.

pub fn create_role<F>(self, http: impl AsRef<Http>, f: F) -> Result<Role> where
    F: FnOnce(&mut EditRole) -> &mut EditRole
[src]

Creates a new role in the guild with the data set, if any.

See the documentation for Guild::create_role on how to use this.

Note: Requires the Manage Roles permission.

pub fn delete(self, http: impl AsRef<Http>) -> Result<PartialGuild>[src]

Deletes the current guild if the current account is the owner of the guild.

Refer to Guild::delete for more information.

Note: Requires the current user to be the owner of the guild.

pub fn delete_emoji<E: Into<EmojiId>>(
    self,
    http: impl AsRef<Http>,
    emoji_id: E
) -> Result<()>
[src]

Deletes an Emoji from the guild.

Requires the Manage Emojis permission.

pub fn delete_integration<I: Into<IntegrationId>>(
    self,
    http: impl AsRef<Http>,
    integration_id: I
) -> Result<()>
[src]

Deletes an integration by Id from the guild.

Requires the Manage Guild permission.

pub fn delete_role<R: Into<RoleId>>(
    self,
    http: impl AsRef<Http>,
    role_id: R
) -> Result<()>
[src]

Deletes a Role by Id from the guild.

Also see Role::delete if you have the cache and methods features enabled.

Requires the Manage Roles permission.

pub fn edit<F>(&mut self, http: impl AsRef<Http>, f: F) -> Result<PartialGuild> where
    F: FnOnce(&mut EditGuild) -> &mut EditGuild
[src]

Edits the current guild with new data where specified.

Refer to Guild::edit for more information.

Note: Requires the current user to have the Manage Guild permission.

pub fn edit_emoji<E: Into<EmojiId>>(
    self,
    http: impl AsRef<Http>,
    emoji_id: E,
    name: &str
) -> Result<Emoji>
[src]

Edits an Emoji's name in the guild.

Also see Emoji::edit if you have the cache and methods features enabled.

Requires the Manage Emojis permission.

pub fn edit_member<F, U>(
    self,
    http: impl AsRef<Http>,
    user_id: U,
    f: F
) -> Result<()> where
    F: FnOnce(&mut EditMember) -> &mut EditMember,
    U: Into<UserId>, 
[src]

Edits the properties of member of the guild, such as muting or nicknaming them.

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:

This example is not tested
guild.edit_member(&context, user_id, |m| m.mute(true).roles(&vec![role_id]));

pub fn edit_nickname(
    self,
    http: impl AsRef<Http>,
    new_nickname: Option<&str>
) -> Result<()>
[src]

Edits the current user's nickname for the guild.

Pass None to reset the nickname.

Requires the Change Nickname permission.

pub fn edit_role<F, R>(
    self,
    http: impl AsRef<Http>,
    role_id: R,
    f: F
) -> Result<Role> where
    F: FnOnce(&mut EditRole) -> &mut EditRole,
    R: Into<RoleId>, 
[src]

Edits a Role, optionally setting its new fields.

Requires the Manage Roles permission.

Examples

Make a role hoisted:

This example is not tested
use serenity::model::{GuildId, RoleId};

GuildId(7).edit_role(&context, RoleId(8), |r| r.hoist(true));

pub fn edit_role_position<R>(
    self,
    http: impl AsRef<Http>,
    role_id: R,
    position: u64
) -> Result<Vec<Role>> where
    R: Into<RoleId>, 
[src]

Edits the order of Roles Requires the Manage Roles permission.

Examples

Change the order of a role:

This example is not tested
use serenity::model::{GuildId, RoleId};
GuildId(7).edit_role_position(&context, RoleId(8), 2);

pub fn to_guild_cached(
    self,
    cache: impl AsRef<CacheRwLock>
) -> Option<Arc<RwLock<Guild>>>
[src]

Tries to find the Guild by its Id in the cache.

pub fn to_partial_guild(self, http: impl AsRef<Http>) -> Result<PartialGuild>[src]

Requests PartialGuild over REST API.

Note: This will not be a Guild, as the REST API does not send all data with a guild retrieval.

pub fn integrations(self, http: impl AsRef<Http>) -> Result<Vec<Integration>>[src]

Gets all integration of the guild.

This performs a request over the REST API.

pub fn invites(self, http: impl AsRef<Http>) -> Result<Vec<RichInvite>>[src]

Gets all of the guild's invites.

Requires the Manage Guild permission.

pub fn kick<U: Into<UserId>>(
    self,
    http: impl AsRef<Http>,
    user_id: U
) -> Result<()>
[src]

Kicks a Member from the guild.

Requires the Kick Members permission.

pub fn kick_with_reason<U: Into<UserId>>(
    self,
    http: impl AsRef<Http>,
    user_id: U,
    reason: &str
) -> Result<()>
[src]

pub fn leave(self, http: impl AsRef<Http>) -> Result<()>[src]

Leaves the guild.

pub fn member<U: Into<UserId>>(
    self,
    cache_http: impl CacheHttp,
    user_id: U
) -> Result<Member>
[src]

Gets a user's Member for the guild by Id.

If the cache feature is enabled the cache will be checked first. If not found it will resort to an http request.

pub fn members<U>(
    self,
    http: impl AsRef<Http>,
    limit: Option<u64>,
    after: U
) -> Result<Vec<Member>> where
    U: Into<Option<UserId>>, 
[src]

Gets a list of the guild's members.

Optionally pass in the limit to limit the number of results. Maximum value is 1000. Optionally pass in after to offset the results by a User's Id.

pub fn members_iter<H: AsRef<Http>>(self, http: H) -> MembersIter<H>

Notable traits for MembersIter<H>

impl<H: AsRef<Http>> Iterator for MembersIter<H> type Item = Result<Member>;
[src]

Iterates over all the members in a guild.

This is accomplished and equivilent to repeated calls to [members]. A buffer of at most 1,000 members is used to reduce the number of calls necessary.

Examples

for member_result in guild_id.members_iter(&ctx) {
    match member_result {
        Ok(member) => println!(
            "{} is {}",
            member,
            member.display_name()
        ),
        Err(error) => eprintln!("Uh oh!  Error: {}", error),
    }
}

pub fn move_member<C, U>(
    self,
    http: impl AsRef<Http>,
    user_id: U,
    channel_id: C
) -> Result<()> where
    C: Into<ChannelId>,
    U: Into<UserId>, 
[src]

Moves a member to a specific voice channel.

Requires the Move Members permission.

pub fn prune_count(
    self,
    http: impl AsRef<Http>,
    days: u16
) -> Result<GuildPrune>
[src]

Gets the number of Members that would be pruned with the given number of days.

Requires the Kick Members permission.

pub fn reorder_channels<It>(
    self,
    http: impl AsRef<Http>,
    channels: It
) -> Result<()> where
    It: IntoIterator<Item = (ChannelId, u64)>, 
[src]

Re-orders the channels of the guild.

Accepts an iterator of a tuple of the channel ID to modify and its new position.

Although not required, you should specify all channels' positions, regardless of whether they were updated. Otherwise, positioning can sometimes get weird.

pub fn shard_id(self, cache: impl AsRef<CacheRwLock>) -> u64[src]

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.

pub fn start_integration_sync<I: Into<IntegrationId>>(
    self,
    http: impl AsRef<Http>,
    integration_id: I
) -> Result<()>
[src]

Starts an integration sync for the given integration Id.

Requires the Manage Guild permission.

pub fn start_prune(
    self,
    http: impl AsRef<Http>,
    days: u16
) -> Result<GuildPrune>
[src]

Starts a prune of Members.

See the documentation on GuildPrune for more information.

Note: Requires the Kick Members permission.

pub fn unban<U: Into<UserId>>(
    self,
    http: impl AsRef<Http>,
    user_id: U
) -> Result<()>
[src]

Unbans a User from the guild.

Requires the Ban Members permission.

pub fn vanity_url(self, http: impl AsRef<Http>) -> Result<String>[src]

Retrieve's the guild's vanity URL.

Note: Requires the Manage Guild permission.

pub fn webhooks(self, http: impl AsRef<Http>) -> Result<Vec<Webhook>>[src]

Retrieves the guild's webhooks.

Note: Requires the Manage Webhooks permission.

impl GuildId[src]

pub fn created_at(&self) -> DateTime<FixedOffset>[src]

Retrieves the time that the Id was created at.

pub fn as_u64(&self) -> &u64[src]

Immutably borrow inner Id.

pub fn as_mut_u64(&mut self) -> &mut u64[src]

Mutably borrow inner Id.

Trait Implementations

impl AsRef<GuildId> for GuildId[src]

impl Clone for GuildId[src]

impl Copy for GuildId[src]

impl Debug for GuildId[src]

impl Default for GuildId[src]

impl<'de> Deserialize<'de> for GuildId[src]

impl Display for GuildId[src]

impl Eq for GuildId[src]

impl<'a> From<&'a Guild> for GuildId[src]

pub fn from(live_guild: &Guild) -> GuildId[src]

Gets the Id of Guild.

impl<'a> From<&'a GuildId> for GuildId[src]

impl<'a> From<&'a GuildInfo> for GuildId[src]

pub fn from(guild_info: &GuildInfo) -> GuildId[src]

Gets the Id of Guild information struct.

impl<'a> From<&'a InviteGuild> for GuildId[src]

pub fn from(invite_guild: &InviteGuild) -> GuildId[src]

Gets the Id of Invite Guild struct.

impl<'a> From<&'a PartialGuild> for GuildId[src]

pub fn from(guild: &PartialGuild) -> GuildId[src]

Gets the Id of a partial guild.

impl From<Guild> for GuildId[src]

pub fn from(live_guild: Guild) -> GuildId[src]

Gets the Id of Guild.

impl From<GuildId> for GuildContainer[src]

impl From<GuildId> for u64[src]

impl From<GuildId> for i64[src]

impl From<GuildInfo> for GuildId[src]

pub fn from(guild_info: GuildInfo) -> GuildId[src]

Gets the Id of Guild information struct.

impl From<InviteGuild> for GuildId[src]

pub fn from(invite_guild: InviteGuild) -> GuildId[src]

Gets the Id of Invite Guild struct.

impl From<PartialGuild> for GuildId[src]

pub fn from(guild: PartialGuild) -> GuildId[src]

Gets the Id of a partial guild.

impl From<u64> for GuildId[src]

impl Hash for GuildId[src]

impl Ord for GuildId[src]

impl PartialEq<GuildId> for GuildId[src]

impl PartialEq<u64> for GuildId[src]

impl PartialOrd<GuildId> for GuildId[src]

impl Serialize for GuildId[src]

impl StructuralEq for GuildId[src]

impl StructuralPartialEq for GuildId[src]

Auto Trait Implementations

impl RefUnwindSafe for GuildId

impl Send for GuildId

impl Sync for GuildId

impl Unpin for GuildId

impl UnwindSafe for GuildId

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CloneAny for T where
    T: Clone + Any
[src]

impl<T> DebugAny for T where
    T: Any + Debug
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> UnsafeAny for T where
    T: Any

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,