diff options
| author | mat <github@matdoes.dev> | 2022-06-25 16:23:40 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-06-25 16:23:40 -0500 |
| commit | 460bdfb8bbaf0969df6451a00fc3de214728aec0 (patch) | |
| tree | bc88105b401bcfc27922e70227a89a8f1ac0259a /azalea-client/src/movement.rs | |
| parent | 77980f0018eca3a192994021b76ad5d05bff88ea (diff) | |
| download | azalea-drasl-460bdfb8bbaf0969df6451a00fc3de214728aec0.tar.xz | |
merge ClientState and Client
Diffstat (limited to 'azalea-client/src/movement.rs')
| -rw-r--r-- | azalea-client/src/movement.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/azalea-client/src/movement.rs b/azalea-client/src/movement.rs index f74d48df..7ab4ddc2 100644 --- a/azalea-client/src/movement.rs +++ b/azalea-client/src/movement.rs @@ -5,24 +5,21 @@ use azalea_protocol::packets::game::serverbound_move_player_packet_pos_rot::Serv impl Client { /// Set the client's position to the given coordinates. pub async fn move_to(&mut self, new_pos: EntityPos) -> Result<(), String> { - println!("obtaining lock on state"); - let mut state_lock = self.state.lock().unwrap(); - println!("obtained lock on state"); + let mut dimension_lock = self.dimension.lock().unwrap(); + let dimension = dimension_lock.as_mut().unwrap(); - let world = state_lock.world.as_ref().unwrap(); + let mut player_lock = self.player.lock().unwrap(); - let player = &state_lock.player; - let player_id = if let Some(player) = player.entity(world) { - player.id + let player_id = if let Some(player_lock) = player_lock.entity(dimension) { + player_lock.id } else { return Err("Player entity not found".to_string()); }; - let world = state_lock.world.as_mut().unwrap(); - world.move_entity(player_id, new_pos)?; - drop(state_lock); + dimension.move_entity(player_id, new_pos)?; + drop(dimension_lock); + drop(player_lock); - println!("obtaining lock on conn"); self.conn .lock() .await |
