diff --git a/src/client.rs b/src/client.rs index dd145ed..a970e51 100644 --- a/src/client.rs +++ b/src/client.rs @@ -245,12 +245,12 @@ impl Client { ServerResponse::RoomMessageResponse(response) => self.handle_room_message_response(response), + ServerResponse::RoomUserJoinedResponse(response) => + self.handle_room_user_joined_response(response), + ServerResponse::RoomUserLeftResponse(response) => self.handle_room_user_left_response(response), - ServerResponse::UserJoinedRoomResponse(response) => - self.handle_user_joined_room_response(response), - ServerResponse::UserStatusResponse(response) => self.handle_user_status_response(response), @@ -363,32 +363,32 @@ impl Client { control::Response::RoomMessageResponse(control_response)); } - fn handle_room_user_left_response( - &mut self, response: RoomUserLeftResponse) + fn handle_room_user_joined_response( + &mut self, response: RoomUserJoinedResponse) { - let result = self.rooms.remove_member( - &response.room_name, &response.user_name + let result = self.rooms.insert_member( + &response.room_name, response.user_name.clone() ); match result { Ok(()) => { + self.users.insert(response.user_name, response.user); // TODO send control response }, - Err(err) => error!("RoomUserLeftResponse: {}", err) + Err(err) => error!("RoomUserJoinedResponse: {}", err) } } - fn handle_user_joined_room_response( - &mut self, response: UserJoinedRoomResponse) + fn handle_room_user_left_response( + &mut self, response: RoomUserLeftResponse) { - let result = self.rooms.insert_member( - &response.room_name, response.user_name.clone() + let result = self.rooms.remove_member( + &response.room_name, &response.user_name ); match result { Ok(()) => { - self.users.insert(response.user_name, response.user); // TODO send control response }, - Err(err) => error!("UserJoinedRoomResponse: {}", err) + Err(err) => error!("RoomUserLeftResponse: {}", err) } } diff --git a/src/proto/server/constants.rs b/src/proto/server/constants.rs index 2cf6497..1f883a0 100644 --- a/src/proto/server/constants.rs +++ b/src/proto/server/constants.rs @@ -5,7 +5,7 @@ pub const CODE_USER_STATUS: u32 = 7; pub const CODE_ROOM_MESSAGE: u32 = 13; pub const CODE_ROOM_JOIN: u32 = 14; pub const CODE_ROOM_LEAVE: u32 = 15; -pub const CODE_USER_JOINED_ROOM: u32 = 16; +pub const CODE_ROOM_USER_JOINED: u32 = 16; pub const CODE_ROOM_USER_LEFT: u32 = 17; pub const CODE_CONNECT_TO_PEER: u32 = 18; pub const CODE_ROOM_LIST: u32 = 64; diff --git a/src/proto/server/response.rs b/src/proto/server/response.rs index cc386e6..2f01df8 100644 --- a/src/proto/server/response.rs +++ b/src/proto/server/response.rs @@ -28,8 +28,8 @@ pub enum ServerResponse { RoomLeaveResponse(RoomLeaveResponse), RoomListResponse(RoomListResponse), RoomMessageResponse(RoomMessageResponse), + RoomUserJoinedResponse(RoomUserJoinedResponse), RoomUserLeftResponse(RoomUserLeftResponse), - UserJoinedRoomResponse(UserJoinedRoomResponse), UserStatusResponse(UserStatusResponse), WishlistIntervalResponse(WishlistIntervalResponse), @@ -89,9 +89,9 @@ impl FromPacket for ServerResponse { try!(RoomUserLeftResponse::from_packet(packet)) ), - CODE_USER_JOINED_ROOM => - ServerResponse::UserJoinedRoomResponse( - try!(UserJoinedRoomResponse::from_packet(packet)) + CODE_ROOM_USER_JOINED => + ServerResponse::RoomUserJoinedResponse( + try!(RoomUserJoinedResponse::from_packet(packet)) ), CODE_USER_STATUS => @@ -513,17 +513,17 @@ impl FromPacket for RoomMessageResponse { } /*==================* - * USER JOINED ROOM * + * ROOM USER JOINED * *==================*/ #[derive(Debug)] -pub struct UserJoinedRoomResponse { +pub struct RoomUserJoinedResponse { pub room_name: String, pub user_name: String, pub user: user::User, } -impl FromPacket for UserJoinedRoomResponse { +impl FromPacket for RoomUserJoinedResponse { fn from_packet(packet: &mut Packet) -> result::Result { let room_name = try!(packet.read_str()); let user_name = try!(packet.read_str()); @@ -540,7 +540,7 @@ impl FromPacket for UserJoinedRoomResponse { let country = try!(packet.read_str()); - Ok(UserJoinedRoomResponse { + Ok(RoomUserJoinedResponse { room_name: room_name, user_name: user_name, user: user::User {