diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-01-21 18:23:57 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-01-21 18:23:57 +0200 |
| commit | c02511af29295973c30b2a95c86ee9c40f764591 (patch) | |
| tree | 7a72215a53081733a52c5f58287f98d5a36fa8f8 /internal/client/ui/core | |
| parent | 8f87941f91fa4a3e98c4797b9c700b21d5037ade (diff) | |
Added the ability to kick someone by pressing "K" on his message in chat
Diffstat (limited to 'internal/client/ui/core')
| -rw-r--r-- | internal/client/ui/core/chat/chat.go | 35 | ||||
| -rw-r--r-- | internal/client/ui/core/memberlist/memberlist.go | 6 |
2 files changed, 36 insertions, 5 deletions
diff --git a/internal/client/ui/core/chat/chat.go b/internal/client/ui/core/chat/chat.go index b67e0bf..888ecd1 100644 --- a/internal/client/ui/core/chat/chat.go +++ b/internal/client/ui/core/chat/chat.go @@ -326,6 +326,41 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) { m.style = editStyle } + // Admin + case "K": + if m.selectedMessage == nil { + return m, nil + } + networkId := state.NetworkId(m.networkIndex) + network := state.State.Networks[*networkId] + senderId := m.selectedMessage.SenderID + member := state.State.Members[*networkId][senderId] + + if !state.State.Members[*networkId][*state.UserID].IsAdmin { + return m, nil + } + + if member.UserID == *state.UserID { + return m, nil + } + + if member.IsAdmin && network.OwnerID != *state.UserID { + return m, nil + } + + no := false + return m, gateway.Send(&packet.SetMember{ + Member: &no, + Admin: nil, + Muted: nil, + Banned: nil, + BanReason: nil, + Network: *state.NetworkId(m.networkIndex), + User: member.UserID, + }) + case "B": + // TODO: ban + // Owner case "D": if m.selectedMessage == nil { diff --git a/internal/client/ui/core/memberlist/memberlist.go b/internal/client/ui/core/memberlist/memberlist.go index 764613d..b531b14 100644 --- a/internal/client/ui/core/memberlist/memberlist.go +++ b/internal/client/ui/core/memberlist/memberlist.go @@ -174,10 +174,6 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) { return m, nil } - if member.UserID == network.OwnerID { - return m, nil - } - no := false return m, gateway.Send(&packet.SetMember{ Member: &no, @@ -188,7 +184,7 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) { Network: *state.NetworkId(m.networkIndex), User: member.UserID, }) - case "b": + case "B": // TODO: ban // Owner |
