소스 검색

Ignore incoming typing notifications from logged-in users

Tulir Asokan 2 년 전
부모
커밋
cf640ac83d
1개의 변경된 파일13개의 추가작업 그리고 0개의 파일을 삭제
  1. 13 0
      user.go

+ 13 - 0
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)
 }