diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-02-13 16:49:07 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-02-13 16:49:07 +0200 |
| commit | cfc5fa3d5e9036400b33a2835cc284f26a872ad9 (patch) | |
| tree | 9d2ba0ba3d87ad98443383358075e6e299e8bb77 /internal/client/ui/core/state/state.go | |
| parent | ab4b010e95360405d344e2859df423dc9d3b02fe (diff) | |
Users that are no longer members (left/kicked/banned) now get fetched
and show their names properly in messages
Diffstat (limited to 'internal/client/ui/core/state/state.go')
| -rw-r--r-- | internal/client/ui/core/state/state.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/client/ui/core/state/state.go b/internal/client/ui/core/state/state.go index da894ed..75fd8a7 100644 --- a/internal/client/ui/core/state/state.go +++ b/internal/client/ui/core/state/state.go @@ -144,6 +144,7 @@ func UpdateMessages(info *packet.MessagesInfo) { } } + unknownUsers := []snowflake.ID{} for _, message := range info.Messages { msgSource := message.FrequencyID if msgSource == nil { @@ -160,8 +161,16 @@ func UpdateMessages(info *packet.MessagesInfo) { State.Messages[*msgSource] = bt } bt.ReplaceOrInsert(message) + + if _, ok := State.Users[message.SenderID]; !ok { + unknownUsers = append(unknownUsers, message.SenderID) + } } + gateway.SendAsync(&packet.GetUsers{ + Users: unknownUsers, + }) + // Note: this is a naive approach // Ideally we check each message that was added/removed // For the frequency/receiver/sender id and only remove that @@ -360,3 +369,9 @@ func UpdateBlockedUsers(info *packet.BlockInfo) { State.BlockingUsers[blocking] = struct{}{} } } + +func UpdateUsersInfo(info *packet.UsersInfo) { + for _, user := range info.Users { + State.Users[user.ID] = user + } +} |
