equal
deleted
inserted
replaced
13 utils::to_engine_msg, |
13 utils::to_engine_msg, |
14 }; |
14 }; |
15 |
15 |
16 use super::Response; |
16 use super::Response; |
17 |
17 |
18 use rand::{self, thread_rng, Rng}; |
18 use rand::{self, seq::SliceRandom, thread_rng, Rng}; |
19 use std::{iter::once, mem::replace}; |
19 use std::{iter::once, mem::replace}; |
20 |
20 |
21 pub fn rnd_reply(options: &[String]) -> HWServerMessage { |
21 pub fn rnd_reply(options: &[String]) -> HWServerMessage { |
22 let mut rng = thread_rng(); |
22 let mut rng = thread_rng(); |
|
23 |
23 let reply = if options.is_empty() { |
24 let reply = if options.is_empty() { |
24 (*rng.choose(&["heads", "tails"]).unwrap()).to_owned() |
25 (*&["heads", "tails"].choose(&mut rng).unwrap()).to_string() |
25 } else { |
26 } else { |
26 rng.choose(&options).unwrap().clone() |
27 options.choose(&mut rng).unwrap().clone() |
27 }; |
28 }; |
28 |
29 |
29 ChatMsg { |
30 ChatMsg { |
30 nick: "[random]".to_owned(), |
31 nick: "[random]".to_string(), |
31 msg: reply.clone(), |
32 msg: reply, |
32 } |
33 } |
33 } |
34 } |
34 |
35 |
35 pub fn process_login(server: &mut HWServer, response: &mut Response) { |
36 pub fn process_login(server: &mut HWServer, response: &mut Response) { |
36 let client_id = response.client_id(); |
37 let client_id = response.client_id(); |
216 } |
217 } |
217 |
218 |
218 pub fn remove_client(server: &mut HWServer, response: &mut Response, msg: String) { |
219 pub fn remove_client(server: &mut HWServer, response: &mut Response, msg: String) { |
219 let client_id = response.client_id(); |
220 let client_id = response.client_id(); |
220 let client = &mut server.clients[client_id]; |
221 let client = &mut server.clients[client_id]; |
221 let (nick, room_id) = (client.nick.clone(), client.room_id); |
222 let nick = client.nick.clone(); |
222 |
223 |
223 exit_room(server, client_id, response, &msg); |
224 exit_room(server, client_id, response, &msg); |
224 |
225 |
225 server.remove_client(client_id); |
226 server.remove_client(client_id); |
226 |
227 |
292 server: &mut HWServer, |
293 server: &mut HWServer, |
293 room_id: RoomId, |
294 room_id: RoomId, |
294 response: &mut Response, |
295 response: &mut Response, |
295 kind: VoteType, |
296 kind: VoteType, |
296 ) { |
297 ) { |
297 let client_id = response.client_id; |
|
298 |
|
299 match kind { |
298 match kind { |
300 VoteType::Kick(nick) => { |
299 VoteType::Kick(nick) => { |
301 if let Some(client) = server.find_client(&nick) { |
300 if let Some(client) = server.find_client(&nick) { |
302 if client.room_id == Some(room_id) { |
301 if client.room_id == Some(room_id) { |
303 let id = client.id; |
302 let id = client.id; |