+5
-3
client/src/components/network_interface.rs
+5
-3
client/src/components/network_interface.rs
···
44
join_players(packet.ids, &mut commands, &mut meshes, &mut materials, &mut net_manager);
45
}
46
PacketTypes::PlayerLeavePacket(packet) => {
47
-
leave_player(packet.id, &mut commands, players);
48
}
49
PacketTypes::UpdateClientsPositions(packet) => {
50
let mut map = HashMap::new();
···
98
99
fn leave_player(
100
id: String,
101
-
102
commands: &mut Commands,
103
104
-
players: Query<(Entity, &mut RemotePlayer)>
105
){
106
for ( entity, player ) in players{
107
if id == player.id{
108
commands.entity(entity).despawn();
···
44
join_players(packet.ids, &mut commands, &mut meshes, &mut materials, &mut net_manager);
45
}
46
PacketTypes::PlayerLeavePacket(packet) => {
47
+
leave_player(packet.id, &mut commands, players, &mut net_manager);
48
}
49
PacketTypes::UpdateClientsPositions(packet) => {
50
let mut map = HashMap::new();
···
98
99
fn leave_player(
100
id: String,
101
commands: &mut Commands,
102
103
+
players: Query<(Entity, &mut RemotePlayer)>,
104
+
net_manager: &mut Connection
105
){
106
+
net_manager.stop_listening_for_player_voice(&id);
107
+
108
for ( entity, player ) in players{
109
if id == player.id{
110
commands.entity(entity).despawn();
+5
client/src/net/connection.rs
+5
client/src/net/connection.rs
···
117
voice_queue
118
}
119
120
+
pub fn stop_listening_for_player_voice( &mut self, id: &String ){
121
+
let mut voices = self.voice_queues.write().unwrap();
122
+
voices.remove(id);
123
+
}
124
+
125
pub fn recv_event(&mut self) -> anyhow::Result<NetClientCommand>{
126
Ok(self.net_recv.try_recv()?)
127
}