[][src]Struct serenity::client::bridge::gateway::ShardMessenger

pub struct ShardMessenger { /* fields omitted */ }

A lightweight wrapper around an mpsc sender.

This is used to cleanly communicate with a shard's respective ShardRunner. This can be used for actions such as setting the activity via set_activity or shutting down via shutdown.

Methods

impl ShardMessenger[src]

pub fn new(tx: Sender<InterMessage>) -> Self[src]

Creates a new shard messenger.

If you are using the Client, you do not need to do this.

pub fn chunk_guilds<It>(
    &self,
    guild_ids: It,
    limit: Option<u16>,
    query: Option<String>
) where
    It: IntoIterator<Item = GuildId>, 
[src]

Requests that one or multiple Guilds be chunked.

This will ask the gateway to start sending member chunks for large guilds (250 members+). If a guild is over 250 members, then a full member list will not be downloaded, and must instead be requested to be sent in "chunks" containing members.

Member chunks are sent as the Event::GuildMembersChunk event. Each chunk only contains a partial amount of the total members.

If the cache feature is enabled, the cache will automatically be updated with member chunks.

Examples

Chunk a single guild by Id, limiting to 2000 Members, and not specifying a query parameter:

use serenity::model::id::GuildId;

let guild_ids = vec![GuildId(81384788765712384)];

shard.chunk_guilds(guild_ids, Some(2000), None);

Chunk a single guild by Id, limiting to 20 members, and specifying a query parameter of "do":

use serenity::model::id::GuildId;

let guild_ids = vec![GuildId(81384788765712384)];

shard.chunk_guilds(guild_ids, Some(20), Some("do"));

pub fn set_activity(&self, activity: Option<Activity>)[src]

Sets the user's current activity, if any.

Other presence settings are maintained.

Examples

Setting the current activity to playing "Heroes of the Storm":

use serenity::model::gateway::Activity;

shard.set_activity(Some(Activity::playing("Heroes of the Storm")));

pub fn set_presence(&self, activity: Option<Activity>, status: OnlineStatus)[src]

Sets the user's full presence information.

Consider using the individual setters if you only need to modify one of these.

Examples

Set the current user as playing "Heroes of the Storm" and being online:

This example is not tested
use serenity::model::{Activity, OnlineStatus};

shard.set_presence(Some(Activity::playing("Heroes of the Storm")), OnlineStatus::Online);

pub fn set_status(&self, online_status: OnlineStatus)[src]

Sets the user's current online status.

Note that Offline is not a valid online status, so it is automatically converted to Invisible.

Other presence settings are maintained.

Examples

Setting the current online status for the shard to DoNotDisturb.

use serenity::model::user::OnlineStatus;

shard.set_status(OnlineStatus::DoNotDisturb);

pub fn shutdown_clean(&self)[src]

Shuts down the websocket by attempting to cleanly close the connection.

pub fn websocket_message(&self, message: Message)[src]

Sends a raw message over the WebSocket.

The given message is not mutated in any way, and is sent as-is.

You should only use this if you know what you're doing. If you're wanting to, for example, send a presence update, prefer the usage of the set_presence method.

Trait Implementations

impl Clone for ShardMessenger[src]

impl Debug for ShardMessenger[src]

Auto Trait Implementations

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> From<T> 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, 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>,