equal
deleted
inserted
replaced
94 } |
94 } |
95 } |
95 } |
96 |
96 |
97 response.add(server_msg.send_self()); |
97 response.add(server_msg.send_self()); |
98 response.add(rooms_msg.send_self()); |
98 response.add(rooms_msg.send_self()); |
99 } |
|
100 |
|
101 pub fn change_master( |
|
102 server: &mut HwServer, |
|
103 room_id: RoomId, |
|
104 new_master_id: ClientId, |
|
105 response: &mut Response, |
|
106 ) { |
|
107 let room = &mut server.rooms[room_id]; |
|
108 if let Some(master_id) = room.master_id { |
|
109 server.clients[master_id].set_is_master(false); |
|
110 response.add( |
|
111 ClientFlags( |
|
112 remove_flags(&[Flags::RoomMaster]), |
|
113 vec![server.clients[master_id].nick.clone()], |
|
114 ) |
|
115 .send_all() |
|
116 .in_room(room_id), |
|
117 ) |
|
118 } |
|
119 |
|
120 room.master_id = Some(new_master_id); |
|
121 server.clients[new_master_id].set_is_master(true); |
|
122 |
|
123 response.add( |
|
124 ClientFlags( |
|
125 add_flags(&[Flags::RoomMaster]), |
|
126 vec![server.clients[new_master_id].nick.clone()], |
|
127 ) |
|
128 .send_all() |
|
129 .in_room(room_id), |
|
130 ); |
|
131 } |
99 } |
132 |
100 |
133 pub fn get_room_join_data<'a, I: Iterator<Item = &'a HwClient> + Clone>( |
101 pub fn get_room_join_data<'a, I: Iterator<Item = &'a HwClient> + Clone>( |
134 client: &HwClient, |
102 client: &HwClient, |
135 room: &HwRoom, |
103 room: &HwRoom, |