diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2025-12-09 13:29:59 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-09 13:29:59 -0600 |
| commit | 26d619c9a329087a23d6577ee74bd764f50cd773 (patch) | |
| tree | 8020fe902257764a23a445c6ed9987ea4848189d /azalea-inventory/src/lib.rs | |
| parent | 84cd261118c9d1e3145d4d1751c0d22098cd8cd8 (diff) | |
| download | azalea-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.rs | 20 |
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 } } } |
