aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/client.rs
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-06-23 15:12:17 -0500
committermat <github@matdoes.dev>2022-06-23 15:12:17 -0500
commit5ca49e680ed8519456dc9a9af84321d4b69dcbb3 (patch)
tree0f727c3e862f60eb227db69c87946a0f629a397d /azalea-client/src/client.rs
parentc7b0c51274b5d8548c8a2f829b75dfbec4038be2 (diff)
downloadazalea-drasl-5ca49e680ed8519456dc9a9af84321d4b69dcbb3.tar.xz
azalea-buf
Diffstat (limited to 'azalea-client/src/client.rs')
-rw-r--r--azalea-client/src/client.rs51
1 files changed, 33 insertions, 18 deletions
diff --git a/azalea-client/src/client.rs b/azalea-client/src/client.rs
index 828578de..a5259db9 100644
--- a/azalea-client/src/client.rs
+++ b/azalea-client/src/client.rs
@@ -1,5 +1,5 @@
use crate::{Account, Player};
-use azalea_core::{resource_location::ResourceLocation, ChunkPos};
+use azalea_core::{resource_location::ResourceLocation, ChunkPos, EntityPos};
use azalea_entity::Entity;
use azalea_protocol::{
connect::{GameConnection, HandshakeConnection},
@@ -387,6 +387,13 @@ impl Client {
}
GamePacket::ClientboundAddPlayerPacket(p) => {
println!("Got add player packet {:?}", p);
+ let entity = Entity::from(p);
+ state
+ .lock()?
+ .world
+ .as_mut()
+ .expect("World doesn't exist! We should've gotten a login packet by now.")
+ .add_entity(entity);
}
GamePacket::ClientboundInitializeBorderPacket(p) => {
println!("Got initialize border packet {:?}", p);
@@ -406,20 +413,18 @@ impl Client {
GamePacket::ClientboundSetExperiencePacket(p) => {
println!("Got set experience packet {:?}", p);
}
- GamePacket::ClientboundTeleportEntityPacket(_p) => {
- // println!("Got teleport entity packet {:?}", p);
- // let state_lock = state.lock()?;
-
- // let entity = state_lock
- // .world
- // .unwrap()
- // .entity_by_id(p.id)
- // .ok_or("Teleporting entity that doesn't exist.".to_string())?;
- // state_lock
- // .world
- // .as_mut()
- // .expect("World doesn't exist! We should've gotten a login packet by now.")
- // .move_entity(&mut entity, new_pos)
+ GamePacket::ClientboundTeleportEntityPacket(p) => {
+ let mut state_lock = state.lock()?;
+ let world = state_lock.world.as_mut().unwrap();
+
+ world.move_entity(
+ p.id,
+ EntityPos {
+ x: p.x,
+ y: p.y,
+ z: p.z,
+ },
+ )?;
}
GamePacket::ClientboundUpdateAdvancementsPacket(p) => {
println!("Got update advancements packet {:?}", p);
@@ -427,11 +432,21 @@ impl Client {
GamePacket::ClientboundRotateHeadPacket(_p) => {
// println!("Got rotate head packet {:?}", p);
}
- GamePacket::ClientboundMoveEntityPosPacket(_p) => {
+ GamePacket::ClientboundMoveEntityPosPacket(p) => {
// println!("Got move entity pos packet {:?}", p);
}
- GamePacket::ClientboundMoveEntityPosRotPacket(_p) => {
- // println!("Got move entity pos rot packet {:?}", p);
+ GamePacket::ClientboundMoveEntityPosRotPacket(p) => {
+ let mut state_lock = state.lock()?;
+ let world = state_lock.world.as_mut().unwrap();
+
+ world.move_entity(
+ p.entity_id,
+ EntityPos {
+ x: p.x,
+ y: p.y,
+ z: p.z,
+ },
+ )?;
}
GamePacket::ClientboundMoveEntityRotPacket(p) => {
println!("Got move entity rot packet {:?}", p);