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/helpers.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'internal/server/api/helpers.go') diff --git a/internal/server/api/helpers.go b/internal/server/api/helpers.go index 03f45f1..22dd0dd 100644 --- a/internal/server/api/helpers.go +++ b/internal/server/api/helpers.go @@ -108,3 +108,25 @@ func SplitMembersAndUsers(membersAndUsers []data.GetNetworkMembersRow) ([]data.M return members, users } + +func UserPropagate( + ctx context.Context, sess *session.Session, + user snowflake.ID, payload packet.Payload, +) packet.Payload { + session := sess.Manager().Session(user) + if session == nil { + log.Println(sess.Addr(), "propagation to", session.Addr(), "failed due to session being nil") + return payload + } + timeout := 1 * time.Second + context, cancel := context.WithTimeout(context.Background(), timeout) + go func() { + defer cancel() + pkt := packet.NewPacket(packet.NewMsgPackEncoder(payload)) + if ok := session.Write(context, pkt); !ok { + log.Println(sess.Addr(), "propagation to", session.Addr(), "failed") + } + }() + + return payload +} -- cgit v1.3.1