1
0
Fork 0
mirror of https://github.com/diamondburned/cchat-discord.git synced 2025-02-02 23:46:43 +00:00

Fixed Typer

This commit is contained in:
diamondburned (Forefront) 2020-07-03 12:06:59 -07:00
parent 4ecbbbe114
commit fbf95b9b6c

View file

@ -7,6 +7,7 @@ import (
"github.com/diamondburned/arikawa/gateway" "github.com/diamondburned/arikawa/gateway"
"github.com/diamondburned/arikawa/state" "github.com/diamondburned/arikawa/state"
"github.com/diamondburned/cchat" "github.com/diamondburned/cchat"
"github.com/pkg/errors"
) )
type Typer struct { 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) { func NewTyper(store state.Store, ev *gateway.TypingStartEvent) (*Typer, error) {
if t.ChannelID != ch.id { if ev.GuildID.Valid() {
return g, err := store.Guild(ev.GuildID)
}
if ch.guildID.Valid() {
g, err := ch.session.Store.Guild(t.GuildID)
if err != nil { if err != nil {
return return nil, err
} }
if t.Member == nil { if ev.Member == nil {
t.Member, err = ch.session.Store.Member(t.GuildID, t.UserID) ev.Member, err = store.Member(ev.GuildID, ev.UserID)
if err != nil { if err != nil {
return return nil, err
} }
} }
ti.AddTyper(NewTyper(NewGuildMember(*t.Member, *g), t)) return &Typer{
return Author: NewGuildMember(*ev.Member, *g),
time: ev.Timestamp,
}, nil
} }
c, err := ch.self() c, err := store.Channel(ev.ChannelID)
if err != nil { if err != nil {
return return nil, err
} }
for _, user := range c.DMRecipients { for _, user := range c.DMRecipients {
if user.ID == t.UserID { if user.ID == ev.UserID {
ti.AddTyper(NewTyper(NewUser(user), t)) return &Typer{
return Author: NewUser(user),
time: ev.Timestamp,
}, nil
} }
} }
return nil, errors.New("typer not found in state")
} }
func (t Typer) Time() time.Time { func (t Typer) Time() time.Time {