Ignore incoming typing notifications from logged-in users

This commit is contained in:
Tulir Asokan
2023-06-14 10:56:24 +03:00
parent 67c8d9237e
commit cf640ac83d

13
user.go
View File

@@ -186,6 +186,12 @@ func (br *DiscordBridge) GetUserByID(id string) *User {
return 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 { func (br *DiscordBridge) NewUser(dbUser *database.User) *User {
user := &User{ user := &User{
User: dbUser, User: dbUser,
@@ -1228,10 +1234,17 @@ func (user *User) messageAckHandler(m *discordgo.MessageAck) {
} }
func (user *User) typingStartHandler(t *discordgo.TypingStart) { func (user *User) typingStartHandler(t *discordgo.TypingStart) {
if t.UserID == user.DiscordID {
return
}
portal := user.GetExistingPortalByID(t.ChannelID) portal := user.GetExistingPortalByID(t.ChannelID)
if portal == nil || portal.MXID == "" { if portal == nil || portal.MXID == "" {
return return
} }
targetUser := user.bridge.GetCachedUserByID(t.UserID)
if targetUser != nil {
return
}
portal.handleDiscordTyping(t) portal.handleDiscordTyping(t)
} }