aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/packets
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-protocol/src/packets')
-rwxr-xr-xazalea-protocol/src/packets/config/mod.rs50
-rwxr-xr-xazalea-protocol/src/packets/game/c_add_experience_orb.rs5
-rw-r--r--azalea-protocol/src/packets/game/c_container_close.rs3
-rwxr-xr-xazalea-protocol/src/packets/game/c_container_set_content.rs3
-rwxr-xr-xazalea-protocol/src/packets/game/c_container_set_data.rs3
-rwxr-xr-xazalea-protocol/src/packets/game/c_container_set_slot.rs3
-rwxr-xr-xazalea-protocol/src/packets/game/c_entity_position_sync.rs2
-rwxr-xr-xazalea-protocol/src/packets/game/c_explode.rs167
-rwxr-xr-xazalea-protocol/src/packets/game/c_horse_screen_open.rs5
-rwxr-xr-xazalea-protocol/src/packets/game/c_level_particles.rs5
-rwxr-xr-xazalea-protocol/src/packets/game/c_merchant_offers.rs2
-rwxr-xr-xazalea-protocol/src/packets/game/c_move_vehicle.rs9
-rwxr-xr-xazalea-protocol/src/packets/game/c_open_screen.rs2
-rwxr-xr-xazalea-protocol/src/packets/game/c_place_ghost_recipe.rs8
-rwxr-xr-xazalea-protocol/src/packets/game/c_player_look_at.rs5
-rwxr-xr-xazalea-protocol/src/packets/game/c_player_position.rs76
-rwxr-xr-xazalea-protocol/src/packets/game/c_player_rotation.rs4
-rwxr-xr-xazalea-protocol/src/packets/game/c_recipe_book_add.rs55
-rw-r--r--azalea-protocol/src/packets/game/c_set_cursor_item.rs2
-rw-r--r--azalea-protocol/src/packets/game/c_set_held_slot.rs3
-rw-r--r--azalea-protocol/src/packets/game/c_set_player_inventory.rs4
-rwxr-xr-xazalea-protocol/src/packets/game/c_teleport_entity.rs9
-rwxr-xr-xazalea-protocol/src/packets/game/c_update_recipes.rs50
-rwxr-xr-xazalea-protocol/src/packets/game/mod.rs386
-rwxr-xr-xazalea-protocol/src/packets/game/s_container_button_click.rs6
-rwxr-xr-xazalea-protocol/src/packets/game/s_container_click.rs3
-rwxr-xr-xazalea-protocol/src/packets/game/s_container_close.rs3
-rw-r--r--azalea-protocol/src/packets/game/s_container_slot_state_changed.rs2
-rwxr-xr-xazalea-protocol/src/packets/game/s_move_player_pos.rs5
-rwxr-xr-xazalea-protocol/src/packets/game/s_move_player_pos_rot.rs4
-rwxr-xr-xazalea-protocol/src/packets/game/s_move_player_rot.rs4
-rwxr-xr-xazalea-protocol/src/packets/game/s_move_vehicle.rs9
-rwxr-xr-xazalea-protocol/src/packets/game/s_place_recipe.rs3
-rwxr-xr-xazalea-protocol/src/packets/handshake/mod.rs2
-rwxr-xr-xazalea-protocol/src/packets/login/mod.rs22
-rwxr-xr-xazalea-protocol/src/packets/status/mod.rs8
36 files changed, 311 insertions, 621 deletions
diff --git a/azalea-protocol/src/packets/config/mod.rs b/azalea-protocol/src/packets/config/mod.rs
index 4eda0f03..ab1c1a78 100755
--- a/azalea-protocol/src/packets/config/mod.rs
+++ b/azalea-protocol/src/packets/config/mod.rs
@@ -5,32 +5,32 @@ use azalea_protocol_macros::declare_state_packets;
declare_state_packets!(ConfigPacket,
Clientbound => [
- cookie_request,
- custom_payload,
- disconnect,
- finish_configuration,
- keep_alive,
- ping,
- reset_chat,
- registry_data,
- resource_pack_pop,
- resource_pack_push,
- store_cookie,
- transfer,
- update_enabled_features,
- update_tags,
- select_known_packs,
- custom_report_details,
- server_links,
+ cookie_request, // 0x00
+ custom_payload, // 0x01
+ disconnect, // 0x02
+ finish_configuration, // 0x03
+ keep_alive, // 0x04
+ ping, // 0x05
+ reset_chat, // 0x06
+ registry_data, // 0x07
+ resource_pack_pop, // 0x08
+ resource_pack_push, // 0x09
+ store_cookie, // 0x0A
+ transfer, // 0x0B
+ update_enabled_features, // 0x0C
+ update_tags, // 0x0D
+ select_known_packs, // 0x0E
+ custom_report_details, // 0x0F
+ server_links, // 0x10
],
Serverbound => [
- client_information,
- cookie_response,
- custom_payload,
- finish_configuration,
- keep_alive,
- pong,
- resource_pack,
- select_known_packs,
+ client_information, // 0x00
+ cookie_response, // 0x01
+ custom_payload, // 0x02
+ finish_configuration, // 0x03
+ keep_alive, // 0x04
+ pong, // 0x05
+ resource_pack, // 0x06
+ select_known_packs, // 0x07
]
);
diff --git a/azalea-protocol/src/packets/game/c_add_experience_orb.rs b/azalea-protocol/src/packets/game/c_add_experience_orb.rs
index b3d12858..195ccc5a 100755
--- a/azalea-protocol/src/packets/game/c_add_experience_orb.rs
+++ b/azalea-protocol/src/packets/game/c_add_experience_orb.rs
@@ -1,12 +1,11 @@
use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundAddExperienceOrb {
#[var]
pub id: u32,
- pub x: f64,
- pub y: f64,
- pub z: f64,
+ pub pos: Vec3,
pub value: u16,
}
diff --git a/azalea-protocol/src/packets/game/c_container_close.rs b/azalea-protocol/src/packets/game/c_container_close.rs
index dda6153b..1e6623c0 100644
--- a/azalea-protocol/src/packets/game/c_container_close.rs
+++ b/azalea-protocol/src/packets/game/c_container_close.rs
@@ -3,5 +3,6 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundContainerClose {
- pub container_id: u8,
+ #[var]
+ pub container_id: i32,
}
diff --git a/azalea-protocol/src/packets/game/c_container_set_content.rs b/azalea-protocol/src/packets/game/c_container_set_content.rs
index d4bd9184..0a7e910b 100755
--- a/azalea-protocol/src/packets/game/c_container_set_content.rs
+++ b/azalea-protocol/src/packets/game/c_container_set_content.rs
@@ -4,7 +4,8 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundContainerSetContent {
- pub container_id: i8,
+ #[var]
+ pub container_id: i32,
#[var]
pub state_id: u32,
pub items: Vec<ItemStack>,
diff --git a/azalea-protocol/src/packets/game/c_container_set_data.rs b/azalea-protocol/src/packets/game/c_container_set_data.rs
index 3815f5c5..149080b1 100755
--- a/azalea-protocol/src/packets/game/c_container_set_data.rs
+++ b/azalea-protocol/src/packets/game/c_container_set_data.rs
@@ -3,7 +3,8 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundContainerSetData {
- pub container_id: i8,
+ #[var]
+ pub container_id: i32,
pub id: u16,
pub value: u16,
}
diff --git a/azalea-protocol/src/packets/game/c_container_set_slot.rs b/azalea-protocol/src/packets/game/c_container_set_slot.rs
index 5e3476d9..20df5b06 100755
--- a/azalea-protocol/src/packets/game/c_container_set_slot.rs
+++ b/azalea-protocol/src/packets/game/c_container_set_slot.rs
@@ -4,7 +4,8 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundContainerSetSlot {
- pub container_id: i8,
+ #[var]
+ pub container_id: i32,
#[var]
pub state_id: u32,
pub slot: u16,
diff --git a/azalea-protocol/src/packets/game/c_entity_position_sync.rs b/azalea-protocol/src/packets/game/c_entity_position_sync.rs
index 6347ec5e..0e8bea01 100755
--- a/azalea-protocol/src/packets/game/c_entity_position_sync.rs
+++ b/azalea-protocol/src/packets/game/c_entity_position_sync.rs
@@ -1,7 +1,7 @@
use azalea_buf::AzBuf;
use azalea_protocol_macros::ClientboundGamePacket;
-use super::c_player_position::PositionMoveRotation;
+use crate::common::movements::PositionMoveRotation;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundEntityPositionSync {
diff --git a/azalea-protocol/src/packets/game/c_explode.rs b/azalea-protocol/src/packets/game/c_explode.rs
index aef3887d..c5d90d03 100755
--- a/azalea-protocol/src/packets/game/c_explode.rs
+++ b/azalea-protocol/src/packets/game/c_explode.rs
@@ -1,164 +1,13 @@
-use std::{
- io::{Cursor, Write},
- str::FromStr,
-};
-
-use azalea_buf::{AzBuf, AzaleaRead, AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError};
-use azalea_core::{position::BlockPos, resource_location::ResourceLocation};
+use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
+use azalea_entity::particle::Particle;
use azalea_protocol_macros::ClientboundGamePacket;
-use azalea_registry::{ParticleKind, SoundEvent};
+use azalea_registry::SoundEvent;
-#[derive(Clone, Debug, PartialEq, ClientboundGamePacket)]
+#[derive(Clone, Debug, ClientboundGamePacket, AzBuf)]
pub struct ClientboundExplode {
- pub x: f64,
- pub y: f64,
- pub z: f64,
- pub power: f32,
- pub to_blow: Vec<BlockPos>,
- pub knockback_x: f32,
- pub knockback_y: f32,
- pub knockback_z: f32,
- pub block_interaction: BlockInteraction,
- pub small_explosion_particles: ParticleKind,
- pub large_explosion_particles: ParticleKind,
+ pub center: Vec3,
+ pub knockback: Option<Vec3>,
+ pub explosion_particle: Particle,
pub explosion_sound: SoundEvent,
}
-
-#[derive(Clone, Copy, Debug, PartialEq, AzBuf)]
-pub enum BlockInteraction {
- Keep,
- Destroy,
- DestroyWithDecay,
- TriggerBlock,
-}
-
-impl AzaleaRead for ClientboundExplode {
- fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
- let x = f64::azalea_read(buf)?;
- let y = f64::azalea_read(buf)?;
- let z = f64::azalea_read(buf)?;
- let power = f32::azalea_read(buf)?;
-
- let x_floor = x.floor() as i32;
- let y_floor = y.floor() as i32;
- let z_floor = z.floor() as i32;
-
- let to_blow_len = u32::azalea_read_var(buf)?;
- let mut to_blow = Vec::with_capacity(to_blow_len as usize);
- for _ in 0..to_blow_len {
- // the bytes are offsets from the main x y z
- let x = x_floor + i32::from(i8::azalea_read(buf)?);
- let y = y_floor + i32::from(i8::azalea_read(buf)?);
- let z = z_floor + i32::from(i8::azalea_read(buf)?);
- to_blow.push(BlockPos { x, y, z });
- }
-
- let knockback_x = f32::azalea_read(buf)?;
- let knockback_y = f32::azalea_read(buf)?;
- let knockback_z = f32::azalea_read(buf)?;
-
- let block_interaction = BlockInteraction::azalea_read(buf)?;
- let small_explosion_particles = ParticleKind::azalea_read(buf)?;
- let large_explosion_particles = ParticleKind::azalea_read(buf)?;
-
- let sound_event_resource_location = ResourceLocation::azalea_read(buf)?.to_string();
- let explosion_sound =
- SoundEvent::from_str(&sound_event_resource_location).map_err(|_| {
- BufReadError::UnexpectedStringEnumVariant {
- id: sound_event_resource_location,
- }
- })?;
-
- Ok(Self {
- x,
- y,
- z,
- power,
- to_blow,
- knockback_x,
- knockback_y,
- knockback_z,
- block_interaction,
- small_explosion_particles,
- large_explosion_particles,
- explosion_sound,
- })
- }
-}
-
-impl AzaleaWrite for ClientboundExplode {
- fn azalea_write(&self, buf: &mut impl Write) -> Result<(), std::io::Error> {
- self.x.azalea_write(buf)?;
- self.y.azalea_write(buf)?;
- self.z.azalea_write(buf)?;
- self.power.azalea_write(buf)?;
-
- let to_blow_len = self.to_blow.len() as u32;
- to_blow_len.azalea_write_var(buf)?;
-
- let x_floor = self.x.floor() as i32;
- let y_floor = self.y.floor() as i32;
- let z_floor = self.z.floor() as i32;
-
- for pos in &self.to_blow {
- let x = (pos.x - x_floor) as i8;
- let y = (pos.y - y_floor) as i8;
- let z = (pos.z - z_floor) as i8;
- x.azalea_write(buf)?;
- y.azalea_write(buf)?;
- z.azalea_write(buf)?;
- }
-
- self.knockback_x.azalea_write(buf)?;
- self.knockback_y.azalea_write(buf)?;
- self.knockback_z.azalea_write(buf)?;
-
- self.block_interaction.azalea_write(buf)?;
- self.small_explosion_particles.azalea_write(buf)?;
- self.large_explosion_particles.azalea_write(buf)?;
-
- let sound_event_resource_location =
- ResourceLocation::new(&self.explosion_sound.to_string());
- sound_event_resource_location.azalea_write(buf)?;
-
- Ok(())
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_read_write() {
- let packet = ClientboundExplode {
- x: 123_456.0,
- y: 789_012.0,
- z: 345_678.0,
- power: 1_000.0,
- to_blow: vec![
- BlockPos {
- x: 123_456 + 1,
- y: 789_012 + 2,
- z: 345_678 - 127,
- },
- BlockPos {
- x: 123_456 + 4,
- y: 789_012 - 5,
- z: 345_678 + 6,
- },
- ],
- knockback_x: 1_000.0,
- knockback_y: 2_000.0,
- knockback_z: 3_000.0,
- block_interaction: BlockInteraction::Destroy,
- small_explosion_particles: ParticleKind::Explosion,
- large_explosion_particles: ParticleKind::ExplosionEmitter,
- explosion_sound: SoundEvent::EntityGenericExplode,
- };
- let mut buf = Vec::new();
- packet.azalea_write(&mut buf).unwrap();
- let packet2 = ClientboundExplode::azalea_read(&mut Cursor::new(&buf)).unwrap();
- assert_eq!(packet, packet2);
- }
-}
diff --git a/azalea-protocol/src/packets/game/c_horse_screen_open.rs b/azalea-protocol/src/packets/game/c_horse_screen_open.rs
index 13a67253..10a89725 100755
--- a/azalea-protocol/src/packets/game/c_horse_screen_open.rs
+++ b/azalea-protocol/src/packets/game/c_horse_screen_open.rs
@@ -3,8 +3,9 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundHorseScreenOpen {
- pub container_id: u8,
#[var]
- pub size: u32,
+ pub container_id: i32,
+ #[var]
+ pub inventory_columns: u32,
pub entity_id: u32,
}
diff --git a/azalea-protocol/src/packets/game/c_level_particles.rs b/azalea-protocol/src/packets/game/c_level_particles.rs
index ef50d0cd..4f77af84 100755
--- a/azalea-protocol/src/packets/game/c_level_particles.rs
+++ b/azalea-protocol/src/packets/game/c_level_particles.rs
@@ -1,4 +1,5 @@
use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
use azalea_entity::particle::Particle;
use azalea_protocol_macros::ClientboundGamePacket;
@@ -6,9 +7,7 @@ use azalea_protocol_macros::ClientboundGamePacket;
pub struct ClientboundLevelParticles {
pub override_limiter: bool,
pub always_show: bool,
- pub x: f64,
- pub y: f64,
- pub z: f64,
+ pub pos: Vec3,
pub x_dist: f32,
pub y_dist: f32,
pub z_dist: f32,
diff --git a/azalea-protocol/src/packets/game/c_merchant_offers.rs b/azalea-protocol/src/packets/game/c_merchant_offers.rs
index e1822579..f50f9932 100755
--- a/azalea-protocol/src/packets/game/c_merchant_offers.rs
+++ b/azalea-protocol/src/packets/game/c_merchant_offers.rs
@@ -5,7 +5,7 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundMerchantOffers {
#[var]
- pub container_id: u32,
+ pub container_id: i32,
pub offers: Vec<MerchantOffer>,
#[var]
pub villager_level: u32,
diff --git a/azalea-protocol/src/packets/game/c_move_vehicle.rs b/azalea-protocol/src/packets/game/c_move_vehicle.rs
index 96e3e5c2..e9891694 100755
--- a/azalea-protocol/src/packets/game/c_move_vehicle.rs
+++ b/azalea-protocol/src/packets/game/c_move_vehicle.rs
@@ -1,11 +1,10 @@
use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
+use azalea_entity::LookDirection;
use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundMoveVehicle {
- pub x: f64,
- pub y: f64,
- pub z: f64,
- pub y_rot: f32,
- pub x_rot: f32,
+ pub pos: Vec3,
+ pub look_direction: LookDirection,
}
diff --git a/azalea-protocol/src/packets/game/c_open_screen.rs b/azalea-protocol/src/packets/game/c_open_screen.rs
index 4ba71725..834802dd 100755
--- a/azalea-protocol/src/packets/game/c_open_screen.rs
+++ b/azalea-protocol/src/packets/game/c_open_screen.rs
@@ -5,7 +5,7 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundOpenScreen {
#[var]
- pub container_id: u32,
+ pub container_id: i32,
pub menu_type: azalea_registry::MenuKind,
pub title: FormattedText,
}
diff --git a/azalea-protocol/src/packets/game/c_place_ghost_recipe.rs b/azalea-protocol/src/packets/game/c_place_ghost_recipe.rs
index 41c32403..ec2fc772 100755
--- a/azalea-protocol/src/packets/game/c_place_ghost_recipe.rs
+++ b/azalea-protocol/src/packets/game/c_place_ghost_recipe.rs
@@ -1,9 +1,11 @@
use azalea_buf::AzBuf;
-use azalea_core::resource_location::ResourceLocation;
use azalea_protocol_macros::ClientboundGamePacket;
+use crate::common::recipe::RecipeDisplayData;
+
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundPlaceGhostRecipe {
- pub container_id: u8,
- pub recipe: ResourceLocation,
+ #[var]
+ pub container_id: i32,
+ pub recipe: RecipeDisplayData,
}
diff --git a/azalea-protocol/src/packets/game/c_player_look_at.rs b/azalea-protocol/src/packets/game/c_player_look_at.rs
index 4d886814..cc5e0bda 100755
--- a/azalea-protocol/src/packets/game/c_player_look_at.rs
+++ b/azalea-protocol/src/packets/game/c_player_look_at.rs
@@ -1,12 +1,11 @@
use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundPlayerLookAt {
pub from_anchor: Anchor,
- pub x: f64,
- pub y: f64,
- pub z: f64,
+ pub pos: Vec3,
pub entity: Option<AtEntity>,
}
diff --git a/azalea-protocol/src/packets/game/c_player_position.rs b/azalea-protocol/src/packets/game/c_player_position.rs
index 8d19ce36..8460f428 100755
--- a/azalea-protocol/src/packets/game/c_player_position.rs
+++ b/azalea-protocol/src/packets/game/c_player_position.rs
@@ -1,10 +1,8 @@
-use std::io::{Cursor, Write};
-
-use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError};
-use azalea_core::{bitset::FixedBitSet, position::Vec3};
-use azalea_entity::LookDirection;
+use azalea_buf::AzBuf;
use azalea_protocol_macros::ClientboundGamePacket;
+use crate::common::movements::{PositionMoveRotation, RelativeMovements};
+
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundPlayerPosition {
#[var]
@@ -12,71 +10,3 @@ pub struct ClientboundPlayerPosition {
pub change: PositionMoveRotation,
pub relative: RelativeMovements,
}
-
-/// These values are either absolute or relative, depending on the fields from
-/// the [`RelativeMovements`].
-#[derive(Clone, Debug, AzBuf)]
-pub struct PositionMoveRotation {
- pub pos: Vec3,
- /// The updated delta movement (velocity).
- ///
- /// This is unused when included in a [`ClientboundEntityPositionSync`].
- ///
- /// [`ClientboundEntityPositionSync`]: super::c_entity_position_sync::ClientboundEntityPositionSync
- pub delta: Vec3,
- pub look_direction: LookDirection,
-}
-
-#[derive(Debug, Clone)]
-pub struct RelativeMovements {
- pub x: bool,
- pub y: bool,
- pub z: bool,
- pub y_rot: bool,
- pub x_rot: bool,
- pub delta_x: bool,
- pub delta_y: bool,
- pub delta_z: bool,
- pub rotate_delta: bool,
-}
-
-impl AzaleaRead for RelativeMovements {
- fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
- // yes minecraft seriously wastes that many bits, smh
- let set = FixedBitSet::<{ 32_usize.div_ceil(8) }>::azalea_read(buf)?;
- Ok(RelativeMovements {
- x: set.index(0),
- y: set.index(1),
- z: set.index(2),
- y_rot: set.index(3),
- x_rot: set.index(4),
- delta_x: set.index(5),
- delta_y: set.index(6),
- delta_z: set.index(7),
- rotate_delta: set.index(8),
- })
- }
-}
-
-impl AzaleaWrite for RelativeMovements {
- fn azalea_write(&self, buf: &mut impl Write) -> Result<(), std::io::Error> {
- let mut set = FixedBitSet::<{ 32_usize.div_ceil(8) }>::new();
- let mut set_bit = |index: usize, value: bool| {
- if value {
- set.set(index);
- }
- };
-
- set_bit(0, self.x);
- set_bit(1, self.y);
- set_bit(2, self.z);
- set_bit(3, self.y_rot);
- set_bit(4, self.x_rot);
- set_bit(5, self.delta_x);
- set_bit(6, self.delta_y);
- set_bit(7, self.delta_z);
- set_bit(8, self.rotate_delta);
-
- set.azalea_write(buf)
- }
-}
diff --git a/azalea-protocol/src/packets/game/c_player_rotation.rs b/azalea-protocol/src/packets/game/c_player_rotation.rs
index 33214cf9..3e214203 100755
--- a/azalea-protocol/src/packets/game/c_player_rotation.rs
+++ b/azalea-protocol/src/packets/game/c_player_rotation.rs
@@ -1,8 +1,8 @@
use azalea_buf::AzBuf;
+use azalea_entity::LookDirection;
use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundPlayerRotation {
- pub y_rot: f32,
- pub x_rot: f32,
+ pub look_direction: LookDirection,
}
diff --git a/azalea-protocol/src/packets/game/c_recipe_book_add.rs b/azalea-protocol/src/packets/game/c_recipe_book_add.rs
index e6b91130..d31c4e74 100755
--- a/azalea-protocol/src/packets/game/c_recipe_book_add.rs
+++ b/azalea-protocol/src/packets/game/c_recipe_book_add.rs
@@ -1,7 +1,7 @@
use azalea_buf::AzBuf;
use azalea_protocol_macros::ClientboundGamePacket;
-use super::c_update_recipes::{Ingredient, SlotDisplayData};
+use crate::common::recipe::{Ingredient, RecipeDisplayData};
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundRecipeBookAdd {
@@ -20,60 +20,9 @@ pub struct RecipeDisplayEntry {
#[var]
pub id: u32,
pub display: RecipeDisplayData,
- // ByteBufCodecs.OPTIONAL_VAR_INT
+ // optional varint
#[var]
pub group: u32,
pub category: azalea_registry::RecipeBookCategory,
pub crafting_requirements: Option<Vec<Ingredient>>,
}
-
-/// [`azalea_registry::RecipeDisplay`]
-#[derive(Clone, Debug, AzBuf)]
-pub enum RecipeDisplayData {
- Shapeless(ShapelessCraftingRecipeDisplay),
- Shaped(ShapedCraftingRecipeDisplay),
- Furnace(FurnaceRecipeDisplay),
- Stonecutter(StonecutterRecipeDisplay),
- Smithing(SmithingRecipeDisplay),
-}
-
-#[derive(Clone, Debug, AzBuf)]
-pub struct ShapelessCraftingRecipeDisplay {
- pub ingredients: Vec<SlotDisplayData>,
- pub result: SlotDisplayData,
- pub crafting_station: SlotDisplayData,
-}
-#[derive(Clone, Debug, AzBuf)]
-pub struct ShapedCraftingRecipeDisplay {
- #[var]
- pub width: u32,
- #[var]
- pub height: u32,
- pub ingredients: Vec<SlotDisplayData>,
- pub result: SlotDisplayData,
- pub crafting_station: SlotDisplayData,
-}
-#[derive(Clone, Debug, AzBuf)]
-pub struct FurnaceRecipeDisplay {
- pub ingredient: SlotDisplayData,
- pub fuel: SlotDisplayData,
- pub result: SlotDisplayData,
- pub crafting_station: SlotDisplayData,
- #[var]
- pub duration: u32,
- pub experience: f32,
-}
-#[derive(Clone, Debug, AzBuf)]
-pub struct StonecutterRecipeDisplay {
- pub input: SlotDisplayData,
- pub result: SlotDisplayData,
- pub crafting_station: SlotDisplayData,
-}
-#[derive(Clone, Debug, AzBuf)]
-pub struct SmithingRecipeDisplay {
- pub template: SlotDisplayData,
- pub base: SlotDisplayData,
- pub addition: SlotDisplayData,
- pub result: SlotDisplayData,
- pub crafting_station: SlotDisplayData,
-}
diff --git a/azalea-protocol/src/packets/game/c_set_cursor_item.rs b/azalea-protocol/src/packets/game/c_set_cursor_item.rs
index 2c10ae26..7736ae2d 100644
--- a/azalea-protocol/src/packets/game/c_set_cursor_item.rs
+++ b/azalea-protocol/src/packets/game/c_set_cursor_item.rs
@@ -4,5 +4,5 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundSetCursorItem {
- pub contents: Option<ItemStack>,
+ pub contents: ItemStack,
}
diff --git a/azalea-protocol/src/packets/game/c_set_held_slot.rs b/azalea-protocol/src/packets/game/c_set_held_slot.rs
index 81c21651..5f188cc6 100644
--- a/azalea-protocol/src/packets/game/c_set_held_slot.rs
+++ b/azalea-protocol/src/packets/game/c_set_held_slot.rs
@@ -3,5 +3,6 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundSetHeldSlot {
- pub slot: u8,
+ #[var]
+ pub slot: u32,
}
diff --git a/azalea-protocol/src/packets/game/c_set_player_inventory.rs b/azalea-protocol/src/packets/game/c_set_player_inventory.rs
index ca8955ee..6775a486 100644
--- a/azalea-protocol/src/packets/game/c_set_player_inventory.rs
+++ b/azalea-protocol/src/packets/game/c_set_player_inventory.rs
@@ -5,6 +5,6 @@ use azalea_protocol_macros::ClientboundGamePacket;
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundSetPlayerInventory {
#[var]
- pub slot: i32,
- pub contents: Option<ItemStack>,
+ pub slot: u32,
+ pub contents: ItemStack,
}
diff --git a/azalea-protocol/src/packets/game/c_teleport_entity.rs b/azalea-protocol/src/packets/game/c_teleport_entity.rs
index 0f026133..7073c625 100755
--- a/azalea-protocol/src/packets/game/c_teleport_entity.rs
+++ b/azalea-protocol/src/packets/game/c_teleport_entity.rs
@@ -1,13 +1,14 @@
use azalea_buf::AzBuf;
-use azalea_core::position::Vec3;
use azalea_protocol_macros::ClientboundGamePacket;
+use crate::common::movements::{PositionMoveRotation, RelativeMovements};
+
+
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
pub struct ClientboundTeleportEntity {
#[var]
pub id: u32,
- pub position: Vec3,
- pub y_rot: i8,
- pub x_rot: i8,
+ pub change: PositionMoveRotation,
+ pub relatives: RelativeMovements,
pub on_ground: bool,
}
diff --git a/azalea-protocol/src/packets/game/c_update_recipes.rs b/azalea-protocol/src/packets/game/c_update_recipes.rs
index 38c4f37b..e151ae51 100755
--- a/azalea-protocol/src/packets/game/c_update_recipes.rs
+++ b/azalea-protocol/src/packets/game/c_update_recipes.rs
@@ -2,9 +2,9 @@ use std::collections::HashMap;
use azalea_buf::AzBuf;
use azalea_core::resource_location::ResourceLocation;
-use azalea_inventory::ItemStack;
use azalea_protocol_macros::ClientboundGamePacket;
-use azalea_registry::HolderSet;
+
+use crate::common::recipe::{Ingredient, SlotDisplayData};
#[derive(Clone, Debug, PartialEq, AzBuf, ClientboundGamePacket)]
pub struct ClientboundUpdateRecipes {
@@ -22,53 +22,7 @@ pub struct SelectableRecipe {
pub option_display: SlotDisplayData,
}
-/// [`azalea_registry::SlotDisplay`]
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub enum SlotDisplayData {
- Empty,
- AnyFuel,
- Item(ItemStackDisplay),
- ItemStack(ItemStackSlotDisplay),
- Tag(ResourceLocation),
- SmithingTrim(Box<SmithingTrimDemoSlotDisplay>),
- WithRemainder(Box<WithRemainderSlotDisplay>),
- Composite(CompositeSlotDisplay),
-}
-
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct ItemStackDisplay {
- pub item: azalea_registry::Item,
-}
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct ItemStackSlotDisplay {
- pub stack: ItemStack,
-}
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct TagSlotDisplay {
- pub tag: azalea_registry::Item,
-}
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct SmithingTrimDemoSlotDisplay {
- pub base: SlotDisplayData,
- pub material: SlotDisplayData,
- pub pattern: SlotDisplayData,
-}
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct WithRemainderSlotDisplay {
- pub input: SlotDisplayData,
- pub remainder: SlotDisplayData,
-}
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct CompositeSlotDisplay {
- pub contents: Vec<SlotDisplayData>,
-}
-
#[derive(Clone, Debug, PartialEq, AzBuf)]
pub struct RecipePropertySet {
pub items: Vec<azalea_registry::Item>,
}
-
-#[derive(Clone, Debug, PartialEq, AzBuf)]
-pub struct Ingredient {
- pub allowed: HolderSet<azalea_registry::Item, ResourceLocation>,
-}
diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs
index 35c1a2fe..e9c9e2a1 100755
--- a/azalea-protocol/src/packets/game/mod.rs
+++ b/azalea-protocol/src/packets/game/mod.rs
@@ -5,200 +5,200 @@ use azalea_protocol_macros::declare_state_packets;
declare_state_packets!(GamePacket,
Clientbound => [
- bundle_delimiter,
- add_entity,
- add_experience_orb,
- animate,
- award_stats,
- block_changed_ack,
- block_destruction,
- block_entity_data,
- block_event,
- block_update,
- boss_event,
- change_difficulty,
- chunk_batch_finished,
- chunk_batch_start,
- chunks_biomes,
- clear_titles,
- command_suggestions,
- commands,
- container_close,
- container_set_content,
- container_set_data,
- container_set_slot,
- cookie_request,
- cooldown,
- custom_chat_completions,
- custom_payload,
- damage_event,
- debug_sample,
- delete_chat,
- disconnect,
- disguised_chat,
- entity_event,
- entity_position_sync,
- explode,
- forget_level_chunk,
- game_event,
- horse_screen_open,
- hurt_animation,
- initialize_border,
- keep_alive,
- level_chunk_with_light,
- level_event,
- level_particles,
- light_update,
- login,
- map_item_data,
- merchant_offers,
- move_entity_pos,
- move_entity_pos_rot,
- move_minecart_along_track,
- move_entity_rot,
- move_vehicle,
- open_book,
- open_screen,
- open_sign_editor,
- ping,
- pong_response,
- place_ghost_recipe,
- player_abilities,
- player_chat,
- player_combat_end,
- player_combat_enter,
- player_combat_kill,
- player_info_remove,
- player_info_update,
- player_look_at,
- player_position,
- player_rotation,
- recipe_book_add,
- recipe_book_remove,
- recipe_book_settings,
- remove_entities,
- remove_mob_effect,
- reset_score,
- resource_pack_pop,
- resource_pack_push,
- respawn,
- rotate_head,
- section_blocks_update,
- select_advancements_tab,
- server_data,
- set_action_bar_text,
- set_border_center,
- set_border_lerp_size,
- set_border_size,
- set_border_warning_delay,
- set_border_warning_distance,
- set_camera,
- set_chunk_cache_center,
- set_chunk_cache_radius,
- set_cursor_item,
- set_default_spawn_position,
- set_display_objective,
- set_entity_data,
- set_entity_link,
- set_entity_motion,
- set_equipment,
- set_experience,
- set_health,
- set_held_slot,
- set_objective,
- set_passengers,
- set_player_inventory,
- set_player_team,
- set_score,
- set_simulation_distance,
- set_subtitle_text,
- set_time,
- set_title_text,
- set_titles_animation,
- sound_entity,
- sound,
- start_configuration,
- stop_sound,
- store_cookie,
- system_chat,
- tab_list,
- tag_query,
- take_item_entity,
- teleport_entity,
- ticking_state,
- ticking_step,
- transfer,
- update_advancements,
- update_attributes,
- update_mob_effect,
- update_recipes,
- update_tags,
- projectile_power,
- custom_report_details,
- server_links,
+ bundle_delimiter, // 0x00
+ add_entity, // 0x01
+ add_experience_orb, // 0x02
+ animate, // 0x03
+ award_stats, // 0x04
+ block_changed_ack, // 0x05
+ block_destruction, // 0x06
+ block_entity_data, // 0x07
+ block_event, // 0x08
+ block_update, // 0x09
+ boss_event, // 0x0A
+ change_difficulty, // 0x0B
+ chunk_batch_finished, // 0x0C
+ chunk_batch_start, // 0x0D
+ chunks_biomes, // 0x0E
+ clear_titles, // 0x0F
+ command_suggestions, // 0x10
+ commands, // 0x11
+ container_close, // 0x12
+ container_set_content, // 0x13
+ container_set_data, // 0x14
+ container_set_slot, // 0x15
+ cookie_request, // 0x16
+ cooldown, // 0x17
+ custom_chat_completions, // 0x18
+ custom_payload, // 0x19
+ damage_event, // 0x1A
+ debug_sample, // 0x1B
+ delete_chat, // 0x1C
+ disconnect, // 0x1D
+ disguised_chat, // 0x1E
+ entity_event, // 0x1F
+ entity_position_sync, // 0x20
+ explode, // 0x21
+ forget_level_chunk, // 0x22
+ game_event, // 0x23
+ horse_screen_open, // 0x24
+ hurt_animation, // 0x25
+ initialize_border, // 0x26
+ keep_alive, // 0x27
+ level_chunk_with_light, // 0x28
+ level_event, // 0x29
+ level_particles, // 0x2A
+ light_update, // 0x2B
+ login, // 0x2C
+ map_item_data, // 0x2D
+ merchant_offers, // 0x2E
+ move_entity_pos, // 0x2F
+ move_entity_pos_rot, // 0x30
+ move_minecart_along_track, // 0x31
+ move_entity_rot, // 0x32
+ move_vehicle, // 0x33
+ open_book, // 0x34
+ open_screen, // 0x35
+ open_sign_editor, // 0x36
+ ping, // 0x37
+ pong_response, // 0x38
+ place_ghost_recipe, // 0x39
+ player_abilities, // 0x3A
+ player_chat, // 0x3B
+ player_combat_end, // 0x3C
+ player_combat_enter, // 0x3D
+ player_combat_kill, // 0x3E
+ player_info_remove, // 0x3F
+ player_info_update, // 0x40
+ player_look_at, // 0x41
+ player_position, // 0x42
+ player_rotation, // 0x43
+ recipe_book_add, // 0x44
+ recipe_book_remove, // 0x45
+ recipe_book_settings, // 0x46
+ remove_entities, // 0x47
+ remove_mob_effect, // 0x48
+ reset_score, // 0x49
+ resource_pack_pop, // 0x4A
+ resource_pack_push, // 0x4B
+ respawn, // 0x4C
+ rotate_head, // 0x4D
+ section_blocks_update, // 0x4E
+ select_advancements_tab, // 0x4F
+ server_data, // 0x50
+ set_action_bar_text, // 0x51
+ set_border_center, // 0x52
+ set_border_lerp_size, // 0x53
+ set_border_size, // 0x54
+ set_border_warning_delay, // 0x55
+ set_border_warning_distance, // 0x56
+ set_camera, // 0x57
+ set_chunk_cache_center, // 0x58
+ set_chunk_cache_radius, // 0x59
+ set_cursor_item, // 0x5A
+ set_default_spawn_position, // 0x5B
+ set_display_objective, // 0x5C
+ set_entity_data, // 0x5D
+ set_entity_link, // 0x5E
+ set_entity_motion, // 0x5F
+ set_equipment, // 0x60
+ set_experience, // 0x61
+ set_health, // 0x62
+ set_held_slot, // 0x63
+ set_objective, // 0x64
+ set_passengers, // 0x65
+ set_player_inventory, // 0x66
+ set_player_team, // 0x67
+ set_score, // 0x68
+ set_simulation_distance, // 0x69
+ set_subtitle_text, // 0x6A
+ set_time, // 0x6B
+ set_title_text, // 0x6C
+ set_titles_animation, // 0x6D
+ sound_entity, // 0x6E
+ sound, // 0x6F
+ start_configuration, // 0x70
+ stop_sound, // 0x71
+ store_cookie, // 0x72
+ system_chat, // 0x73
+ tab_list, // 0x74
+ tag_query, // 0x75
+ take_item_entity, // 0x76
+ teleport_entity, // 0x77
+ ticking_state, // 0x78
+ ticking_step, // 0x79
+ transfer, // 0x7A
+ update_advancements, // 0x7B
+ update_attributes, // 0x7C
+ update_mob_effect, // 0x7D
+ update_recipes, // 0x7E
+ update_tags, // 0x7F
+ projectile_power, // 0x80
+ custom_report_details, // 0x81
+ server_links, // 0x82
],
Serverbound => [
- accept_teleportation,
- block_entity_tag_query,
- bundle_item_selected,
- change_difficulty,
- chat_ack,
- chat_command,
- chat_command_signed,
- chat,
- chat_session_update,
- chunk_batch_received,
- client_command,
- client_tick_end,
- client_information,
- command_suggestion,
- configuration_acknowledged,
- container_button_click,
- container_click,
- container_close,
- container_slot_state_changed,
- cookie_response,
- custom_payload,
- debug_sample_subscription,
- edit_book,
- entity_tag_query,
- interact,
- jigsaw_generate,
- keep_alive,
- lock_difficulty,
- move_player_pos,
- move_player_pos_rot,
- move_player_rot,
- move_player_status_only,
- move_vehicle,
- paddle_boat,
- pick_item_from_block,
- pick_item_from_entity,
- ping_request,
- place_recipe,
- player_abilities,
- player_action,
- player_command,
- player_input,
- player_loaded,
- pong,
- recipe_book_change_settings,
- recipe_book_seen_recipe,
- rename_item,
- resource_pack,
- seen_advancements,
- select_trade,
- set_beacon,
- set_carried_item,
- set_command_block,
- set_command_minecart,
- set_creative_mode_slot,
- set_jigsaw_block,
- set_structure_block,
- sign_update,
- swing,
- teleport_to_entity,
- use_item_on,
- use_item,
+ accept_teleportation, // 0x00
+ block_entity_tag_query, // 0x01
+ bundle_item_selected, // 0x02
+ change_difficulty, // 0x03
+ chat_ack, // 0x04
+ chat_command, // 0x05
+ chat_command_signed, // 0x06
+ chat, // 0x07
+ chat_session_update, // 0x08
+ chunk_batch_received, // 0x09
+ client_command, // 0x0A
+ client_tick_end, // 0x0B
+ client_information, // 0x0C
+ command_suggestion, // 0x0D
+ configuration_acknowledged, // 0x0E
+ container_button_click, // 0x0F
+ container_click, // 0x10
+ container_close, // 0x11
+ container_slot_state_changed, // 0x12
+ cookie_response, // 0x13
+ custom_payload, // 0x14
+ debug_sample_subscription, // 0x15
+ edit_book, // 0x16
+ entity_tag_query, // 0x17
+ interact, // 0x18
+ jigsaw_generate, // 0x19
+ keep_alive, // 0x1A
+ lock_difficulty, // 0x1B
+ move_player_pos, // 0x1C
+ move_player_pos_rot, // 0x1D
+ move_player_rot, // 0x1E
+ move_player_status_only, // 0x1F
+ move_vehicle, // 0x20
+ paddle_boat, // 0x21
+ pick_item_from_block, // 0x22
+ pick_item_from_entity, // 0x23
+ ping_request, // 0x24
+ place_recipe, // 0x25
+ player_abilities, // 0x26
+ player_action, // 0x27
+ player_command, // 0x28
+ player_input, // 0x29
+ player_loaded, // 0x2A
+ pong, // 0x2B
+ recipe_book_change_settings, // 0x2C
+ recipe_book_seen_recipe, // 0x2D
+ rename_item, // 0x2E
+ resource_pack, // 0x2F
+ seen_advancements, // 0x30
+ select_trade, // 0x31
+ set_beacon, // 0x32
+ set_carried_item, // 0x33
+ set_command_block, // 0x34
+ set_command_minecart, // 0x35
+ set_creative_mode_slot, // 0x36
+ set_jigsaw_block, // 0x37
+ set_structure_block, // 0x38
+ sign_update, // 0x39
+ swing, // 0x3A
+ teleport_to_entity, // 0x3B
+ use_item_on, // 0x3C
+ use_item, // 0x3D
]
);
diff --git a/azalea-protocol/src/packets/game/s_container_button_click.rs b/azalea-protocol/src/packets/game/s_container_button_click.rs
index 909772f3..7a27e190 100755
--- a/azalea-protocol/src/packets/game/s_container_button_click.rs
+++ b/azalea-protocol/src/packets/game/s_container_button_click.rs
@@ -3,6 +3,8 @@ use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundContainerButtonClick {
- pub container_id: u8,
- pub button_id: u8,
+ #[var]
+ pub container_id: i32,
+ #[var]
+ pub button_id: u32,
}
diff --git a/azalea-protocol/src/packets/game/s_container_click.rs b/azalea-protocol/src/packets/game/s_container_click.rs
index a6dee697..2f7ef3d8 100755
--- a/azalea-protocol/src/packets/game/s_container_click.rs
+++ b/azalea-protocol/src/packets/game/s_container_click.rs
@@ -6,7 +6,8 @@ use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundContainerClick {
- pub container_id: u8,
+ #[var]
+ pub container_id: i32,
#[var]
pub state_id: u32,
pub slot_num: i16,
diff --git a/azalea-protocol/src/packets/game/s_container_close.rs b/azalea-protocol/src/packets/game/s_container_close.rs
index 1cb88eab..f19e0f2f 100755
--- a/azalea-protocol/src/packets/game/s_container_close.rs
+++ b/azalea-protocol/src/packets/game/s_container_close.rs
@@ -3,5 +3,6 @@ use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundContainerClose {
- pub container_id: u8,
+ #[var]
+ pub container_id: i32,
}
diff --git a/azalea-protocol/src/packets/game/s_container_slot_state_changed.rs b/azalea-protocol/src/packets/game/s_container_slot_state_changed.rs
index 73ac0280..c22be4de 100644
--- a/azalea-protocol/src/packets/game/s_container_slot_state_changed.rs
+++ b/azalea-protocol/src/packets/game/s_container_slot_state_changed.rs
@@ -6,6 +6,6 @@ pub struct ServerboundContainerSlotStateChanged {
#[var]
pub slot_id: u32,
#[var]
- pub container_id: u32,
+ pub container_id: i32,
pub new_state: bool,
}
diff --git a/azalea-protocol/src/packets/game/s_move_player_pos.rs b/azalea-protocol/src/packets/game/s_move_player_pos.rs
index 2e2ec0c5..2daf1d42 100755
--- a/azalea-protocol/src/packets/game/s_move_player_pos.rs
+++ b/azalea-protocol/src/packets/game/s_move_player_pos.rs
@@ -1,10 +1,9 @@
use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundMovePlayerPos {
- pub x: f64,
- pub y: f64,
- pub z: f64,
+ pub pos: Vec3,
pub on_ground: bool,
}
diff --git a/azalea-protocol/src/packets/game/s_move_player_pos_rot.rs b/azalea-protocol/src/packets/game/s_move_player_pos_rot.rs
index 2cf186da..3460c709 100755
--- a/azalea-protocol/src/packets/game/s_move_player_pos_rot.rs
+++ b/azalea-protocol/src/packets/game/s_move_player_pos_rot.rs
@@ -1,11 +1,11 @@
use azalea_buf::AzBuf;
use azalea_core::position::Vec3;
+use azalea_entity::LookDirection;
use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundMovePlayerPosRot {
pub pos: Vec3,
- pub y_rot: f32,
- pub x_rot: f32,
+ pub look_direction: LookDirection,
pub on_ground: bool,
}
diff --git a/azalea-protocol/src/packets/game/s_move_player_rot.rs b/azalea-protocol/src/packets/game/s_move_player_rot.rs
index c3cda3ea..6aef91b0 100755
--- a/azalea-protocol/src/packets/game/s_move_player_rot.rs
+++ b/azalea-protocol/src/packets/game/s_move_player_rot.rs
@@ -1,9 +1,9 @@
use azalea_buf::AzBuf;
+use azalea_entity::LookDirection;
use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundMovePlayerRot {
- pub y_rot: f32,
- pub x_rot: f32,
+ pub look_direction: LookDirection,
pub on_ground: bool,
}
diff --git a/azalea-protocol/src/packets/game/s_move_vehicle.rs b/azalea-protocol/src/packets/game/s_move_vehicle.rs
index 0452c9b0..76eac7e1 100755
--- a/azalea-protocol/src/packets/game/s_move_vehicle.rs
+++ b/azalea-protocol/src/packets/game/s_move_vehicle.rs
@@ -1,11 +1,10 @@
use azalea_buf::AzBuf;
+use azalea_core::position::Vec3;
+use azalea_entity::LookDirection;
use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundMoveVehicle {
- pub x: f64,
- pub y: f64,
- pub z: f64,
- pub y_rot: f32,
- pub x_rot: f32,
+ pub pos: Vec3,
+ pub look_direction: LookDirection,
}
diff --git a/azalea-protocol/src/packets/game/s_place_recipe.rs b/azalea-protocol/src/packets/game/s_place_recipe.rs
index 33456948..84924541 100755
--- a/azalea-protocol/src/packets/game/s_place_recipe.rs
+++ b/azalea-protocol/src/packets/game/s_place_recipe.rs
@@ -4,7 +4,8 @@ use azalea_protocol_macros::ServerboundGamePacket;
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
pub struct ServerboundPlaceRecipe {
- pub container_id: u8,
+ #[var]
+ pub container_id: i32,
pub recipe: ResourceLocation,
pub shift_down: bool,
}
diff --git a/azalea-protocol/src/packets/handshake/mod.rs b/azalea-protocol/src/packets/handshake/mod.rs
index 90a312e7..79dc583d 100755
--- a/azalea-protocol/src/packets/handshake/mod.rs
+++ b/azalea-protocol/src/packets/handshake/mod.rs
@@ -7,6 +7,6 @@ declare_state_packets!(HandshakePacket,
Clientbound => [
],
Serverbound => [
- intention,
+ intention, // 0x00
]
);
diff --git a/azalea-protocol/src/packets/login/mod.rs b/azalea-protocol/src/packets/login/mod.rs
index 9edf50cf..5e0a0433 100755
--- a/azalea-protocol/src/packets/login/mod.rs
+++ b/azalea-protocol/src/packets/login/mod.rs
@@ -5,18 +5,18 @@ use azalea_protocol_macros::declare_state_packets;
declare_state_packets!(LoginPacket,
Clientbound => [
- login_disconnect,
- hello,
- login_finished,
- login_compression,
- custom_query,
- cookie_request,
+ login_disconnect, // 0x00
+ hello, // 0x01
+ login_finished, // 0x02
+ login_compression, // 0x03
+ custom_query, // 0x04
+ cookie_request, // 0x05
],
Serverbound => [
- hello,
- key,
- custom_query_answer,
- login_acknowledged,
- cookie_response,
+ hello, // 0x00
+ key, // 0x01
+ custom_query_answer, // 0x02
+ login_acknowledged, // 0x03
+ cookie_response, // 0x04
]
);
diff --git a/azalea-protocol/src/packets/status/mod.rs b/azalea-protocol/src/packets/status/mod.rs
index 335600e3..6af51369 100755
--- a/azalea-protocol/src/packets/status/mod.rs
+++ b/azalea-protocol/src/packets/status/mod.rs
@@ -5,11 +5,11 @@ use azalea_protocol_macros::declare_state_packets;
declare_state_packets!(StatusPacket,
Clientbound => [
- status_response,
- pong_response,
+ status_response, // 0x00
+ pong_response, // 0x01
],
Serverbound => [
- status_request,
- ping_request,
+ status_request, // 0x00
+ ping_request, // 0x01
]
);