move settings
This commit is contained in:
parent
90d0af87a4
commit
832a53821d
@ -2,3 +2,4 @@ pub mod auth;
|
||||
pub mod communication;
|
||||
pub mod lobby;
|
||||
pub mod room;
|
||||
pub mod settings;
|
||||
|
20
src/ship/packet/handler/settings.rs
Normal file
20
src/ship/packet/handler/settings.rs
Normal file
@ -0,0 +1,20 @@
|
||||
use std::collections::HashMap;
|
||||
use libpso::packet::ship::*;
|
||||
use crate::common::serverstate::ClientId;
|
||||
use crate::common::leveltable::CharacterLevelTable;
|
||||
use crate::ship::ship::{SendShipPacket, ShipError, ClientState};
|
||||
use crate::ship::character::{CharacterBytesBuilder, FullCharacterBytesBuilder};
|
||||
use crate::ship::location::{ClientLocation, LobbyId, RoomId, RoomLobby, MAX_ROOMS};
|
||||
use libpso::character::character;
|
||||
use crate::entity::gateway::EntityGateway;
|
||||
|
||||
pub fn update_config<EG: EntityGateway>(id: ClientId,
|
||||
update_config: &UpdateConfig,
|
||||
clients: &mut HashMap<ClientId, ClientState>,
|
||||
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);
|
||||
entity_gateway.save_character(&client.character);
|
||||
Box::new(None.into_iter())
|
||||
}
|
@ -283,13 +283,6 @@ impl<EG: EntityGateway> ShipServerState<EG> {
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
fn update_config(&mut self, id: ClientId, update_config: &UpdateConfig) -> Box<dyn Iterator<Item = (ClientId, SendShipPacket)> + Send> {
|
||||
let client = self.clients.get_mut(&id).ok_or(ShipError::ClientNotFound(id)).unwrap();
|
||||
client.character.config.update(update_config);
|
||||
self.entity_gateway.save_character(&client.character);
|
||||
Box::new(None.into_iter())
|
||||
}
|
||||
}
|
||||
|
||||
impl<EG: EntityGateway> ServerState for ShipServerState<EG> {
|
||||
@ -343,7 +336,7 @@ impl<EG: EntityGateway> ServerState for ShipServerState<EG> {
|
||||
handler::room::room_name_request(id, &self.client_location, &self.rooms)
|
||||
},
|
||||
RecvShipPacket::UpdateConfig(pkt) => {
|
||||
self.update_config(id, pkt)
|
||||
handler::settings::update_config(id, pkt, &mut self.clients, &mut self.entity_gateway)
|
||||
},
|
||||
RecvShipPacket::ViewInfoboardRequest(pkt) => {
|
||||
handler::communication::request_infoboard(id, pkt, &self.client_location, &self.clients)
|
||||
|
Loading…
x
Reference in New Issue
Block a user