diff --git a/src/login/character.rs b/src/login/character.rs index e1e49cf..595b261 100644 --- a/src/login/character.rs +++ b/src/login/character.rs @@ -257,34 +257,37 @@ async fn new_character(entity_gateway: &mut EG, user: &UserAc character_id: character.id, }).await?; - let (monomates, monofluids) = futures::future::join_all((0..4usize).map(|_| { - let mut eg = entity_gateway.clone(); - let character_id = character.id; - async move { - let monomate = eg.create_item( - NewItemEntity { - item: ItemDetail::Tool ( - Tool { - tool: item::tool::ToolType::Monomate, - })}).await?; - - eg.add_item_note(&monomate.id, ItemNote::CharacterCreation { - character_id - }).await?; - - let monofluid = eg.create_item( - NewItemEntity { - item: ItemDetail::Tool ( - Tool { - tool: item::tool::ToolType::Monofluid, - })}).await?; - - eg.add_item_note(&monofluid.id, ItemNote::CharacterCreation { - character_id - }).await?; - - Ok((monomate, monofluid)) - }})).await.into_iter().collect::, GatewayError>>()?.into_iter().unzip(); + let mut monomates = Vec::new(); + for _ in 0..4usize { + let monomate = entity_gateway.create_item( + NewItemEntity { + item: ItemDetail::Tool ( + Tool { + tool: item::tool::ToolType::Monomate, + })}).await?; + + entity_gateway.add_item_note(&monomate.id, ItemNote::CharacterCreation { + character_id: character.id + }).await?; + + monomates.push(monomate); + } + + let mut monofluids = Vec::new(); + for _ in 0..4usize { + let monofluid = entity_gateway.create_item( + NewItemEntity { + item: ItemDetail::Tool ( + Tool { + tool: item::tool::ToolType::Monofluid, + })}).await?; + + entity_gateway.add_item_note(&monofluid.id, ItemNote::CharacterCreation { + character_id: character.id + }).await?; + + monofluids.push(monofluid); + } let inventory = InventoryEntity { items: vec![InventoryItemEntity::Individual(weapon.clone()), InventoryItemEntity::Individual(armor.clone()), InventoryItemEntity::Individual(mag.clone()),