From fbf95b9b6c035f3a0899dd2fe582a57356fbe928 Mon Sep 17 00:00:00 2001 From: "diamondburned (Forefront)" Date: Fri, 3 Jul 2020 12:06:59 -0700 Subject: [PATCH] Fixed Typer --- typer.go | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/typer.go b/typer.go index 221843c..00af23e 100644 --- a/typer.go +++ b/typer.go @@ -7,6 +7,7 @@ import ( "github.com/diamondburned/arikawa/gateway" "github.com/diamondburned/arikawa/state" "github.com/diamondburned/cchat" + "github.com/pkg/errors" ) type Typer struct { @@ -24,38 +25,40 @@ func NewTyperAuthor(author Author, ev *gateway.TypingStartEvent) Typer { } func NewTyper(store state.Store, ev *gateway.TypingStartEvent) (*Typer, error) { - if t.ChannelID != ch.id { - return - } - - if ch.guildID.Valid() { - g, err := ch.session.Store.Guild(t.GuildID) + if ev.GuildID.Valid() { + g, err := store.Guild(ev.GuildID) if err != nil { - return + return nil, err } - if t.Member == nil { - t.Member, err = ch.session.Store.Member(t.GuildID, t.UserID) + if ev.Member == nil { + ev.Member, err = store.Member(ev.GuildID, ev.UserID) if err != nil { - return + return nil, err } } - ti.AddTyper(NewTyper(NewGuildMember(*t.Member, *g), t)) - return + return &Typer{ + Author: NewGuildMember(*ev.Member, *g), + time: ev.Timestamp, + }, nil } - c, err := ch.self() + c, err := store.Channel(ev.ChannelID) if err != nil { - return + return nil, err } for _, user := range c.DMRecipients { - if user.ID == t.UserID { - ti.AddTyper(NewTyper(NewUser(user), t)) - return + if user.ID == ev.UserID { + return &Typer{ + Author: NewUser(user), + time: ev.Timestamp, + }, nil } } + + return nil, errors.New("typer not found in state") } func (t Typer) Time() time.Time {