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:
commit
6e384a69c0
|
@ -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
|
||||
}
|
||||
)
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in a new issue