From 0de1e579f309eed5514f0cd8638b3e8f062d6eb8 Mon Sep 17 00:00:00 2001 From: "diamondburned (Forefront)" Date: Wed, 12 Feb 2020 20:19:24 -0800 Subject: [PATCH] State: Author* methods now try and use Message.Member --- gateway/op.go | 4 ++++ state/state.go | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gateway/op.go b/gateway/op.go index 84d7169..0746eed 100644 --- a/gateway/op.go +++ b/gateway/op.go @@ -96,6 +96,10 @@ func AssertEvent(driver json.Driver, } func HandleEvent(g *Gateway, data []byte) error { + if len(data) == 0 { + return ErrInvalidSession + } + // Parse the raw data into an OP struct var op *OP if err := g.Driver.Unmarshal(data, &op); err != nil { diff --git a/state/state.go b/state/state.go index 08c0a16..2c9ee01 100644 --- a/state/state.go +++ b/state/state.go @@ -81,6 +81,13 @@ func (s *State) AuthorDisplayName(message discord.Message) string { return message.Author.Username } + if message.Member != nil { + if message.Member.Nick != "" { + return message.Member.Nick + } + return message.Author.Username + } + n, err := s.MemberDisplayName(message.GuildID, message.Author.ID) if err != nil { return message.Author.Username @@ -109,6 +116,14 @@ func (s *State) AuthorColor(message discord.Message) discord.Color { return discord.DefaultMemberColor } + if message.Member != nil { + guild, err := s.Guild(message.GuildID) + if err != nil { + return discord.DefaultMemberColor + } + return discord.MemberColor(*guild, *message.Member) + } + return s.MemberColor(message.GuildID, message.Author.ID) }