27 lines
1.4 KiB
Rust
Raw Normal View History

2020-04-21 23:45:40 -06:00
use libpso::packet::ship::*;
use crate::common::serverstate::ClientId;
use crate::ship::ship::{SendShipPacket, ShipError, Clients};
2020-04-21 23:45:40 -06:00
use crate::entity::gateway::EntityGateway;
2020-06-02 18:51:18 -06:00
pub async fn update_config<EG: EntityGateway>(id: ClientId,
2020-04-21 23:45:40 -06:00
update_config: &UpdateConfig,
clients: &mut Clients,
2020-04-21 23:45:40 -06:00
entity_gateway: &mut EG)
-> Box<dyn Iterator<Item = (ClientId, SendShipPacket)> + Send> {
let client = clients.get_mut(&id).ok_or(ShipError::ClientNotFound(id)).unwrap();
client.character.config.update(update_config);
2020-06-02 18:51:18 -06:00
entity_gateway.save_character(&client.character).await;
2020-04-21 23:45:40 -06:00
Box::new(None.into_iter())
}
2020-10-02 21:24:32 -03:00
pub async fn save_options<EG: EntityGateway>(id: ClientId,
save_options: &SaveOptions,
clients: &mut Clients,
entity_gateway: &mut EG)
-> Box<dyn Iterator<Item = (ClientId, SendShipPacket)> + Send> {
// // TODO: don't unwrap?
let client = clients.get_mut(&id).ok_or(ShipError::ClientNotFound(id)).unwrap();
client.character.option_flags = save_options.options;
entity_gateway.save_character(&client.character).await;
Box::new(None.into_iter())
}