File tree Expand file tree Collapse file tree 2 files changed +22
-10
lines changed
Expand file tree Collapse file tree 2 files changed +22
-10
lines changed Original file line number Diff line number Diff line change @@ -11,9 +11,21 @@ pub fn connection_killer(
1111 mut cmd : Commands ,
1212 state : Res < GlobalStateResource > ,
1313) {
14+ let mut disconnecting_player: Option < ( Entity , & StreamWriter , & PlayerIdentity ) > = None ;
1415 while let Some ( ( disconnecting_entity, reason) ) = state. 0 . players . disconnection_queue . pop ( ) {
15- let disconnecting_player: & ( Entity , & StreamWriter , & PlayerIdentity ) =
16- & query. get ( disconnecting_entity) . unwrap ( ) ;
16+ if query. contains ( disconnecting_entity) && disconnecting_player. is_none ( ) {
17+ let entity_result = query. get ( disconnecting_entity) ;
18+
19+ match entity_result {
20+ Ok ( player_result) => {
21+ disconnecting_player = Some ( player_result) ;
22+ }
23+ Err ( e) => {
24+ disconnecting_player = None ;
25+ trace ! ( "Disconnecting player not in query: {}" , e) ;
26+ }
27+ }
28+ }
1729
1830 for ( entity, conn, player_identity) in query. iter ( ) {
1931 if disconnecting_entity == entity {
@@ -47,7 +59,9 @@ pub fn connection_killer(
4759 ) ;
4860 }
4961 } else {
50- system_messages:: player_leave:: handle ( disconnecting_player. 2 , entity) ;
62+ if disconnecting_player. is_some ( ) {
63+ system_messages:: player_leave:: handle ( disconnecting_player. unwrap ( ) . 2 , entity) ;
64+ }
5165 }
5266 cmd. entity ( entity) . despawn ( ) ;
5367 }
Original file line number Diff line number Diff line change @@ -61,14 +61,12 @@ pub fn accept_new_connections(
6161 ) ;
6262
6363 for player in & state. 0 . players . player_list {
64- if player
65- . value ( )
66- . 0
67- . eq ( & new_connection. player_identity . uuid . as_u128 ( ) )
68- {
69- continue ;
64+ if player. value ( ) . 0 != new_connection. player_identity . uuid . as_u128 ( ) {
65+ system_messages:: player_join:: handle (
66+ & new_connection. player_identity ,
67+ * player. key ( ) ,
68+ ) ;
7069 }
71- system_messages:: player_join:: handle ( & new_connection. player_identity , * player. key ( ) ) ;
7270 }
7371
7472 if let Err ( err) = return_sender. send ( entity. id ( ) ) {
You can’t perform that action at this time.
0 commit comments