From cf640ac83d667f9e5d504d048797b3ddb11c0768 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 14 Jun 2023 10:56:24 +0300 Subject: [PATCH] Ignore incoming typing notifications from logged-in users --- user.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/user.go b/user.go index c6f7e0c..616cd8f 100644 --- a/user.go +++ b/user.go @@ -186,6 +186,12 @@ func (br *DiscordBridge) GetUserByID(id string) *User { return user } +func (br *DiscordBridge) GetCachedUserByID(id string) *User { + br.usersLock.Lock() + defer br.usersLock.Unlock() + return br.usersByID[id] +} + func (br *DiscordBridge) NewUser(dbUser *database.User) *User { user := &User{ User: dbUser, @@ -1228,10 +1234,17 @@ func (user *User) messageAckHandler(m *discordgo.MessageAck) { } func (user *User) typingStartHandler(t *discordgo.TypingStart) { + if t.UserID == user.DiscordID { + return + } portal := user.GetExistingPortalByID(t.ChannelID) if portal == nil || portal.MXID == "" { return } + targetUser := user.bridge.GetCachedUserByID(t.UserID) + if targetUser != nil { + return + } portal.handleDiscordTyping(t) }