1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2025-03-23 02:19:22 +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
type (
// Clients may only update their game status 5 times per 20 seconds.
PresenceUpdateEvent discord.Presence
PresenceUpdateEvent struct {
discord.Presence
}
PresencesReplaceEvent []discord.Presence
// SessionsReplaceEvent is an undocumented user event. It's likely used for
@ -260,12 +262,16 @@ type (
Member *discord.Member `json:"member,omitempty"`
}
UserUpdateEvent discord.User
UserUpdateEvent struct {
discord.User
}
)
// https://discordapp.com/developers/docs/topics/gateway#voice
type (
VoiceStateUpdateEvent discord.VoiceState
VoiceStateUpdateEvent struct {
discord.VoiceState
}
VoiceServerUpdateEvent struct {
Token string `json:"token"`
GuildID discord.Snowflake `json:"guild_id"`
@ -283,15 +289,23 @@ type (
// Undocumented
type (
UserGuildSettingsUpdateEvent UserGuildSettings
UserSettingsUpdateEvent UserSettings
UserNoteUpdateEvent struct {
UserGuildSettingsUpdateEvent struct {
UserGuildSettings
}
UserSettingsUpdateEvent struct {
UserSettings
}
UserNoteUpdateEvent struct {
ID discord.Snowflake `json:"id"`
Note string `json:"note"`
}
)
type (
RelationshipAdd Relationship
RelationshipRemove Relationship
RelationshipAdd struct {
Relationship
}
RelationshipRemove struct {
Relationship
}
)

View file

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