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