From 26d619c9a329087a23d6577ee74bd764f50cd773 Mon Sep 17 00:00:00 2001 From: mat <27899617+mat-1@users.noreply.github.com> Date: Tue, 9 Dec 2025 13:29:59 -0600 Subject: Enchantments (#286) * start implementing enchants * store parsed registries * more work on enchants * implement deserializer for some entity effects * mostly working definitions for enchants * fix tests * detect equipment changes * fix errors * update changelog * fix some imports * remove outdated todo * add basic test for enchants applying attributes * use git simdnbt --- azalea-protocol/src/packets/common.rs | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'azalea-protocol/src/packets/common.rs') diff --git a/azalea-protocol/src/packets/common.rs b/azalea-protocol/src/packets/common.rs index fcbf0b05..eb377683 100644 --- a/azalea-protocol/src/packets/common.rs +++ b/azalea-protocol/src/packets/common.rs @@ -4,7 +4,7 @@ use azalea_core::{ game_type::{GameMode, OptionalGameType}, identifier::Identifier, position::GlobalPos, - registry_holder::{DimensionTypeElement, RegistryHolder}, + registry_holder::{RegistryHolder, dimension_type::DimensionTypeElement}, }; use tracing::error; @@ -24,27 +24,15 @@ pub struct CommonPlayerSpawnInfo { pub sea_level: i32, } impl CommonPlayerSpawnInfo { - pub fn dimension_type( + pub fn dimension_type<'a>( &self, - registry_holder: &RegistryHolder, - ) -> Option<(Identifier, DimensionTypeElement)> { - let dimension_res = self - .dimension_type - .resolve_and_deserialize::(registry_holder); - let Some(dimension_res) = dimension_res else { + registry_holder: &'a RegistryHolder, + ) -> Option<(&'a Identifier, &'a DimensionTypeElement)> { + let dimension_res = self.dimension_type.resolve(registry_holder); + let Some((dimension_type, dimension_data)) = dimension_res else { error!("Couldn't resolve dimension_type {:?}", self.dimension_type); return None; }; - let (dimension_type, dimension_data) = match dimension_res { - Ok(d) => d, - Err(err) => { - error!( - "Couldn't deserialize dimension_type {:?}: {err:?}", - self.dimension_type - ); - return None; - } - }; Some((dimension_type, dimension_data)) } -- cgit v1.2.3