diff --git a/rnex-core/src/nex/matchmake.rs b/rnex-core/src/nex/matchmake.rs index 032fbad..085c8a1 100644 --- a/rnex-core/src/nex/matchmake.rs +++ b/rnex-core/src/nex/matchmake.rs @@ -236,6 +236,9 @@ impl ExtendedMatchmakeSession { }*/ for pid in &list_of_connected_pids { + if other_conn.pid == *pid { + continue; + } other_conn .remote .process_notification_event(NotificationEvent { @@ -247,28 +250,31 @@ impl ExtendedMatchmakeSession { param_3: self.connected_players.len() as _, }) .await; - } + } } for old_conns in &old_particip { let Some(old_conns) = old_conns.upgrade() else { continue; }; - if old_conns.pid != self.session.gathering.host_pid{ - continue; + if old_conns.pid != self.session.gathering.host_pid { + continue; } - for new_conn_pid in conns.iter().filter_map(Weak::upgrade).map(|c| c.pid){ - old_conns - .remote - .process_notification_event(NotificationEvent { - pid_source: initiating_pid, - notif_type: 3001, - param_1: self.session.gathering.self_gid as PID, - param_2: new_conn_pid, - str_param: join_msg.clone(), - param_3: self.connected_players.len() as _, - }) - .await; + for new_conn_pid in conns.iter().filter_map(Weak::upgrade).map(|c| c.pid) { + if old_conns.pid == new_conn_pid { + continue; + } + old_conns + .remote + .process_notification_event(NotificationEvent { + pid_source: initiating_pid, + notif_type: 3001, + param_1: self.session.gathering.self_gid as PID, + param_2: new_conn_pid, + str_param: join_msg.clone(), + param_3: self.connected_players.len() as _, + }) + .await; } } }