bool CurrentRoom = false; HashSet requestedFriends = new HashSet(); int totalRequestsSent = 0; OnIntercept(In.MessengerError, e => { e.Block(); }); OnEnteredRoom(async (e) => { if (CurrentRoom) return; Log("Entered: " + e.Room.Data.Name); Log("Adding all users..."); CurrentRoom = true; await DelayAsync(2000); var usersToAdd = Users.Where(u => u.Id != UserId && !requestedFriends.Contains(u.Id)).ToList(); foreach (var user in usersToAdd) { Log($"Sending friend request to: {user.Name}"); try { AddFriend(user); requestedFriends.Add(user.Id); totalRequestsSent++; await DelayAsync(500); } catch (Exception ex) { Log($"Error adding {user.Name} as friend: {ex.Message}"); } } Log($"Total friend requests sent: {totalRequestsSent}"); }); OnLeftRoom(e => { Log("Left room"); CurrentRoom = false; }); OnEntityAdded(e => { if (CurrentRoom && e.Entity is IRoomUser user && user.Id != UserId && !requestedFriends.Contains(user.Id)) { Log($"New user joined: {user.Name}, adding as friend"); try { AddFriend(user); requestedFriends.Add(user.Id); totalRequestsSent++; } catch (Exception ex) { Log($"Error adding {user.Name} - {ex.Message}"); } } }); Log("Started"); Wait();