pub struct ShardMessenger { /* private fields */ }
Expand description
A handle to a ShardRunner
.
This is used to cleanly communicate with a shard’s respective ShardRunner
. This can be used
for actions such as setting the activity via Self::set_activity
or shutting down via
Self::shutdown_clean
.
Implementations§
Source§impl ShardMessenger
impl ShardMessenger
Sourcepub fn new(shard: &ShardRunner) -> Self
pub fn new(shard: &ShardRunner) -> Self
Creates a new shard messenger.
If you are using the Client
, you do not need to do this.
Sourcepub fn chunk_guild(
&self,
guild_id: GuildId,
limit: Option<u16>,
presences: bool,
filter: ChunkGuildFilter,
nonce: Option<String>,
)
pub fn chunk_guild( &self, guild_id: GuildId, limit: Option<u16>, presences: bool, filter: ChunkGuildFilter, nonce: Option<String>, )
Requests that one or multiple Guild
s 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 Member
s, and not specifying a query
parameter:
use serenity::model::id::GuildId;
shard.chunk_guild(GuildId::new(81384788765712384), Some(2000), false, ChunkGuildFilter::None, None);
Chunk a single guild by Id, limiting to 20 members, specifying a query parameter of "do"
and a nonce of "request"
:
use serenity::model::id::GuildId;
shard.chunk_guild(
GuildId::new(81384788765712384),
Some(20),
false,
ChunkGuildFilter::Query("do".to_owned()),
Some("request"),
);
Sourcepub fn set_activity(&self, activity: Option<ActivityData>)
pub fn set_activity(&self, activity: Option<ActivityData>)
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::gateway::ActivityData;
shard.set_activity(Some(ActivityData::playing("Heroes of the Storm")));
Sourcepub fn set_presence(&self, activity: Option<ActivityData>, status: OnlineStatus)
pub fn set_presence(&self, activity: Option<ActivityData>, status: OnlineStatus)
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:
use serenity::gateway::ActivityData;
use serenity::model::user::OnlineStatus;
let activity = ActivityData::playing("Heroes of the Storm");
shard.set_presence(Some(activity), OnlineStatus::Online);
Sourcepub fn set_status(&self, online_status: OnlineStatus)
pub fn set_status(&self, online_status: OnlineStatus)
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);
Sourcepub fn shutdown_clean(&self)
pub fn shutdown_clean(&self)
Shuts down the websocket by attempting to cleanly close the connection.
Sourcepub fn websocket_message(&self, message: Message)
pub fn websocket_message(&self, message: Message)
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 Self::set_presence
method.
Sourcepub fn send_to_shard(&self, msg: ShardRunnerMessage)
pub fn send_to_shard(&self, msg: ShardRunnerMessage)
Sends a message to the shard.
pub fn add_collector(&self, collector: CollectorCallback)
Trait Implementations§
Source§impl AsRef<ShardMessenger> for Context
impl AsRef<ShardMessenger> for Context
Source§fn as_ref(&self) -> &ShardMessenger
fn as_ref(&self) -> &ShardMessenger
Source§impl AsRef<ShardMessenger> for ShardMessenger
impl AsRef<ShardMessenger> for ShardMessenger
Source§fn as_ref(&self) -> &ShardMessenger
fn as_ref(&self) -> &ShardMessenger
Source§impl AsRef<ShardMessenger> for ShardRunnerInfo
impl AsRef<ShardMessenger> for ShardRunnerInfo
Source§fn as_ref(&self) -> &ShardMessenger
fn as_ref(&self) -> &ShardMessenger
Source§impl Clone for ShardMessenger
impl Clone for ShardMessenger
Source§fn clone(&self) -> ShardMessenger
fn clone(&self) -> ShardMessenger
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more