diff --git a/src/proto/server/response.rs b/src/proto/server/response.rs index bb99d6d..b3a854a 100644 --- a/src/proto/server/response.rs +++ b/src/proto/server/response.rs @@ -142,7 +142,8 @@ pub struct JoinRoomResponse { pub user_names: Vec, pub user_infos: Vec, pub user_countries: Vec, - pub owner_and_operators: Option<(String, Vec)>, + pub owner: Option, + pub operators: Vec, } impl FromPacket for JoinRoomResponse { @@ -152,7 +153,8 @@ impl FromPacket for JoinRoomResponse { user_names: Vec::new(), user_infos: Vec::new(), user_countries: Vec::new(), - owner_and_operators: None, + owner: None, + operators: Vec::new(), }; try!(packet.read_array(&mut response.user_names, Packet::read_str)); @@ -161,6 +163,11 @@ impl FromPacket for JoinRoomResponse { try!(packet.read_array(&mut response.user_countries, Packet::read_str)); + if packet.bytes_remaining() > 0 { + response.owner = Some(try!(packet.read_str())); + try!(packet.read_array(&mut response.operators, Packet::read_str)); + } + Ok(response) } } @@ -208,7 +215,10 @@ impl JoinRoomResponse { let num_free_slots = try!(num_free_slots_res); if num_statuses != num_infos || num_statuses != num_free_slots { - warn!("JoinRoomResponse: mismatched vector sizes"); + warn!( + "JoinRoomResponse: mismatched vector sizes {}, {}, {}", + num_statuses, num_infos, num_free_slots + ); } Ok(())