pkt E2, player settings
This commit is contained in:
parent
1d7d4d8205
commit
92ef648c48
@ -89,8 +89,18 @@ impl<DA: DataAccess> CharacterServerState<DA> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_settings(&mut self) -> Box<PktVec> {
|
fn get_settings(&mut self) -> Vec<SendCharacterPacket> {
|
||||||
pktvec![]
|
let user = self.user.as_ref().unwrap();
|
||||||
|
let settings = match self.shared_state.data_access.get_user_settings_by_user(&user) {
|
||||||
|
Some(settings) => settings,
|
||||||
|
None => self.shared_state.data_access.create_user_settings_by_user(&user),
|
||||||
|
};
|
||||||
|
|
||||||
|
let pkt = SendKeyAndTeamSettings::new(settings.settings.key_config,
|
||||||
|
settings.settings.joystick_config, 0, 0);
|
||||||
|
let pkt = SendCharacterPacket::SendKeyAndTeamSettings(pkt);
|
||||||
|
|
||||||
|
vec![pkt]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,3 +144,53 @@ pub fn new_client<DA: DataAccess + 'static>(socket: mio::tcp::TcpStream, shared_
|
|||||||
let client = Client::new(socket, Box::new(state));
|
let client = Client::new(socket, Box::new(state));
|
||||||
client.io_loop();
|
client.io_loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod test {
|
||||||
|
use super::*;
|
||||||
|
use crate::models::{EUserSettings, UserSettings};
|
||||||
|
use libpso::character::settings;
|
||||||
|
use std::time::SystemTime;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_login() {
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_option_send() {
|
||||||
|
struct TestData {
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DataAccess for TestData {
|
||||||
|
fn get_user_settings_by_user(&self, _user: &UserAccount) -> Option<UserSettings> {
|
||||||
|
Some(UserSettings {
|
||||||
|
id: 0,
|
||||||
|
user_id: 0,
|
||||||
|
settings: EUserSettings(settings::UserSettings::default())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let shared = SharedLoginState::new(TestData {});
|
||||||
|
let mut server = CharacterServerState::new(shared);
|
||||||
|
server.user = Some(UserAccount {
|
||||||
|
id: 1,
|
||||||
|
username: "testuser".to_owned(),
|
||||||
|
password: bcrypt::hash("mypassword", 5).unwrap(),
|
||||||
|
guildcard: None,
|
||||||
|
team_id: None,
|
||||||
|
banned: false,
|
||||||
|
muted_until: SystemTime::now(),
|
||||||
|
created_at: SystemTime::now(),
|
||||||
|
});
|
||||||
|
|
||||||
|
let send = server.handle(&RecvCharacterPacket::RequestSettings(RequestSettings {flag: 0})).collect::<Vec<_>>();
|
||||||
|
assert!(send.len() == 1);
|
||||||
|
|
||||||
|
let bytes = send[0].as_bytes();
|
||||||
|
assert!(bytes[2] == 0xE2);
|
||||||
|
assert!(bytes.len() == 0xAFC);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user