diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2024-11-27 19:31:40 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-27 19:31:40 -0600 |
| commit | 08958c2278b15ebeac8a964f392ebb792e479b61 (patch) | |
| tree | 4ae3664cea38d7fd1a8f1e95ed06fac04ffe519e /azalea-protocol/src/packets/login | |
| parent | 139d77d3c2b0922fba5e9d4fa2bd9819d78bd773 (diff) | |
| download | azalea-drasl-08958c2278b15ebeac8a964f392ebb792e479b61.tar.xz | |
Refactor azalea-protocol (#190)
* start updating to 1.21.4
* fix block codegen and stop using block data from burger
* rename packet related modules and structs to be simpler
* ItemSlot -> ItemStack for more consistency with mojmap
* .get() -> .into_packet()
* simplify declare_state_packets by removing packet ids
* rename read_from and write_into to azalea_read and azalea_write
* rename McBufReadable and McBufWritable to AzaleaRead and AzaleaWrite
* McBuf -> AzBuf
* remove most uses of into_variant
* update codegen and use resourcelocation names for packets
* implement #[limit(i)] attribute for AzBuf derive macro
* fixes for 1.21.4
* fix examples
* update some physics code and fix ChatType
* remove unused imports in codegen
* re-add some things to migrate.py and update +mc version numbers automatically
* downgrade to 1.21.3 lol
Diffstat (limited to 'azalea-protocol/src/packets/login')
17 files changed, 86 insertions, 98 deletions
diff --git a/azalea-protocol/src/packets/login/c_cookie_request.rs b/azalea-protocol/src/packets/login/c_cookie_request.rs new file mode 100755 index 00000000..d0bb0cd7 --- /dev/null +++ b/azalea-protocol/src/packets/login/c_cookie_request.rs @@ -0,0 +1,8 @@ +use azalea_buf::AzBuf; +use azalea_core::resource_location::ResourceLocation; +use azalea_protocol_macros::ClientboundLoginPacket; + +#[derive(Clone, Debug, AzBuf, ClientboundLoginPacket)] +pub struct ClientboundCookieRequest { + pub key: ResourceLocation, +} diff --git a/azalea-protocol/src/packets/login/clientbound_custom_query_packet.rs b/azalea-protocol/src/packets/login/c_custom_query.rs index 75993fd9..80c698e6 100755 --- a/azalea-protocol/src/packets/login/clientbound_custom_query_packet.rs +++ b/azalea-protocol/src/packets/login/c_custom_query.rs @@ -1,11 +1,11 @@ use std::hash::Hash; -use azalea_buf::{McBuf, UnsizedByteArray}; +use azalea_buf::{AzBuf, UnsizedByteArray}; use azalea_core::resource_location::ResourceLocation; use azalea_protocol_macros::ClientboundLoginPacket; -#[derive(Hash, Clone, Debug, McBuf, ClientboundLoginPacket)] -pub struct ClientboundCustomQueryPacket { +#[derive(Hash, Clone, Debug, AzBuf, ClientboundLoginPacket)] +pub struct ClientboundCustomQuery { #[var] pub transaction_id: u32, pub identifier: ResourceLocation, diff --git a/azalea-protocol/src/packets/login/clientbound_hello_packet.rs b/azalea-protocol/src/packets/login/c_hello.rs index 9beb499c..6011ec23 100755 --- a/azalea-protocol/src/packets/login/clientbound_hello_packet.rs +++ b/azalea-protocol/src/packets/login/c_hello.rs @@ -1,10 +1,9 @@ -use azalea_buf::McBuf; +use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundLoginPacket; -#[derive(Clone, Debug, McBuf, ClientboundLoginPacket)] -pub struct ClientboundHelloPacket { - // TODO: make this len thing work - // #[len(20)] +#[derive(Clone, Debug, AzBuf, ClientboundLoginPacket)] +pub struct ClientboundHello { + #[limit(20)] pub server_id: String, pub public_key: Vec<u8>, pub challenge: Vec<u8>, diff --git a/azalea-protocol/src/packets/login/c_login_compression.rs b/azalea-protocol/src/packets/login/c_login_compression.rs new file mode 100755 index 00000000..c53e3829 --- /dev/null +++ b/azalea-protocol/src/packets/login/c_login_compression.rs @@ -0,0 +1,10 @@ +use std::hash::Hash; + +use azalea_buf::AzBuf; +use azalea_protocol_macros::ClientboundLoginPacket; + +#[derive(Hash, Clone, Debug, ClientboundLoginPacket, AzBuf)] +pub struct ClientboundLoginCompression { + #[var] + pub compression_threshold: i32, +} diff --git a/azalea-protocol/src/packets/login/clientbound_login_disconnect_packet.rs b/azalea-protocol/src/packets/login/c_login_disconnect.rs index 416ec63b..a0e50aa4 100755 --- a/azalea-protocol/src/packets/login/clientbound_login_disconnect_packet.rs +++ b/azalea-protocol/src/packets/login/c_login_disconnect.rs @@ -1,34 +1,32 @@ use std::io::{Cursor, Write}; -use azalea_buf::{BufReadError, McBufReadable, McBufWritable}; +use azalea_buf::{AzaleaRead, AzaleaWrite, BufReadError}; use azalea_chat::FormattedText; use azalea_protocol_macros::ClientboundLoginPacket; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, ClientboundLoginPacket)] -pub struct ClientboundLoginDisconnectPacket { +pub struct ClientboundLoginDisconnect { pub reason: FormattedText, } -impl McBufReadable for ClientboundLoginDisconnectPacket { - fn read_from( - buf: &mut Cursor<&[u8]>, - ) -> Result<ClientboundLoginDisconnectPacket, BufReadError> { - let disconnect_string = String::read_from(buf)?; +impl AzaleaRead for ClientboundLoginDisconnect { + fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<ClientboundLoginDisconnect, BufReadError> { + let disconnect_string = String::azalea_read(buf)?; let disconnect_json: serde_json::Value = serde_json::from_str(disconnect_string.as_str())?; - Ok(ClientboundLoginDisconnectPacket { + Ok(ClientboundLoginDisconnect { reason: FormattedText::deserialize(disconnect_json)?, }) } } -impl McBufWritable for ClientboundLoginDisconnectPacket { - fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { +impl AzaleaWrite for ClientboundLoginDisconnect { + fn azalea_write(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { let status_string = FormattedText::serialize(&self.reason, serde_json::value::Serializer) .unwrap() .to_string(); - status_string.write_into(buf)?; + status_string.azalea_write(buf)?; Ok(()) } } diff --git a/azalea-protocol/src/packets/login/clientbound_login_finished_packet.rs b/azalea-protocol/src/packets/login/c_login_finished.rs index f885f67f..482ea53f 100755 --- a/azalea-protocol/src/packets/login/clientbound_login_finished_packet.rs +++ b/azalea-protocol/src/packets/login/c_login_finished.rs @@ -1,8 +1,8 @@ use azalea_auth::game_profile::GameProfile; -use azalea_buf::McBuf; +use azalea_buf::AzBuf; use azalea_protocol_macros::ClientboundLoginPacket; -#[derive(Clone, Debug, McBuf, ClientboundLoginPacket)] -pub struct ClientboundLoginFinishedPacket { +#[derive(Clone, Debug, AzBuf, ClientboundLoginPacket)] +pub struct ClientboundLoginFinished { pub game_profile: GameProfile, } diff --git a/azalea-protocol/src/packets/login/clientbound_cookie_request_packet.rs b/azalea-protocol/src/packets/login/clientbound_cookie_request_packet.rs deleted file mode 100755 index 27ea0c09..00000000 --- a/azalea-protocol/src/packets/login/clientbound_cookie_request_packet.rs +++ /dev/null @@ -1,8 +0,0 @@ -use azalea_buf::McBuf; -use azalea_chat::FormattedText; -use azalea_protocol_macros::ClientboundLoginPacket; - -#[derive(Clone, Debug, McBuf, ClientboundLoginPacket)] -pub struct ClientboundCookieRequestPacket { - pub key: FormattedText, -} diff --git a/azalea-protocol/src/packets/login/clientbound_login_compression_packet.rs b/azalea-protocol/src/packets/login/clientbound_login_compression_packet.rs deleted file mode 100755 index 4b8fb0c8..00000000 --- a/azalea-protocol/src/packets/login/clientbound_login_compression_packet.rs +++ /dev/null @@ -1,10 +0,0 @@ -use std::hash::Hash; - -use azalea_buf::McBuf; -use azalea_protocol_macros::ClientboundLoginPacket; - -#[derive(Hash, Clone, Debug, ClientboundLoginPacket, McBuf)] -pub struct ClientboundLoginCompressionPacket { - #[var] - pub compression_threshold: i32, -} diff --git a/azalea-protocol/src/packets/login/mod.rs b/azalea-protocol/src/packets/login/mod.rs index 3d218cc1..9edf50cf 100755 --- a/azalea-protocol/src/packets/login/mod.rs +++ b/azalea-protocol/src/packets/login/mod.rs @@ -1,32 +1,22 @@ -pub mod clientbound_cookie_request_packet; -pub mod clientbound_custom_query_packet; -pub mod clientbound_hello_packet; -pub mod clientbound_login_compression_packet; -pub mod clientbound_login_disconnect_packet; -pub mod clientbound_login_finished_packet; -pub mod serverbound_cookie_response_packet; -pub mod serverbound_custom_query_answer_packet; -pub mod serverbound_hello_packet; -pub mod serverbound_key_packet; -pub mod serverbound_login_acknowledged_packet; +// NOTE: This file is generated automatically by codegen/packet.py. +// Don't edit it directly! use azalea_protocol_macros::declare_state_packets; -declare_state_packets!( - LoginPacket, - Serverbound => { - 0x00: serverbound_hello_packet::ServerboundHelloPacket, - 0x01: serverbound_key_packet::ServerboundKeyPacket, - 0x02: serverbound_custom_query_answer_packet::ServerboundCustomQueryAnswerPacket, - 0x03: serverbound_login_acknowledged_packet::ServerboundLoginAcknowledgedPacket, - 0x04: serverbound_cookie_response_packet::ServerboundCookieResponsePacket, - }, - Clientbound => { - 0x00: clientbound_login_disconnect_packet::ClientboundLoginDisconnectPacket, - 0x01: clientbound_hello_packet::ClientboundHelloPacket, - 0x02: clientbound_login_finished_packet::ClientboundLoginFinishedPacket, - 0x03: clientbound_login_compression_packet::ClientboundLoginCompressionPacket, - 0x04: clientbound_custom_query_packet::ClientboundCustomQueryPacket, - 0x05: clientbound_cookie_request_packet::ClientboundCookieRequestPacket, - } +declare_state_packets!(LoginPacket, + Clientbound => [ + login_disconnect, + hello, + login_finished, + login_compression, + custom_query, + cookie_request, + ], + Serverbound => [ + hello, + key, + custom_query_answer, + login_acknowledged, + cookie_response, + ] ); diff --git a/azalea-protocol/src/packets/login/serverbound_cookie_response_packet.rs b/azalea-protocol/src/packets/login/s_cookie_response.rs index 2074e2e7..5e757600 100755 --- a/azalea-protocol/src/packets/login/serverbound_cookie_response_packet.rs +++ b/azalea-protocol/src/packets/login/s_cookie_response.rs @@ -1,9 +1,9 @@ -use azalea_buf::McBuf; +use azalea_buf::AzBuf; use azalea_core::resource_location::ResourceLocation; use azalea_protocol_macros::ServerboundLoginPacket; -#[derive(Clone, Debug, McBuf, ServerboundLoginPacket)] -pub struct ServerboundCookieResponsePacket { +#[derive(Clone, Debug, AzBuf, ServerboundLoginPacket)] +pub struct ServerboundCookieResponse { pub key: ResourceLocation, pub payload: Option<Vec<u8>>, } diff --git a/azalea-protocol/src/packets/login/s_custom_query.rs b/azalea-protocol/src/packets/login/s_custom_query.rs new file mode 100755 index 00000000..39ecdcef --- /dev/null +++ b/azalea-protocol/src/packets/login/s_custom_query.rs @@ -0,0 +1,9 @@ +use azalea_buf::{AzBuf, UnsizedByteArray}; +use azalea_protocol_macros::ServerboundLoginPacket; + +#[derive(Clone, Debug, AzBuf, ServerboundLoginPacket)] +pub struct ServerboundCustomQuery { + #[var] + pub transaction_id: u32, + pub data: Option<UnsizedByteArray>, +} diff --git a/azalea-protocol/src/packets/login/serverbound_custom_query_answer_packet.rs b/azalea-protocol/src/packets/login/s_custom_query_answer.rs index fe9460a2..34820294 100644 --- a/azalea-protocol/src/packets/login/serverbound_custom_query_answer_packet.rs +++ b/azalea-protocol/src/packets/login/s_custom_query_answer.rs @@ -1,10 +1,10 @@ use std::hash::Hash; -use azalea_buf::{McBuf, UnsizedByteArray}; +use azalea_buf::{AzBuf, UnsizedByteArray}; use azalea_protocol_macros::ServerboundLoginPacket; -#[derive(Hash, Clone, Debug, McBuf, ServerboundLoginPacket)] -pub struct ServerboundCustomQueryAnswerPacket { +#[derive(Hash, Clone, Debug, AzBuf, ServerboundLoginPacket)] +pub struct ServerboundCustomQueryAnswer { #[var] pub transaction_id: u32, pub data: Option<UnsizedByteArray>, diff --git a/azalea-protocol/src/packets/login/serverbound_hello_packet.rs b/azalea-protocol/src/packets/login/s_hello.rs index 51ff1830..bae1947b 100755 --- a/azalea-protocol/src/packets/login/serverbound_hello_packet.rs +++ b/azalea-protocol/src/packets/login/s_hello.rs @@ -1,9 +1,10 @@ -use azalea_buf::McBuf; +use azalea_buf::AzBuf; use azalea_protocol_macros::ServerboundLoginPacket; use uuid::Uuid; -#[derive(Clone, Debug, PartialEq, Eq, McBuf, ServerboundLoginPacket)] -pub struct ServerboundHelloPacket { +#[derive(Clone, Debug, PartialEq, Eq, AzBuf, ServerboundLoginPacket)] +pub struct ServerboundHello { + #[limit(16)] pub name: String, pub profile_id: Uuid, } @@ -12,19 +13,19 @@ pub struct ServerboundHelloPacket { mod tests { use std::io::Cursor; - use azalea_buf::{McBufReadable, McBufWritable}; + use azalea_buf::{AzaleaRead, AzaleaWrite}; use super::*; #[test] fn test_read_write() { - let packet = ServerboundHelloPacket { + let packet = ServerboundHello { name: "test".to_string(), profile_id: Uuid::nil(), }; let mut buf: Vec<u8> = Vec::new(); - packet.write_into(&mut buf).unwrap(); - let packet2 = ServerboundHelloPacket::read_from(&mut Cursor::new(&buf)).unwrap(); + packet.azalea_write(&mut buf).unwrap(); + let packet2 = ServerboundHello::azalea_read(&mut Cursor::new(&buf)).unwrap(); assert_eq!(packet, packet2); } } diff --git a/azalea-protocol/src/packets/login/serverbound_key_packet.rs b/azalea-protocol/src/packets/login/s_key.rs index dc0abeac..1b96d445 100755 --- a/azalea-protocol/src/packets/login/serverbound_key_packet.rs +++ b/azalea-protocol/src/packets/login/s_key.rs @@ -1,8 +1,8 @@ -use azalea_buf::McBuf; +use azalea_buf::AzBuf; use azalea_protocol_macros::ServerboundLoginPacket; -#[derive(Clone, Debug, McBuf, ServerboundLoginPacket)] -pub struct ServerboundKeyPacket { +#[derive(Clone, Debug, AzBuf, ServerboundLoginPacket)] +pub struct ServerboundKey { pub key_bytes: Vec<u8>, pub encrypted_challenge: Vec<u8>, } diff --git a/azalea-protocol/src/packets/login/s_login_acknowledged.rs b/azalea-protocol/src/packets/login/s_login_acknowledged.rs new file mode 100644 index 00000000..e36648b6 --- /dev/null +++ b/azalea-protocol/src/packets/login/s_login_acknowledged.rs @@ -0,0 +1,5 @@ +use azalea_buf::AzBuf; +use azalea_protocol_macros::ServerboundLoginPacket; + +#[derive(Clone, Debug, AzBuf, ServerboundLoginPacket)] +pub struct ServerboundLoginAcknowledged {} diff --git a/azalea-protocol/src/packets/login/serverbound_custom_query_packet.rs b/azalea-protocol/src/packets/login/serverbound_custom_query_packet.rs deleted file mode 100755 index 1d1885cf..00000000 --- a/azalea-protocol/src/packets/login/serverbound_custom_query_packet.rs +++ /dev/null @@ -1,9 +0,0 @@ -use azalea_buf::{McBuf, UnsizedByteArray}; -use azalea_protocol_macros::ServerboundLoginPacket; - -#[derive(Clone, Debug, McBuf, ServerboundLoginPacket)] -pub struct ServerboundCustomQueryPacket { - #[var] - pub transaction_id: u32, - pub data: Option<UnsizedByteArray>, -} diff --git a/azalea-protocol/src/packets/login/serverbound_login_acknowledged_packet.rs b/azalea-protocol/src/packets/login/serverbound_login_acknowledged_packet.rs deleted file mode 100644 index c242a494..00000000 --- a/azalea-protocol/src/packets/login/serverbound_login_acknowledged_packet.rs +++ /dev/null @@ -1,5 +0,0 @@ -use azalea_buf::McBuf; -use azalea_protocol_macros::ServerboundLoginPacket; - -#[derive(Clone, Debug, McBuf, ServerboundLoginPacket)] -pub struct ServerboundLoginAcknowledgedPacket {} |
