From 68bdb40c108b1a47b46cf5e175af295d2e2d3d20 Mon Sep 17 00:00:00 2001 From: "NG (Graham)" Date: Wed, 15 Apr 2026 18:04:45 -0400 Subject: [PATCH] Reject custom game invites if invitee is already in custom game; fix #114 --- rc_services_room/src/custom_game_tracker.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rc_services_room/src/custom_game_tracker.rs b/rc_services_room/src/custom_game_tracker.rs index 5d8a54e..35fa874 100644 --- a/rc_services_room/src/custom_game_tracker.rs +++ b/rc_services_room/src/custom_game_tracker.rs @@ -133,11 +133,14 @@ impl CustomGameMesh { } pub async fn invite_user(&self, inviter: &str, invitee: &str, is_team_a: bool) -> (InviteToCustomGameResponseCode, Option) { + let invitee_already_in_game = { self.user_to_game.read().await.get(invitee).is_some() }; if let Some(game_id) = { self.user_to_game.read().await.get(inviter).cloned() } { if let Some(game) = self.games.write().await.get_mut(&game_id) { if game.users.iter().any(|x| x.public_id == invitee) { let session = Self::session_from_game(&game_id, game); (InviteToCustomGameResponseCode::InviteeHasAlreadyBeenInvited, Some(session)) + } else if invitee_already_in_game { + (InviteToCustomGameResponseCode::InviteeIsInAnotherCustomGame, None) } else { let invitee_handle = UserHandle { public_id: invitee.to_owned(),