Struct discord_sdk::Discord

source ·
pub struct Discord { /* private fields */ }

Implementations§

source§

impl Discord

source

pub async fn update_activity( &self, activity: impl Into<ActivityArgs> ) -> Result<Option<Activity>, Error>

Sets the current User's presence in Discord to a new activity.

§Errors

This has a rate limit of 5 updates per 20 seconds.

API docs

source

pub async fn invite_user( &self, user_id: UserId, message: impl Into<String>, kind: ActivityActionKind ) -> Result<(), Error>

Invites the specified User to join the current user’s game.

§Errors

The current User must have their presence updated with all of the required fields otherwise this call will fail.

API docs

source

pub async fn accept_invite( &self, invite: &impl AsRef<ActivityInvite> ) -> Result<(), Error>

Accepts the invite to another user’s activity.

API docs

source

pub async fn clear_activity(&self) -> Result<Option<Activity>, Error>

Clears the rich presence for the logged in User.

API docs

source

pub async fn send_join_request_reply( &self, user_id: UserId, reply: impl Into<JoinRequestReply> ) -> Result<(), Error>

Sends a reply to an Ask to Join request.

API docs

source§

impl Discord

source

pub async fn search_lobbies( &self, query: SearchQuery ) -> Result<Vec<Lobby>, Error>

Searches available lobbies based on the search criteria

API docs

source§

impl Discord

source

pub async fn create_lobby( &self, args: CreateLobbyBuilder ) -> Result<Lobby, Error>

Creates a new Lobby, automatically joining the current User and making them the owner of the Lobby.

API docs

source

pub async fn update_lobby( &self, args: UpdateLobbyBuilder ) -> Result<LobbyArgs, Error>

Updates a lobby.

§Errors

This call has a rate limit of 10 updates per 5 seconds. If you fear you might hit that, it may be a good idea to batch your lobby updates into transactions.

API docs

source

pub async fn delete_lobby(&self, id: LobbyId) -> Result<(), Error>

Deletes the specified lobby.

API docs

source

pub async fn connect_lobby(&self, lobby: ConnectLobby) -> Result<Lobby, Error>

Connects to the specified lobby, which comprises 2 pieces of information, the lobby identifier, and the lobby secret.

API docs

source

pub async fn disconnect_lobby(&self, id: LobbyId) -> Result<(), Error>

Disconnects the current user from a lobby.

API docs

source

pub async fn send_lobby_message( &self, lobby_id: LobbyId, data: LobbyMessage ) -> Result<(), Error>

Sends a message to the lobby on behalf of the current user. The

§Errors

You must be connected to the lobby you are messaging. This method has a rate limit of 10 messages per 5 seconds.

API docs

source

pub async fn connect_lobby_voice(&self, id: LobbyId) -> Result<(), Error>

Connects to the voice channel of the specified lobby.

§Errors

The user must be connected to the specified lobby.

API docs

source

pub async fn disconnect_lobby_voice(&self, id: LobbyId) -> Result<(), Error>

Disconnects from the voice channel of the specified lobby.

§Errors

The user must be connected to the specified lobby, and be connected to the voice channel already

API docs

source

pub async fn update_lobby_member( &self, lobby_id: LobbyId, user_id: UserId, metadata: Metadata ) -> Result<(), Error>

Updates the metadata for the specified lobby member.

API docs

source§

impl Discord

source

pub async fn set_overlay_visibility( &self, visibility: Visibility ) -> Result<(), Error>

Opens or closes the overlay. If the overlay is not enabled this will instead focus the Discord app itself.

API docs

source

pub async fn open_activity_invite( &self, action: InviteAction ) -> Result<(), Error>

Opens the overlay modal for sending game invitations to users, channels, and servers.

§Errors

If you do not have a valid activity with all the required fields, this call will error. See Activity Action Field Requirements for the fields required to have join and spectate invites function properly.

API docs

source

pub async fn open_guild_invite( &self, code: impl AsRef<str> ) -> Result<(), Error>

Opens the overlay modal for joining a Discord guild, given its invite code. Unlike the normal SDK, this method automatically parses the code from the provided string so you don’t need to do it yourself.

Note that just because the result might be Result::Ok doesn’t necessarily mean the user accepted the invite.

API docs

source

pub async fn open_voice_settings(&self) -> Result<(), Error>

Opens the overlay widget for voice settings for the currently connected application.

API docs

source§

impl Discord

source

pub async fn get_relationships(&self) -> Result<Vec<Relationship>, Error>

The regular Game SDK does not really expose this functionality directly, but rather exposed via the “on refresh” event as described in the docs.

Basically, this method should be used to bootstrap the relationships for the current user, with updates to that list coming via the RelationshipUpdate event

source§

impl Discord

source

pub async fn update_voice_settings( &self, settings: VoiceSettingsSelf ) -> Result<(), Error>

Changes whether the local user is muted and/or deafened

source

pub async fn voice_set_input_mode( &self, input_mode: InputMode ) -> Result<(), Error>

Sets a new voice input mode for the user. Refer to Shortcut Keys for a table of valid values for shortcuts.

API docs

source

pub async fn voice_mute_user( &self, user: UserId, mute: bool ) -> Result<(), Error>

Mutes or unmutes the given user for the currently connected user.

API docs

source

pub async fn voice_set_user_volume( &self, user: UserId, volume: u8 ) -> Result<u8, Error>

Sets the local volume for a given user. This is the volume level at which the currently connected users hears the given user speak. Valid volume values are from 0 to 200, with 100 being the default. Lower than 100 will be a reduced volume level from default, whereas over 100 will be a boosted volume level from default.

API docs

source§

impl Discord

source

pub fn new( app: impl Into<DiscordApp>, subscriptions: Subscriptions, handler: Box<dyn DiscordHandler> ) -> Result<Self, Error>

Creates a new Discord connection for the specified application, providing a DiscordHandler which can handle events as they arrive from Discord

source

pub async fn disconnect(self)

Disconnects from Discord, shutting down the tasks that have been created to handle sending and receiving messages from it.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more