aboutsummaryrefslogtreecommitdiff
path: root/azalea-inventory/src/lib.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2025-12-09 13:29:59 -0600
committerGitHub <noreply@github.com>2025-12-09 13:29:59 -0600
commit26d619c9a329087a23d6577ee74bd764f50cd773 (patch)
tree8020fe902257764a23a445c6ed9987ea4848189d /azalea-inventory/src/lib.rs
parent84cd261118c9d1e3145d4d1751c0d22098cd8cd8 (diff)
downloadazalea-drasl-26d619c9a329087a23d6577ee74bd764f50cd773.tar.xz
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
Diffstat (limited to 'azalea-inventory/src/lib.rs')
-rw-r--r--azalea-inventory/src/lib.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/azalea-inventory/src/lib.rs b/azalea-inventory/src/lib.rs
index 4a15ea31..87cd61e4 100644
--- a/azalea-inventory/src/lib.rs
+++ b/azalea-inventory/src/lib.rs
@@ -49,10 +49,16 @@ impl Menu {
///
/// Will panic if the menu isn't `Menu::Player`.
pub fn as_player(&self) -> &Player {
+ self.try_as_player()
+ .expect("Called `Menu::as_player` on a menu that wasn't `Player`.")
+ }
+ /// Get the [`Player`] from this [`Menu`], or returns `None` if the menu
+ /// isn't a player menu.
+ pub fn try_as_player(&self) -> Option<&Player> {
if let Menu::Player(player) = &self {
- player
+ Some(player)
} else {
- unreachable!("Called `Menu::as_player` on a menu that wasn't `Player`.")
+ None
}
}
@@ -63,10 +69,16 @@ impl Menu {
///
/// Will panic if the menu isn't `Menu::Player`.
pub fn as_player_mut(&mut self) -> &mut Player {
+ self.try_as_player_mut()
+ .expect("Called `Menu::as_player_mut` on a menu that wasn't `Player`.")
+ }
+ /// Same as [`Menu::try_as_player`], but returns a mutable reference to the
+ /// [`Player`].
+ pub fn try_as_player_mut(&mut self) -> Option<&mut Player> {
if let Menu::Player(player) = self {
- player
+ Some(player)
} else {
- unreachable!("Called `Menu::as_player_mut` on a menu that wasn't `Player`.")
+ None
}
}
}