Gateway: Added SESSIONS_REPLACE

This commit is contained in:
diamondburned (Forefront) 2020-02-23 09:56:16 -08:00
parent e0589785c5
commit 4a1d6ad456
4 changed files with 27 additions and 2 deletions

View File

@ -125,7 +125,7 @@ type Presence struct {
Status Status `json:"status"`
ClientStatus struct {
Desktop Status `json:"status,omitempty"`
Desktop Status `json:"desktop,omitempty"`
Mobile Status `json:"mobile,omitempty"`
Web Status `json:"web,omitempty"`
} `json:"client_status"`

View File

@ -140,6 +140,10 @@ type Activity struct {
Instance bool `json:"instance,omitempty"`
Flags ActivityFlags `json:"flags,omitempty"`
// Undocumented fields
SyncID string `json:"sync_id,omitempty"`
SessionID string `json:"session_id,omitempty"`
}
type ActivityType uint8

View File

@ -175,7 +175,26 @@ type (
// Clients may only update their game status 5 times per 20 seconds.
PresenceUpdateEvent discord.Presence
PresencesReplaceEvent []discord.Presence
TypingStartEvent struct {
// SessionsReplaceEvent is an undocumented user event. It's likely used for
// current user's presence updates.
SessionsReplaceEvent []struct {
Status discord.Status `json:"status"`
SessionID string `json:"session_id"`
Game *discord.Activity `json:"game"`
Activities []discord.Activity `json:"activities"`
ClientInfo struct {
Version int `json:"version"`
OS string `json:"os"`
Client string `json:"client"`
} `json:"client_info"`
Active bool `json:"active"`
}
TypingStartEvent struct {
ChannelID discord.Snowflake `json:"channel_id"`
UserID discord.Snowflake `json:"user_id"`
Timestamp discord.UnixTimestamp `json:"timestamp"`
@ -183,6 +202,7 @@ type (
GuildID discord.Snowflake `json:"guild_id,omitempty"`
Member *discord.Member `json:"member,omitempty"`
}
UserUpdateEvent discord.User
)

View File

@ -57,6 +57,7 @@ var EventCreator = map[string]func() Event{
"PRESENCE_UPDATE": func() Event { return new(PresenceUpdateEvent) },
"PRESENCES_REPLACE": func() Event { return new(PresencesReplaceEvent) },
"SESSIONS_REPLACE": func() Event { return new(SessionsReplaceEvent) },
"TYPING_START": func() Event { return new(TypingStartEvent) },