aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/packets/game
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-05-26 13:45:48 -0500
committermat <github@matdoes.dev>2022-05-26 13:45:48 -0500
commit1e145a82b80fb0402e8a64624454d9bfee77bc72 (patch)
treeffb016cd6369bf0fbbf3545408f6278d47509a86 /azalea-protocol/src/packets/game
parent3fbbb61c30f0833dd1e07802419ee91ef6cad8e3 (diff)
downloadazalea-drasl-1e145a82b80fb0402e8a64624454d9bfee77bc72.tar.xz
1.19
Diffstat (limited to 'azalea-protocol/src/packets/game')
-rw-r--r--azalea-protocol/src/packets/game/clientbound_add_mob_packet.rs21
-rw-r--r--azalea-protocol/src/packets/game/clientbound_block_changed_ack_packet.rs7
-rw-r--r--azalea-protocol/src/packets/game/clientbound_chat_packet.rs17
-rw-r--r--azalea-protocol/src/packets/game/clientbound_chat_preview_packet.rs8
-rw-r--r--azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs21
-rw-r--r--azalea-protocol/src/packets/game/clientbound_server_data_packet.rs9
-rw-r--r--azalea-protocol/src/packets/game/clientbound_set_chunk_cache_center_packet.rs (renamed from azalea-protocol/src/packets/game/clientbound_set_chunk_cache_center.rs)0
-rw-r--r--azalea-protocol/src/packets/game/clientbound_set_display_chat_preview_packet.rs6
-rw-r--r--azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs9
-rwxr-xr-xazalea-protocol/src/packets/game/mod.rs102
-rw-r--r--azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs18
-rw-r--r--azalea-protocol/src/packets/game/serverbound_chat_preview_packet.rs7
12 files changed, 142 insertions, 83 deletions
diff --git a/azalea-protocol/src/packets/game/clientbound_add_mob_packet.rs b/azalea-protocol/src/packets/game/clientbound_add_mob_packet.rs
deleted file mode 100644
index bc0ddcef..00000000
--- a/azalea-protocol/src/packets/game/clientbound_add_mob_packet.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-use packet_macros::{GamePacket, McBuf};
-use uuid::Uuid;
-
-#[derive(Clone, Debug, McBuf, GamePacket)]
-pub struct ClientboundAddMobPacket {
- #[var]
- pub id: i32,
- pub uuid: Uuid,
- // TODO: have an entity type struct
- #[var]
- pub entity_type: i32,
- pub x: f64,
- pub y: f64,
- pub z: f64,
- pub x_rot: i8,
- pub y_rot: i8,
- pub y_head_rot: i8,
- pub x_vel: u16,
- pub y_vel: u16,
- pub z_vel: u16,
-}
diff --git a/azalea-protocol/src/packets/game/clientbound_block_changed_ack_packet.rs b/azalea-protocol/src/packets/game/clientbound_block_changed_ack_packet.rs
new file mode 100644
index 00000000..a580440c
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_block_changed_ack_packet.rs
@@ -0,0 +1,7 @@
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ClientboundBlockChangedAckPacket {
+ #[var]
+ pub sequence: i32,
+}
diff --git a/azalea-protocol/src/packets/game/clientbound_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_chat_packet.rs
deleted file mode 100644
index 77c5370c..00000000
--- a/azalea-protocol/src/packets/game/clientbound_chat_packet.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-use azalea_chat::component::Component;
-use packet_macros::{GamePacket, McBuf};
-use uuid::Uuid;
-
-#[derive(Clone, Debug, McBuf, GamePacket)]
-pub struct ClientboundChatPacket {
- pub message: Component,
- pub type_: ChatType,
- pub sender: Uuid,
-}
-
-#[derive(Clone, Debug, Copy, McBuf)]
-pub enum ChatType {
- Chat = 0,
- System = 1,
- GameInfo = 2,
-}
diff --git a/azalea-protocol/src/packets/game/clientbound_chat_preview_packet.rs b/azalea-protocol/src/packets/game/clientbound_chat_preview_packet.rs
new file mode 100644
index 00000000..58dd0722
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_chat_preview_packet.rs
@@ -0,0 +1,8 @@
+use azalea_chat::component::Component;
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ClientboundChatPreviewPacket {
+ pub query_id: i32,
+ pub preview: Option<Component>,
+}
diff --git a/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs
new file mode 100644
index 00000000..e6941f25
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_player_chat_packet.rs
@@ -0,0 +1,21 @@
+use azalea_chat::component::Component;
+use azalea_crypto::SaltSignaturePair;
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ClientboundPlayerChatPacket {
+ pub signed_content: Component,
+ pub unsigned_content: Option<Component>,
+ #[var]
+ pub type_id: i32,
+ pub sender: ChatSender,
+ pub timestamp: u64,
+ pub salt_signature: SaltSignaturePair,
+}
+
+#[derive(Clone, Debug, McBuf)]
+pub struct ChatSender {
+ pub uuid: uuid::Uuid,
+ pub name: Component,
+ pub team_name: Option<Component>,
+}
diff --git a/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs
new file mode 100644
index 00000000..4c2d94e6
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_server_data_packet.rs
@@ -0,0 +1,9 @@
+use azalea_chat::component::Component;
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ClientboundServerDataPacket {
+ pub motd: Option<Component>,
+ pub icon_base64: Option<String>,
+ pub previews_chat: bool,
+}
diff --git a/azalea-protocol/src/packets/game/clientbound_set_chunk_cache_center.rs b/azalea-protocol/src/packets/game/clientbound_set_chunk_cache_center_packet.rs
index 7557c16b..7557c16b 100644
--- a/azalea-protocol/src/packets/game/clientbound_set_chunk_cache_center.rs
+++ b/azalea-protocol/src/packets/game/clientbound_set_chunk_cache_center_packet.rs
diff --git a/azalea-protocol/src/packets/game/clientbound_set_display_chat_preview_packet.rs b/azalea-protocol/src/packets/game/clientbound_set_display_chat_preview_packet.rs
new file mode 100644
index 00000000..46a0d582
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_set_display_chat_preview_packet.rs
@@ -0,0 +1,6 @@
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ClientboundSetDisplayChatPreviewPacket {
+ pub enabled: bool,
+}
diff --git a/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs b/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs
new file mode 100644
index 00000000..dfa75a5b
--- /dev/null
+++ b/azalea-protocol/src/packets/game/clientbound_system_chat_packet.rs
@@ -0,0 +1,9 @@
+use azalea_chat::component::Component;
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ClientboundSystemChatPacket {
+ pub content: Component,
+ #[var]
+ pub type_id: i32,
+}
diff --git a/azalea-protocol/src/packets/game/mod.rs b/azalea-protocol/src/packets/game/mod.rs
index 7372435a..eee36788 100755
--- a/azalea-protocol/src/packets/game/mod.rs
+++ b/azalea-protocol/src/packets/game/mod.rs
@@ -1,10 +1,10 @@
pub mod clientbound_add_entity_packet;
-pub mod clientbound_add_mob_packet;
pub mod clientbound_add_player_packet;
pub mod clientbound_animate_packet;
+pub mod clientbound_block_changed_ack_packet;
pub mod clientbound_block_update_packet;
pub mod clientbound_change_difficulty_packet;
-pub mod clientbound_chat_packet;
+pub mod clientbound_chat_preview_packet;
pub mod clientbound_container_set_content_packet;
pub mod clientbound_custom_payload_packet;
pub mod clientbound_declare_commands_packet;
@@ -23,27 +23,33 @@ pub mod clientbound_move_entity_pos_packet;
pub mod clientbound_move_entity_posrot_packet;
pub mod clientbound_move_entity_rot_packet;
pub mod clientbound_player_abilities_packet;
+pub mod clientbound_player_chat_packet;
pub mod clientbound_player_info_packet;
pub mod clientbound_player_position_packet;
pub mod clientbound_recipe_packet;
pub mod clientbound_remove_entities_packet;
pub mod clientbound_rotate_head_packet;
pub mod clientbound_section_blocks_update_packet;
+pub mod clientbound_server_data_packet;
pub mod clientbound_set_carried_item_packet;
-pub mod clientbound_set_chunk_cache_center;
+pub mod clientbound_set_chunk_cache_center_packet;
pub mod clientbound_set_default_spawn_position_packet;
+pub mod clientbound_set_display_chat_preview_packet;
pub mod clientbound_set_entity_data_packet;
pub mod clientbound_set_entity_link_packet;
pub mod clientbound_set_experience_packet;
pub mod clientbound_set_health_packet;
pub mod clientbound_set_time_packet;
pub mod clientbound_sound_packet;
+pub mod clientbound_system_chat_packet;
pub mod clientbound_teleport_entity_packet;
pub mod clientbound_update_advancements_packet;
pub mod clientbound_update_attributes_packet;
pub mod clientbound_update_recipes_packet;
pub mod clientbound_update_tags_packet;
pub mod clientbound_update_view_distance_packet;
+pub mod serverbound_chat_command_packet;
+pub mod serverbound_chat_preview_packet;
pub mod serverbound_custom_payload_packet;
pub mod serverbound_keep_alive_packet;
@@ -52,55 +58,61 @@ use packet_macros::declare_state_packets;
declare_state_packets!(
GamePacket,
Serverbound => {
- 0x0a: serverbound_custom_payload_packet::ServerboundCustomPayloadPacket,
- 0x0f: serverbound_keep_alive_packet::ServerboundKeepAlivePacket,
+ 0x03: serverbound_chat_command_packet::ServerboundChatCommandPacket,
+ 0x05: serverbound_chat_preview_packet::ServerboundChatPreviewPacket,
+ 0x0c: serverbound_custom_payload_packet::ServerboundCustomPayloadPacket,
+ 0x11: serverbound_keep_alive_packet::ServerboundKeepAlivePacket,
},
Clientbound => {
0x00: clientbound_add_entity_packet::ClientboundAddEntityPacket,
- 0x02: clientbound_add_mob_packet::ClientboundAddMobPacket,
- 0x04: clientbound_add_player_packet::ClientboundAddPlayerPacket,
- 0x06: clientbound_animate_packet::ClientboundAnimatePacket,
- 0x0c: clientbound_block_update_packet::ClientboundBlockUpdatePacket,
- 0x0e: clientbound_change_difficulty_packet::ClientboundChangeDifficultyPacket,
- 0x0f: clientbound_chat_packet::ClientboundChatPacket,
- 0x12: clientbound_declare_commands_packet::ClientboundDeclareCommandsPacket,
- 0x14: clientbound_container_set_content_packet::ClientboundContainerSetContentPacket,
- 0x1a: clientbound_disconnect_packet::ClientboundDisconnectPacket,
- 0x1b: clientbound_entity_event_packet::ClientboundEntityEventPacket,
- 0x18: clientbound_custom_payload_packet::ClientboundCustomPayloadPacket,
- 0x1e: clientbound_game_event_packet::ClientboundGameEventPacket,
- 0x20: clientbound_initialize_border_packet::ClientboundInitializeBorderPacket,
- 0x21: clientbound_keep_alive_packet::ClientboundKeepAlivePacket,
- 0x22: clientbound_level_chunk_with_light_packet::ClientboundLevelChunkWithLightPacket,
- 0x23: clientbound_level_event_packet::ClientboundLevelEventPacket,
- 0x24: clientbound_level_particles_packet::ClientboundLevelParticlesPacket,
- 0x25: clientbound_light_update_packet::ClientboundLightUpdatePacket,
- 0x26: clientbound_login_packet::ClientboundLoginPacket,
- 0x29: clientbound_move_entity_pos_packet::ClientboundMoveEntityPosPacket,
- 0x2a: clientbound_move_entity_posrot_packet::ClientboundMoveEntityPosRotPacket,
- 0x2b: clientbound_move_entity_rot_packet::ClientboundMoveEntityRotPacket,
- 0x32: clientbound_player_abilities_packet::ClientboundPlayerAbilitiesPacket,
- 0x36: clientbound_player_info_packet::ClientboundPlayerInfoPacket,
- 0x38: clientbound_player_position_packet::ClientboundPlayerPositionPacket,
- 0x39: clientbound_recipe_packet::ClientboundRecipePacket,
- 0x3a: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket,
- 0x3e: clientbound_rotate_head_packet::ClientboundRotateHeadPacket,
- 0x3f: clientbound_section_blocks_update_packet::ClientboundSectionBlocksUpdatePacket,
- 0x48: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket,
- 0x49: clientbound_set_chunk_cache_center::ClientboundSetChunkCacheCenterPacket,
- 0x4a: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket,
- 0x4b: clientbound_set_default_spawn_position_packet::ClientboundSetDefaultSpawnPositionPacket,
+ 0x02: clientbound_add_player_packet::ClientboundAddPlayerPacket,
+ 0x03: clientbound_animate_packet::ClientboundAnimatePacket,
+ 0x05: clientbound_block_changed_ack_packet::ClientboundBlockChangedAckPacket,
+ 0x09: clientbound_block_update_packet::ClientboundBlockUpdatePacket,
+ 0x0b: clientbound_change_difficulty_packet::ClientboundChangeDifficultyPacket,
+ 0x0c: clientbound_chat_preview_packet::ClientboundChatPreviewPacket,
+ 0x0f: clientbound_declare_commands_packet::ClientboundDeclareCommandsPacket,
+ 0x11: clientbound_container_set_content_packet::ClientboundContainerSetContentPacket,
+ 0x15: clientbound_custom_payload_packet::ClientboundCustomPayloadPacket,
+ 0x17: clientbound_disconnect_packet::ClientboundDisconnectPacket,
+ 0x18: clientbound_entity_event_packet::ClientboundEntityEventPacket,
+ 0x1b: clientbound_game_event_packet::ClientboundGameEventPacket,
+ 0x1d: clientbound_initialize_border_packet::ClientboundInitializeBorderPacket,
+ 0x1e: clientbound_keep_alive_packet::ClientboundKeepAlivePacket,
+ 0x1f: clientbound_level_chunk_with_light_packet::ClientboundLevelChunkWithLightPacket,
+ 0x20: clientbound_level_event_packet::ClientboundLevelEventPacket,
+ 0x21: clientbound_level_particles_packet::ClientboundLevelParticlesPacket,
+ 0x22: clientbound_light_update_packet::ClientboundLightUpdatePacket,
+ 0x23: clientbound_login_packet::ClientboundLoginPacket,
+ 0x26: clientbound_move_entity_pos_packet::ClientboundMoveEntityPosPacket,
+ 0x27: clientbound_move_entity_posrot_packet::ClientboundMoveEntityPosRotPacket,
+ 0x28: clientbound_move_entity_rot_packet::ClientboundMoveEntityRotPacket,
+ 0x2f: clientbound_player_abilities_packet::ClientboundPlayerAbilitiesPacket,
+ 0x30: clientbound_player_chat_packet::ClientboundPlayerChatPacket,
+ 0x34: clientbound_player_info_packet::ClientboundPlayerInfoPacket,
+ 0x36: clientbound_player_position_packet::ClientboundPlayerPositionPacket,
+ 0x37: clientbound_recipe_packet::ClientboundRecipePacket,
+ 0x38: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket,
+ 0x3c: clientbound_rotate_head_packet::ClientboundRotateHeadPacket,
+ 0x3d: clientbound_section_blocks_update_packet::ClientboundSectionBlocksUpdatePacket,
+ 0x3f: clientbound_server_data_packet::ClientboundServerDataPacket,
+ 0x44: clientbound_set_entity_link_packet::ClientboundSetEntityLinkPacket,
+ 0x47: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket,
+ 0x48: clientbound_set_chunk_cache_center_packet::ClientboundSetChunkCacheCenterPacket,
+ 0x49: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket,
+ 0x4a: clientbound_set_default_spawn_position_packet::ClientboundSetDefaultSpawnPositionPacket,
+ 0x4b: clientbound_set_display_chat_preview_packet::ClientboundSetDisplayChatPreviewPacket,
0x4d: clientbound_set_entity_data_packet::ClientboundSetEntityDataPacket,
- 0x45: clientbound_set_entity_link_packet::ClientboundSetEntityLinkPacket,
0x4f: clientbound_entity_velocity_packet::ClientboundEntityVelocityPacket,
0x51: clientbound_set_experience_packet::ClientboundSetExperiencePacket,
0x52: clientbound_set_health_packet::ClientboundSetHealthPacket,
0x59: clientbound_set_time_packet::ClientboundSetTimePacket,
0x5d: clientbound_sound_packet::ClientboundSoundPacket,
- 0x62: clientbound_teleport_entity_packet::ClientboundTeleportEntityPacket,
- 0x63: clientbound_update_advancements_packet::ClientboundUpdateAdvancementsPacket,
- 0x64: clientbound_update_attributes_packet::ClientboundUpdateAttributesPacket,
- 0x66: clientbound_update_recipes_packet::ClientboundUpdateRecipesPacket,
- 0x67: clientbound_update_tags_packet::ClientboundUpdateTagsPacket,
+ 0x5f: clientbound_system_chat_packet::ClientboundSystemChatPacket,
+ 0x63: clientbound_teleport_entity_packet::ClientboundTeleportEntityPacket,
+ 0x64: clientbound_update_advancements_packet::ClientboundUpdateAdvancementsPacket,
+ 0x65: clientbound_update_attributes_packet::ClientboundUpdateAttributesPacket,
+ 0x67: clientbound_update_recipes_packet::ClientboundUpdateRecipesPacket,
+ 0x68: clientbound_update_tags_packet::ClientboundUpdateTagsPacket,
}
-); \ No newline at end of file
+);
diff --git a/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs
new file mode 100644
index 00000000..9ae0b79f
--- /dev/null
+++ b/azalea-protocol/src/packets/game/serverbound_chat_command_packet.rs
@@ -0,0 +1,18 @@
+use std::collections::HashMap;
+
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ServerboundChatCommandPacket {
+ pub command: String,
+ // TODO: Choose a real timestamp type
+ pub timestamp: u64,
+ pub argument_signatures: ArgumentSignatures,
+ pub signed_preview: bool,
+}
+
+#[derive(Clone, Debug, McBuf)]
+pub struct ArgumentSignatures {
+ pub salt: u64,
+ pub signatures: HashMap<String, Vec<u8>>,
+}
diff --git a/azalea-protocol/src/packets/game/serverbound_chat_preview_packet.rs b/azalea-protocol/src/packets/game/serverbound_chat_preview_packet.rs
new file mode 100644
index 00000000..60535f69
--- /dev/null
+++ b/azalea-protocol/src/packets/game/serverbound_chat_preview_packet.rs
@@ -0,0 +1,7 @@
+use packet_macros::{GamePacket, McBuf};
+
+#[derive(Clone, Debug, McBuf, GamePacket)]
+pub struct ServerboundChatPreviewPacket {
+ pub query_id: i32,
+ pub query: String,
+}