aboutsummaryrefslogtreecommitdiff
path: root/azalea/src/container.rs
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2025-12-28 04:31:29 -0600
committerGitHub <noreply@github.com>2025-12-28 04:31:29 -0600
commit20c7e27250148f62bab9e7b99e4f0cd6deb82325 (patch)
tree163b312ef4dc72c5c23be923f8ca17cdf2a7278c /azalea/src/container.rs
parent7ab3b8924f64f7eadb6b8928b6fae73cb06e4c2f (diff)
downloadazalea-drasl-20c7e27250148f62bab9e7b99e4f0cd6deb82325.tar.xz
Change Client::component to return a reference (#298)
* change Client::component to return a reference * write docs * merge main * remove unused parking_lot feature
Diffstat (limited to 'azalea/src/container.rs')
-rw-r--r--azalea/src/container.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/azalea/src/container.rs b/azalea/src/container.rs
index 3d5f6f01..8b46994e 100644
--- a/azalea/src/container.rs
+++ b/azalea/src/container.rs
@@ -81,7 +81,7 @@ impl Client {
}
self.ecs
- .lock()
+ .write()
.entity_mut(self.entity)
.insert(WaitingForInventoryOpen);
self.block_interact(pos);
@@ -102,7 +102,7 @@ impl Client {
let mut ticks = self.get_tick_broadcaster();
let mut elapsed_ticks = 0;
while ticks.recv().await.is_ok() {
- let ecs = self.ecs.lock();
+ let ecs = self.ecs.read();
if ecs.get::<WaitingForInventoryOpen>(self.entity).is_none() {
break;
}
@@ -115,7 +115,7 @@ impl Client {
}
}
- let ecs = self.ecs.lock();
+ let ecs = self.ecs.read();
let inventory = ecs.get::<Inventory>(self.entity).expect("no inventory");
if inventory.id == 0 {
None
@@ -136,8 +136,7 @@ impl Client {
/// sending any packets, use [`Client::menu`], [`Menu::player_slots_range`],
/// and [`Menu::slots`].
pub fn open_inventory(&self) -> Option<ContainerHandle> {
- let ecs = self.ecs.lock();
- let inventory = ecs.get::<Inventory>(self.entity).expect("no inventory");
+ let inventory = self.component::<Inventory>();
if inventory.id == 0 {
Some(ContainerHandle::new(0, self.clone()))
} else {
@@ -188,7 +187,7 @@ impl ContainerHandleRef {
}
pub fn close(&self) {
- self.client.ecs.lock().trigger(CloseContainerEvent {
+ self.client.ecs.write().trigger(CloseContainerEvent {
entity: self.client.entity,
id: self.id,
});
@@ -285,7 +284,7 @@ impl ContainerHandleRef {
/// action.
pub fn click(&self, operation: impl Into<ClickOperation>) {
let operation = operation.into();
- self.client.ecs.lock().trigger(ContainerClickEvent {
+ self.client.ecs.write().trigger(ContainerClickEvent {
entity: self.client.entity,
window_id: self.id,
operation,