From afbe839dea58b6bc3b1e0ad983c9f75590ee9602 Mon Sep 17 00:00:00 2001 From: Alexander Medvedev Date: Mon, 20 Jul 2026 11:42:20 +0200 Subject: [PATCH] fix: https://github.com/Pumpkin-MC/Pumpkin/issues/2424 --- .../src/java/client/play/update_advancement.rs | 9 ++++----- pumpkin-protocol/src/lib.rs | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pumpkin-protocol/src/java/client/play/update_advancement.rs b/pumpkin-protocol/src/java/client/play/update_advancement.rs index 94d54b0d7..05a583107 100644 --- a/pumpkin-protocol/src/java/client/play/update_advancement.rs +++ b/pumpkin-protocol/src/java/client/play/update_advancement.rs @@ -1,3 +1,4 @@ +use crate::codec::item_stack_seralizer::ItemStackTemplateSerializer; use crate::codec::var_int::VarInt; use pumpkin_data::Advancement; use pumpkin_data::advancement_data::AdvancementProgressData; @@ -44,7 +45,7 @@ impl ClientPacket for CUpdateAdvancements { fn write_packet_data( &self, mut write: impl std::io::Write, - _version: &JavaMinecraftVersion, + version: &JavaMinecraftVersion, ) -> Result<(), crate::ser::WritingError> { write.write_bool(self.reset)?; @@ -65,10 +66,9 @@ impl ClientPacket for CUpdateAdvancements { write.write_slice(&display.get_description().encode())?; // Item icon - // TODO: serialize item_icon (ItemStack) - unimplemented!("Item serialization is not yet implemented without serde"); + ItemStackTemplateSerializer::from(display.item_icon.clone()) + .write_with_version(&mut write, version)?; - /* write.write_var_int(&VarInt(display.frame_type as i32))?; let flags = (display.has_background() as i32) | ((display.show_toast as i32) << 1) @@ -79,7 +79,6 @@ impl ClientPacket for CUpdateAdvancements { } write.write_f32_be(display.x)?; write.write_f32_be(display.y)?; - */ } write.write_var_int(&VarInt(adv.requirements.len() as i32))?; diff --git a/pumpkin-protocol/src/lib.rs b/pumpkin-protocol/src/lib.rs index 89bc0d729..3a7bc6a11 100644 --- a/pumpkin-protocol/src/lib.rs +++ b/pumpkin-protocol/src/lib.rs @@ -401,9 +401,9 @@ impl NumberFormat { // TODO: Style write Ok(()) } - Self::Fixed(_text) => { + Self::Fixed(text) => { write.write_var_int(&2.into())?; - // TODO: TextComponent write + write.write_slice(&text.encode())?; Ok(()) } }