diff --git a/server/src/events/inventory_manip.rs b/server/src/events/inventory_manip.rs index 03e9141d43..2888dd3183 100644 --- a/server/src/events/inventory_manip.rs +++ b/server/src/events/inventory_manip.rs @@ -427,14 +427,16 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv comp::InventoryManip::Swap(a, b) => { let ecs = state.ecs(); - if let (Slot::Inventory(inv_slot), Slot::Equip(slot::EquipSlot::Lantern)) - | (Slot::Equip(slot::EquipSlot::Lantern), Slot::Inventory(inv_slot)) = (a, b) - { - if let Some(comp::item::ItemKind::Lantern(lantern)) = - inventory.get(inv_slot).map(|item| item.kind()) - { - swap_lantern(&mut ecs.write_storage(), entity, lantern); - } + if let Some(comp::item::ItemKind::Lantern(lantern)) = match (a, b) { + // Only current possible lantern swap is between Slot::Inventory and Slot::Equip + // add more cases if needed + (Slot::Equip(slot::EquipSlot::Lantern), Slot::Inventory(slot)) + | (Slot::Inventory(slot), Slot::Equip(slot::EquipSlot::Lantern)) => { + inventory.get(slot).map(|item| item.kind()) + }, + _ => None, + } { + swap_lantern(&mut ecs.write_storage(), entity, lantern); } if let Some(pos) = ecs.read_storage::().get(entity) {