diff --git a/common/src/comp/inventory/item.rs b/common/src/comp/inventory/item.rs index deb885dad6..69dc627ffc 100644 --- a/common/src/comp/inventory/item.rs +++ b/common/src/comp/inventory/item.rs @@ -81,7 +81,7 @@ pub enum Debug { Boost, } -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum Item { Tool { kind: Tool, diff --git a/server/src/lib.rs b/server/src/lib.rs index 7307404190..db39d714fb 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -713,35 +713,29 @@ impl Server { _ => {} }, ClientMsg::ActivateInventorySlot(x) => { - let item_opt = state + let item = state .ecs() .write_storage::() .get_mut(entity) .and_then(|inv| inv.remove(x)); - if let Some(item) = item_opt { - match item { - comp::Item::Tool { .. } | comp::Item::Debug(_) => { - if let Some(stats) = state + match item { + Some(comp::Item::Tool { .. }) | Some(comp::Item::Debug(_)) => { + if let Some(stats) = + state.ecs().write_storage::().get_mut(entity) + { + state .ecs() - .write_storage::() + .write_storage::() .get_mut(entity) - { - state - .ecs() - .write_storage::() - .get_mut(entity) - .map(|inv| { - inv.insert(x, stats.equipment.main.take()) - }); + .map(|inv| inv.insert(x, stats.equipment.main.take())); - stats.equipment.main = Some(item); - } + stats.equipment.main = item; } - _ => {} } - state.write_component(entity, comp::InventoryUpdate); + _ => {} } + state.write_component(entity, comp::InventoryUpdate); } ClientMsg::SwapInventorySlots(a, b) => { state