1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2025-03-28 12:59:48 +00:00

Merge pull request #58 from mavolin/45-inheritance

This commit is contained in:
diamondburned 2020-05-11 20:08:29 -07:00 committed by GitHub
commit 6e384a69c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 14 deletions

View file

@ -230,7 +230,9 @@ type (
// https://discordapp.com/developers/docs/topics/gateway#presence // https://discordapp.com/developers/docs/topics/gateway#presence
type ( type (
// Clients may only update their game status 5 times per 20 seconds. // Clients may only update their game status 5 times per 20 seconds.
PresenceUpdateEvent discord.Presence PresenceUpdateEvent struct {
discord.Presence
}
PresencesReplaceEvent []discord.Presence PresencesReplaceEvent []discord.Presence
// SessionsReplaceEvent is an undocumented user event. It's likely used for // SessionsReplaceEvent is an undocumented user event. It's likely used for
@ -260,12 +262,16 @@ type (
Member *discord.Member `json:"member,omitempty"` Member *discord.Member `json:"member,omitempty"`
} }
UserUpdateEvent discord.User UserUpdateEvent struct {
discord.User
}
) )
// https://discordapp.com/developers/docs/topics/gateway#voice // https://discordapp.com/developers/docs/topics/gateway#voice
type ( type (
VoiceStateUpdateEvent discord.VoiceState VoiceStateUpdateEvent struct {
discord.VoiceState
}
VoiceServerUpdateEvent struct { VoiceServerUpdateEvent struct {
Token string `json:"token"` Token string `json:"token"`
GuildID discord.Snowflake `json:"guild_id"` GuildID discord.Snowflake `json:"guild_id"`
@ -283,8 +289,12 @@ type (
// Undocumented // Undocumented
type ( type (
UserGuildSettingsUpdateEvent UserGuildSettings UserGuildSettingsUpdateEvent struct {
UserSettingsUpdateEvent UserSettings UserGuildSettings
}
UserSettingsUpdateEvent struct {
UserSettings
}
UserNoteUpdateEvent struct { UserNoteUpdateEvent struct {
ID discord.Snowflake `json:"id"` ID discord.Snowflake `json:"id"`
Note string `json:"note"` Note string `json:"note"`
@ -292,6 +302,10 @@ type (
) )
type ( type (
RelationshipAdd Relationship RelationshipAdd struct {
RelationshipRemove Relationship Relationship
}
RelationshipRemove struct {
Relationship
}
) )

View file

@ -224,8 +224,7 @@ func (s *State) onEvent(iface interface{}) {
}) })
case *gateway.PresenceUpdateEvent: case *gateway.PresenceUpdateEvent:
presence := (*discord.Presence)(ev) if err := s.Store.PresenceSet(ev.GuildID, &ev.Presence); err != nil {
if err := s.Store.PresenceSet(ev.GuildID, presence); err != nil {
s.stateErr(err, "Failed to update presence in state") s.stateErr(err, "Failed to update presence in state")
} }
@ -243,23 +242,23 @@ func (s *State) onEvent(iface interface{}) {
case *gateway.UserGuildSettingsUpdateEvent: case *gateway.UserGuildSettingsUpdateEvent:
for i, ugs := range s.Ready.UserGuildSettings { for i, ugs := range s.Ready.UserGuildSettings {
if ugs.GuildID == ev.GuildID { if ugs.GuildID == ev.GuildID {
s.Ready.UserGuildSettings[i] = gateway.UserGuildSettings(*ev) s.Ready.UserGuildSettings[i] = ev.UserGuildSettings
} }
} }
case *gateway.UserSettingsUpdateEvent: case *gateway.UserSettingsUpdateEvent:
s.Ready.Settings = (*gateway.UserSettings)(ev) s.Ready.Settings = &ev.UserSettings
case *gateway.UserNoteUpdateEvent: case *gateway.UserNoteUpdateEvent:
s.Ready.Notes[ev.ID] = ev.Note s.Ready.Notes[ev.ID] = ev.Note
case *gateway.UserUpdateEvent: case *gateway.UserUpdateEvent:
if err := s.Store.MyselfSet((*discord.User)(ev)); err != nil { if err := s.Store.MyselfSet(&ev.User); err != nil {
s.stateErr(err, "Failed to update myself from USER_UPDATE") s.stateErr(err, "Failed to update myself from USER_UPDATE")
} }
case *gateway.VoiceStateUpdateEvent: case *gateway.VoiceStateUpdateEvent:
vs := (*discord.VoiceState)(ev) vs := &ev.VoiceState
if vs.ChannelID == 0 { if vs.ChannelID == 0 {
if err := s.Store.VoiceStateRemove(vs.GuildID, vs.UserID); err != nil { if err := s.Store.VoiceStateRemove(vs.GuildID, vs.UserID); err != nil {
s.stateErr(err, "Failed to remove voice state from state") s.stateErr(err, "Failed to remove voice state from state")