Crux v2020-03-17 17:55:51Z Crux.Gateway.Command View Source
Builds Gateway Commands.
Note: Only the sent ones can be found here.
A list of available op codes:
OP Code | Name | |
---|---|---|
0 | dispatch | received only |
1 | heartbeat | two way |
2 | identify | sent only |
3 | status_update | sent only |
4 | voice_state_update | sent only |
5 | voice_guild_ping | sent only |
6 | resume | sent only |
7 | reconnect | received only |
8 | request_guild_members | sent only |
9 | invalid_session | received only |
10 | hello | received only |
11 | heartbeat_ack | received only |
Link to this section Summary
Types
Used to set an activity via status_update/2
.
Encoded command ready to be sent to the gateway via Crux.Gateway.Connection.send_command/3
.
Functions
Builds a Heartbeat command.
Builds an Identify command.
Builds a Request Guild Members command.
Builds a Resume command.
Builds a Status Update command.
Link to this section Types
activity()
View Source
activity() :: %{
:name => String.t(),
:type => non_neg_integer(),
optional(:url) => String.t()
}
activity() :: %{ :name => String.t(), :type => non_neg_integer(), optional(:url) => String.t() }
Used to set an activity via status_update/2
.
:type
must be a valid Activity Type
Note that streaming requires a twitch url pointing to a possible channel!
command()
View Source
command() :: WebSockex.frame()
command() :: WebSockex.frame()
Encoded command ready to be sent to the gateway via Crux.Gateway.Connection.send_command/3
.
If you want to build custom commands,
pass :erlang.term_to_binary/1
a map with the keys op
and d
,
and wrap it in a tuple with :binary
as first element.
Link to this section Functions
heartbeat(sequence)
View Source
heartbeat(sequence :: non_neg_integer() | nil) :: command()
heartbeat(sequence :: non_neg_integer() | nil) :: command()
Builds a Heartbeat command.
Used to signalize the server that the client is still alive and able to receive messages.
identify(args)
View Source
identify(
data :: %{
:shard_id => non_neg_integer(),
:shard_count => pos_integer(),
:token => String.t(),
optional(:presence) => Crux.Gateway.presence(),
optional(:guild_subscriptions) => boolean()
}
) :: command()
identify( data :: %{ :shard_id => non_neg_integer(), :shard_count => pos_integer(), :token => String.t(), optional(:presence) => Crux.Gateway.presence(), optional(:guild_subscriptions) => boolean() } ) :: command()
Builds an Identify command.
Used to identify the gateway connection and "log in".
request_guild_members(guild_id, opts \\ [])
View Source
request_guild_members(
guild_id :: Crux.Structs.Snowflake.t(),
opts ::
[
query: String.t(),
limit: non_neg_integer(),
presences: boolean(),
user_ids: Crux.Structs.Snowflake.t() | [Crux.Structs.Snowflake.t()]
]
| map()
) :: command()
request_guild_members( guild_id :: Crux.Structs.Snowflake.t(), opts :: [ query: String.t(), limit: non_neg_integer(), presences: boolean(), user_ids: Crux.Structs.Snowflake.t() | [Crux.Structs.Snowflake.t()] ] | map() ) :: command()
Builds a Request Guild Members command.
Used to request guild member for a specific guild.
Note: This must be sent to the connection handling the guild, not just any connection.
The gateway will respond with :GUILD_MEMBER_CHUNK
packets until all appropriate members are received.
resume(map)
View Source
resume(
data :: %{seq: non_neg_integer(), token: String.t(), session: String.t()}
) :: command()
resume( data :: %{seq: non_neg_integer(), token: String.t(), session: String.t()} ) :: command()
Builds a Resume command.
Used to resume into a session which was unexpectly disconnected and may be resumable.
status_update(status, game \\ nil) View Source
Builds a Status Update command.
Used to update the status of the client, including activity.
voice_state_update(guild_id, channel_id \\ nil, states \\ [])
View Source
voice_state_update(
guild_id :: Crux.Structs.Snowflake.t(),
channel_id :: Crux.Structs.Snowflake.t() | nil,
states :: [self_mute: boolean(), self_deaf: boolean()]
) :: command()
voice_state_update( guild_id :: Crux.Structs.Snowflake.t(), channel_id :: Crux.Structs.Snowflake.t() | nil, states :: [self_mute: boolean(), self_deaf: boolean()] ) :: command()
Builds a Voice State Update command.
Used to join, switch between, and leave voice channels and/or change self_mute or self_deaf states.