From ad58adeeb296b39d68fcfdffed99f84dd74d251e Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Tue, 21 Jan 2025 17:40:19 +0200 Subject: Fixed a bug where when kicking a member, it'd send a left request to the person who is kicking and not to the person who was kicked --- internal/server/api/api.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'internal/server/api/api.go') diff --git a/internal/server/api/api.go b/internal/server/api/api.go index e52372b..2d70174 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -615,18 +615,27 @@ func SetMember(ctx context.Context, sess *session.Session, request *packet.SetMe } if !newMember.IsMember { - NetworkPropagate(ctx, sess, request.Network, &packet.MembersInfo{ + membersInfoPayload := NetworkPropagateWithFilter(ctx, sess, request.Network, &packet.MembersInfo{ RemovedMembers: []snowflake.ID{newMember.UserID}, Members: nil, Users: nil, Network: request.Network, + }, func(userId snowflake.ID) (pass bool) { + return userId != newMember.UserID }) - return &packet.NetworksInfo{ + networksInfoPayload := &packet.NetworksInfo{ Networks: nil, RemovedNetworks: []snowflake.ID{request.Network}, Partial: false, } + + if newMember.UserID == sess.ID() { + return networksInfoPayload + } else { + UserPropagate(ctx, sess, newMember.UserID, networksInfoPayload) + return membersInfoPayload + } } user, err := queries.GetUserById(ctx, newMember.UserID) -- cgit v1.3.1