rust/hedgewars-server/src/handlers/common.rs
changeset 16004 2871fc57a282
parent 16003 abea7f16a03b
equal deleted inserted replaced
16003:abea7f16a03b 16004:2871fc57a282
     1 use super::{
     1 use super::{
     2     actions::{Destination, DestinationGroup},
     2     actions::{Destination, DestinationGroup},
     3     Response,
     3     Response,
     4 };
     4 };
       
     5 use crate::core::server::HwRoomOrServer;
     5 use crate::handlers::actions::ToPendingMessage;
     6 use crate::handlers::actions::ToPendingMessage;
     6 use crate::{
     7 use crate::{
     7     core::{
     8     core::{
     8         client::HwClient,
     9         client::HwClient,
     9         room::HwRoom,
    10         room::HwRoom,
   356 pub fn remove_client(server: &mut HwServer, response: &mut Response, msg: String) {
   357 pub fn remove_client(server: &mut HwServer, response: &mut Response, msg: String) {
   357     let client_id = response.client_id();
   358     let client_id = response.client_id();
   358     let client = server.client(client_id);
   359     let client = server.client(client_id);
   359     let nick = client.nick.clone();
   360     let nick = client.nick.clone();
   360 
   361 
   361     if let Some((room_id, result)) = server
   362     match server.get_room_control(client_id) {
   362         .get_room_control(client_id)
   363         HwRoomOrServer::Room(mut control) => {
   363         .into_room()
   364             let room_id = control.room().id;
   364         .map(|mut control| (control.room().id, control.leave_room()))
   365             let result = control.leave_room();
   365     {
   366             let server = control.server();
   366         get_room_leave_result(server, server.room(room_id), &msg, result, response);
   367             get_room_leave_result(server, server.room(room_id), &msg, result, response);
       
   368         }
       
   369         _ => (),
   367     }
   370     }
   368 
   371 
   369     server.remove_client(client_id);
   372     server.remove_client(client_id);
   370 
   373 
   371     response.add(LobbyLeft(nick, msg.clone()).send_all());
   374     response.add(LobbyLeft(nick, msg.clone()).send_all());