From c1e97eb9d2e383147662ddd649fcab1bdaf295b4 Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sun, 2 Dec 2018 17:14:16 +0100 Subject: [PATCH] list: Fixed client's own nick not being updated by NAMES reply. --- list/list.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/list/list.go b/list/list.go index a1a0fe4..27a9da4 100644 --- a/list/list.go +++ b/list/list.go @@ -63,7 +63,22 @@ func (list *List) InsertFromNamesToken(namestoken string) (ok bool) { } } - return list.Insert(user) + ok = list.Insert(user) + if !ok { + // Patch the user's modes and prefixes since this is up to date information. + list.mutex.Lock() + for _, existing := range list.users { + if existing.Nick == user.Nick { + existing.Modes = user.Modes + existing.Prefixes = user.Prefixes + existing.updatePrefixedNick() + break + } + } + list.mutex.Unlock() + } + + return ok } // Insert a user. Modes and prefixes will be cleaned up before insertion.